1
- file (GLOB_RECURSE SRCS *.i)
2
- set_source_files_properties (${SRCS} PROPERTIES CPLUSPLUS ON )
1
+ option (AUTO_GENERATE "Auto generate the targes" OFF )
2
+ if (AUTO_GENERATE)
3
+ file (GLOB_RECURSE SRCS *.i)
4
+ set_source_files_properties (${SRCS} PROPERTIES CPLUSPLUS ON )
3
5
4
- swig_add_library(
5
- ${WEDPR_PYTHON_TRANSPORT}
6
- TYPE MODULE
7
- LANGUAGE python
8
- OUTPUT_DIR ${WEDPR_PYTHON_TRANSPORT_DIR}
9
- SOURCES ${SRCS}
10
- )
11
-
12
- message ("#### Python3_INCLUDE_DIRS: ${Python3_INCLUDE_DIRS} " )
13
- target_include_directories (
14
- ${WEDPR_PYTHON_TRANSPORT}
15
- PRIVATE
16
- ../include
17
- ${Python3_INCLUDE_DIRS}
18
- )
19
- set_property (TARGET ${WEDPR_PYTHON_TRANSPORT} PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON )
6
+ file (MAKE_DIRECTORY ${WEDPR_PYTHON_TRANSPORT_DIR} )
7
+ file (MAKE_DIRECTORY ${WEDPR_PYTHON_TRANSPORT_LIB_DIR} )
8
+
9
+ swig_add_library(
10
+ ${WEDPR_PYTHON_TRANSPORT}
11
+ TYPE MODULE
12
+ LANGUAGE python
13
+ OUTPUT_DIR ${WEDPR_PYTHON_TRANSPORT_DIR}
14
+ SOURCES ${SRCS}
15
+ )
16
+ set_property (TARGET ${WEDPR_PYTHON_TRANSPORT} PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON )
17
+ else ()
18
+ file (GLOB_RECURSE SRCS src/*.cxx)
19
+ add_library (${WEDPR_PYTHON_TRANSPORT} SHARED ${SRCS} )
20
+ endif ()
21
+
22
+ target_include_directories (${WEDPR_PYTHON_TRANSPORT} PRIVATE ${Python_INCLUDE_DIRS} )
20
23
21
24
# note: macOS is APPLE and also UNIX !
22
25
if (APPLE )
23
26
set_property (TARGET ${WEDPR_PYTHON_TRANSPORT} APPEND PROPERTY
24
27
LINK_FLAGS "-flat_namespace -undefined suppress"
25
28
)
26
- set_target_properties (${WEDPR_PYTHON_TRANSPORT} PROPERTIES
27
- SUFFIX ".so"
28
- INSTALL_RPATH "@loader_path;@loader_path/../../${WEDPR_PYTHON_TRANSPORT} /.libs"
29
+ set_target_properties (${WEDPR_PYTHON_TRANSPORT} PROPERTIES
30
+ INSTALL_RPATH "@loader_path;@loader_path/../../${WEDPR_PYTHON_TRANSPORT} /.libs"
29
31
)
30
32
elseif (UNIX )
31
33
set_target_properties (${WEDPR_PYTHON_TRANSPORT} PROPERTIES
32
34
INSTALL_RPATH "$ORIGIN:$ORIGIN/../../${WEDPR_PYTHON_TRANSPORT} /.libs"
33
35
)
34
36
endif ()
35
- target_link_libraries (${WEDPR_PYTHON_TRANSPORT} PRIVATE ${WEDPR_TRANSPORT_SDK_TARGET} )
36
-
37
- SET (LIBRARY_OUTPUT_PATH ${WEDPR_PYTHON_TRANSPORT_DIR} /)
38
-
39
37
# Variable PYTHON_LIBRARIES can contains keyword `optimized`
40
38
# which won't be interpreted inside a generator expression.
41
39
# i.e. we can't use: $<$<PLATFORM_ID:Windows>:${PYTHON_LIBRARIES}>
42
40
# see: https://cmake.org/cmake/help/git-stage/command/target_link_libraries.html#command:target_link_libraries
43
41
if (MSVC )
44
42
target_link_libraries (${WEDPR_PYTHON_TRANSPORT} PRIVATE ${Python3_LIBRARIES} )
43
+ else ()
44
+ target_link_libraries (${WEDPR_PYTHON_TRANSPORT} PRIVATE ${WEDPR_TRANSPORT_SDK_TARGET} ${Python_LIBRARIES} )
45
45
endif ()
46
-
47
- # Configure setup.py and copy to output directory
48
- file (GENERATE OUTPUT ${WEDPR_PYTHON_TRANSPORT_DIR} /__init__.py CONTENT "__version__ = \" ${PYTHON_TOOLKIT_VERSION} \"\n " )
49
- set (SETUP_PY_IN ${CMAKE_CURRENT_SOURCE_DIR} /setup.py.in)
50
- set (SETUP_PY_OUT ${WEDPR_PYTHON_TRANSPORT_DIR} /setup.py)
51
- configure_file (${SETUP_PY_IN} ${SETUP_PY_OUT} )
46
+ SET (LIBRARY_OUTPUT_PATH ${WEDPR_PYTHON_TRANSPORT_LIB_DIR} )
52
47
53
48
message (STATUS "CMAKE_INSTALL_INCLUDEDIR => ${CMAKE_INSTALL_INCLUDEDIR} " )
54
49
message (STATUS "CMAKE_CURRENT_SOURCE_DIR => ${CMAKE_CURRENT_SOURCE_DIR} " )
0 commit comments