Skip to content

Commit

Permalink
Setup file adapted for different operating systems
Browse files Browse the repository at this point in the history
  • Loading branch information
Christian Steger committed Jun 3, 2022
1 parent bb92c05 commit daeab56
Showing 1 changed file with 35 additions and 13 deletions.
48 changes: 35 additions & 13 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,47 +7,69 @@

# Load modules
import os
import sys
from distutils.core import setup
from Cython.Distutils import build_ext
from distutils.extension import Extension
import numpy as np

# -----------------------------------------------------------------------------
# Settings
# -----------------------------------------------------------------------------
# Manual settings (NetCDF 3/4 library)
lib_netcdf = ["libnetcdf", "libnetcdf_c++4"] # NetCDF4
# lib_netcdf = ["libnetcdf_c++"] # NetCDF3

lib_netcdf = ["/opt/local/lib/libnetcdf.dylib",
"/opt/local/lib/libnetcdf_c++4.dylib"] # NetCDF4
# lib_netcdf = ["/opt/local/lib/libnetcdf_c++.dylib"] # NetCDF3

# -----------------------------------------------------------------------------
# Operating system dependent settings
path_lib_conda = os.environ["CONDA_PREFIX"] + "/lib/"
if sys.platform in ["linux", "linux2"]:
print("Operating system: Linux")
lib_end = ".so"
libraries_cython = ["m", "pthread"]
include_dirs_cpp = [np.get_include()]
extra_objects_cpp = [path_lib_conda + "libembree3" + lib_end] \
+ [path_lib_conda + i + lib_end for i in lib_netcdf]
elif sys.platform in ["darwin"]:
print("Operating system: Mac OS X")
lib_end = ".dylib"
libraries_cython = ["m", "iomp5", "pthread"]
print("Provide path to NetCDF library (e.g. '/opt/local/lib/')")
path_lib = input()
include_dirs_cpp = [np.get_include()]
extra_objects_cpp = [path_lib_conda + "libembree3" + lib_end] \
+ [path_lib + i + lib_end for i in lib_netcdf]
for i in extra_objects_cpp:
if not os.path.isfile(i):
raise ValueError("Library " + i + " not found")
elif sys.platform in ["win32"]:
print("Operating system: Windows")
raise ValueError("Warning: Package not yet tested for Windows")
else:
raise ValueError("Unsupported operation system")

os.environ["CC"] = "gcc"

ext_modules = [
Extension("transform",
["horayzon/transform.pyx"],
libraries=["m", "iomp5", "pthread"],
libraries=libraries_cython,
extra_compile_args=["-O3", "-ffast-math", "-fopenmp"],
extra_link_args=["-fopenmp"],
include_dirs=[np.get_include()]),
Extension("ecef",
["horayzon/ecef.pyx"],
libraries=["m", "iomp5", "pthread"],
libraries=libraries_cython,
extra_compile_args=["-O3", "-ffast-math", "-fopenmp"],
extra_link_args=["-fopenmp"],
include_dirs=[np.get_include()]),
Extension("topo_param",
["horayzon/topo_param.pyx"],
libraries=["m", "iomp5", "pthread"],
libraries=libraries_cython,
extra_compile_args=["-O3", "-ffast-math", "-fopenmp"],
extra_link_args=["-fopenmp"],
include_dirs=[np.get_include()]),
Extension(
"horizon",
sources=["horayzon/horizon.pyx", "horayzon/horizon_comp.cpp"],
include_dirs=[np.get_include(), "/opt/local/include"],
extra_objects=["/opt/local/lib/libembree3.dylib"] + lib_netcdf,
include_dirs=include_dirs_cpp,
extra_objects=extra_objects_cpp,
extra_compile_args=["-O3"],
language="c++",
)
Expand Down

0 comments on commit daeab56

Please sign in to comment.