# -*- coding: utf-8 -*- # Gmsh - Copyright (C) 1997-2021 C. Geuzaine, J.-F. Remacle # # See the LICENSE.txt file in the Gmsh root directory for license information. # Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues. import os import setuptools setupdir = os.environ["GMSH_SETUP_DIR"] sdkdir = os.environ["GMSH_SDK_DIR"] version = '${GMSH_MAJOR_VERSION}.${GMSH_MINOR_VERSION}.${GMSH_PATCH_VERSION}' if '-nox-dev' in setupdir : name = 'gmsh-nox-dev' iversion = version + '.dev1' elif '-dev' in setupdir : name = 'gmsh-dev' iversion = version + '.dev1' else : name = 'gmsh' iversion = version libversion = ".".join(version.split(".")[:2]) if os.path.isfile(sdkdir + '/lib/gmsh-' + libversion + '.dll'): libs = [os.path.join(sdkdir, 'lib', 'gmsh.lib'), os.path.join(sdkdir, 'lib', 'gmsh-' + libversion + '.dll'), os.path.join(sdkdir, 'lib', 'gmsh.jl')] scripts = [os.path.join(setupdir, 'gmsh'), os.path.join(setupdir, 'gmsh.bat')] elif os.path.isfile(sdkdir + '/lib/libgmsh.so.' + libversion): libs = [os.path.join(sdkdir, 'lib', 'libgmsh.so.' + libversion), os.path.join(sdkdir, 'lib', 'gmsh.jl')] scripts = [os.path.join(setupdir, 'gmsh')] elif os.path.isfile(sdkdir + '/lib/libgmsh.' + libversion + '.dylib'): libs = [os.path.join(sdkdir + 'lib', 'libgmsh.' + libversion + '.dylib'), os.path.join(sdkdir + 'lib', 'gmsh.jl')] scripts = [os.path.join(setupdir, 'gmsh')] else : print("library not found") exit(1) def gen_install_list(subdir): for dirpath, dirs, files in os.walk(subdir): if len(files) != 0: filepaths = [os.path.join(dirpath, f) for f in files] relpath = os.path.relpath(dirpath, sdkdir) data_files.append((relpath, filepaths)) data_files = [('lib', libs)] gen_install_list(sdkdir + '/share') gen_install_list(sdkdir + '/include') setuptools.setup( name = name, version = iversion, description = 'Gmsh is a three-dimensional finite element mesh generator ' 'with built-in pre- and post-processing facilities.', long_description = open(os.path.join(setupdir, 'README.rst'), 'r').read(), long_description_content_type = 'text/x-rst', maintainer = 'Christophe Geuzaine', maintainer_email = 'cgeuzaine@uliege.be', keywords = ['fem', 'mesh', 'finite element method', 'cad'], url = 'https://gmsh.info', license = 'GPLv2+', platforms = 'Posix, Windows', classifiers = ['Development Status :: 5 - Production/Stable', 'Intended Audience :: Education', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: ' 'GNU General Public License v2 or later (GPLv2+)', 'Operating System :: POSIX :: Linux', 'Operating System :: Microsoft :: Windows', 'Operating System :: MacOS :: MacOS X', 'Programming Language :: C', 'Programming Language :: C++', 'Programming Language :: Python', 'Programming Language :: Julia', 'Topic :: Scientific/Engineering'], scripts = scripts, packages = [''], package_dir = {'' : os.path.join(sdkdir + '/lib')}, data_files = data_files)