@@ -29,20 +29,21 @@ execute_process(COMMAND ${PROJECT_BINARY_DIR}/bin/cp_rs ${CMAKE_CURRENT_SOURCE_D
29
29
# * Compiles the wrapper-code into the module ${module_name}.so
30
30
#
31
31
###################################################################################
32
- macro (add_cpp2py_module)
32
+ function (add_cpp2py_module)
33
33
34
34
if (${ARGC} EQUAL 1)
35
35
set (module_name ${ARGV0} )
36
36
else ()
37
- cmake_parse_arguments (add_cpp2py_module "" "NAME" "DEPENDS" ${ARGN} )
38
- set (module_name ${add_cpp2py_module_NAME} )
39
- set (header_dependencies ${add_cpp2py_module_DEPENDS} )
37
+ cmake_parse_arguments (ARG "" "NAME;DIRECTORY" "DEPENDS" ${ARGN} )
38
+ set (module_name ${ARG_NAME} )
39
+ set (module_dir ${ARG_DIRECTORY} )
40
+ set (header_dependencies ${ARG_DEPENDS} )
40
41
endif ()
41
42
42
43
message (STATUS "Adding cpp2py Python module ${module_name} " )
43
44
44
- set (desc_name ${CMAKE_CURRENT_SOURCE_DIR} /${module_name} _desc.py) # the desc file
45
- set (wrap_name ${CMAKE_CURRENT_BINARY_DIR} /${module_name} _wrap.cxx) # path to the wrapping code
45
+ set (desc_name ${CMAKE_CURRENT_SOURCE_DIR} /${module_dir} / ${ module_name} _desc.py) # the desc file
46
+ set (wrap_name ${CMAKE_CURRENT_BINARY_DIR} /${module_dir} / ${ module_name} _wrap.cxx) # path to the wrapping code
46
47
47
48
add_custom_command (OUTPUT ${wrap_name} DEPENDS ${desc_name} ${header_dependencies}
48
49
COMMAND PYTHONPATH=${PROJECT_BINARY_DIR} :${PROJECT_BINARY_DIR} /python:${CPP2PY_BINARY_DIR} :${CPP2PY_ADD_MODULE_ADDITIONAL_PYTHONPATH} :$ENV{PYTHONPATH} ${PYTHON_EXECUTABLE} ${desc_name} ${wrap_name} )
@@ -56,11 +57,11 @@ macro(add_cpp2py_module)
56
57
set_target_properties (${module_name}
57
58
PROPERTIES
58
59
PREFIX "" #eliminate the lib in front of the module name
59
- LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
60
+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} / ${module_dir}
60
61
)
61
62
62
63
# Keep a list of every module target.
63
64
# Usage : e.g. Documentation top target depends on them being built first
64
65
set_property (GLOBAL APPEND PROPERTY CPP2PY_MODULES_LIST ${module_name} )
65
66
66
- endmacro (add_cpp2py_module)
67
+ endfunction (add_cpp2py_module)
0 commit comments