-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsetup.py.in
72 lines (64 loc) · 2.59 KB
/
setup.py.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
################################################################################
# This file is part of CosTuuM
# Copyright (C) 2019 Bert Vandenbroucke ([email protected])
#
# CosTuuM is free software: you can redistribute it and/or modify it under the
# terms of the GNU Affero General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# CosTuuM is distributed in the hope that it will be useful, but WITOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License
# along with CosTuuM. If not, see <http://www.gnu.org/licenses/>.
###############################################################################
# setup script for CTMmodule
# this file is parsed by CMake to add information about the compiler and
# the build environment and should not be edited directly
# (instead edit setup.py.in)
# import the setuptools module for module creation
from setuptools import setup, Extension
import os
import glob
import numpy
# main module creation routine
def main():
# set the C and C++ compilers to the ones found by CMake
os.environ["CC"] = "@CMAKE_C_COMPILER@"
os.environ["CXX"] = "@CMAKE_CXX_COMPILER@"
# find all the header files in the source folder to create a dependency
# list that ensures the module is recompiled if any of the header files
# changes
header_dependencies = glob.glob("@PROJECT_SOURCE_DIR@/src/*.hpp")
# create the module
setup(
name="CosTuuM",
version="1.0.0",
description="T-matrix module",
author="Bert Vandenbroucke",
author_email="[email protected]",
ext_modules=[
Extension(
"CosTuuM",
["@PROJECT_SOURCE_DIR@/src/CTMModule.cpp"],
include_dirs=[
"@PROJECT_SOURCE_DIR@/src",
"@PROJECT_BINARY_DIR@/src",
"@PROJECT_SOURCE_DIR@/quicksched",
numpy.get_include(),
],
libraries=["@LIBQUICKSCHED_SHARED@"],
library_dirs=["@PROJECT_BINARY_DIR@/lib"],
runtime_library_dirs=["@PROJECT_BINARY_DIR@/lib"],
depends=header_dependencies,
extra_compile_args=["-std=c++11"],
)
],
install_requires=["numpy"],
)
# call the main function
if __name__ == "__main__":
main()