summaryrefslogtreecommitdiff
path: root/OMChem/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'OMChem/setup.py')
-rw-r--r--OMChem/setup.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/OMChem/setup.py b/OMChem/setup.py
new file mode 100644
index 0000000..037da1c
--- /dev/null
+++ b/OMChem/setup.py
@@ -0,0 +1,54 @@
+try:
+ from setuptools import setup
+except ImportError:
+ from distutils.core import setup
+
+from subprocess import call
+import sys
+import os
+# Python 3.3 offers shutil.which()
+from distutils import spawn
+
+def warningOrError(errorOnFailure, msg):
+ if errorOnFailure:
+ raise Exception(msg)
+ else:
+ print(msg)
+
+def generateIDL():
+ errorOnFailure = not os.path.exists(os.path.join(os.path.dirname(__file__), 'OMPythonIDL', '__init__.py'))
+ try:
+ omhome = os.path.split(os.path.split(os.path.realpath(spawn.find_executable("omc")))[0])[0]
+ except:
+ omhome = None
+ omhome = omhome or os.environ.get('OPENMODELICAHOME')
+
+ if omhome is None:
+ warningOrError(errorOnFailure, "Failed to find OPENMODELICAHOME (searched for environment variable as well as the omc executable)")
+ return
+ idl = os.path.join(omhome,"share","omc","omc_communication.idl")
+ if not os.path.exists(idl):
+ warningOrError(errorOnFailure, "Path not found: %s" % idl)
+ return
+
+ if 0 is not call(["omniidl","-bpython","-Wbglobal=_OMCIDL","-Wbpackage=OMPythonIDL",idl]):
+ warningOrError(errorOnFailure, "omniidl command failed")
+ return
+ print("Generated OMPythonIDL files")
+generateIDL()
+
+setup(name='OMPython',
+ version='2.0.7',
+ description='OpenModelica-Python API Interface',
+ author='Anand Kalaiarasi Ganeson',
+ author_email='ganan642@student.liu.se',
+ maintainer='Adeel Asghar',
+ maintainer_email='adeel.asghar@liu.se',
+ license="BSD, OSMC-PL 1.2, GPL (user's choice)",
+ url='http://openmodelica.org/',
+ packages=['OMPython', 'OMPython.OMParser', 'OMPythonIDL', 'OMPythonIDL._OMCIDL', 'OMPythonIDL._OMCIDL__POA'],
+ install_requires=[
+ # 'omniORB', # Required, but not part of pypi
+ 'pyparsing'
+ ]
+)