28 lines
1.4 KiB
CMake
28 lines
1.4 KiB
CMake
file( GLOB_RECURSE PYTHON_SRC *.cpp)
|
|
file( GLOB_RECURSE PYTHON_PYSRC *.py)
|
|
add_custom_target( MAKE_PYTHON_SRC_VISIBLE SOURCES ${PYTHON_SRC} ${PYTHON_PYSRC})
|
|
|
|
set(SETUP_PY_IN "${CMAKE_MODULES_PATH}/python/setup.py")
|
|
set(SETUP_PY "${CMAKE_CURRENT_SOURCE_DIR}/setup.py")
|
|
set(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/build")
|
|
|
|
function(JOIN VALUES GLUE OUTPUT)
|
|
string (REGEX REPLACE "([^\\]|^);" "\\1${GLUE}" _TMP_STR "${VALUES}")
|
|
string (REGEX REPLACE "[\\](.)" "\\1" _TMP_STR "${_TMP_STR}")
|
|
set (${OUTPUT} "${_TMP_STR}" PARENT_SCOPE)
|
|
endfunction()
|
|
join("${LIBISAAC_SRC}" " " LIBISAAC_SRC_STR)
|
|
|
|
get_property(INCLUDE_DIRECTORIES_LST DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
|
|
join("${INCLUDE_DIRECTORIES_LST}" " " INCLUDE_DIRECTORIES_STR)
|
|
|
|
configure_file(${SETUP_PY_IN} ${SETUP_PY})
|
|
|
|
add_custom_command(OUTPUT ${OUTPUT}/timestamp
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/isaac ${CMAKE_CURRENT_BINARY_DIR}/isaac
|
|
COMMAND ${PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/setup.py build
|
|
COMMAND ${CMAKE_COMMAND} -E touch ${OUTPUT}/timestamp
|
|
DEPENDS ${LIBISAAC_SRC} ${PYTHON_SRC} ${PYTHON_PYSRC} ${SETUP_PY})
|
|
add_custom_target(python DEPENDS ${OUTPUT}/timestamp)
|
|
install(CODE "execute_process(WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PYTHON} ${SETUP_PY} install)" OPTIONAL)
|