@@ -5,12 +5,11 @@ set(CMAKE_CXX_COMPILER g++)
55
66project (FastBDT)
77set (FastBDT_VERSION_MAJOR 5)
8- set (FastBDT_VERSION_MINOR 1 )
8+ set (FastBDT_VERSION_MINOR 2 )
99
1010set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR} /cmake" )
1111
1212set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -std=c++11 -Wall -Wextra -g -msse2" )
13- #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -std=c++11 -Wall -Wextra -g -march=native")
1413#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb3 -g -std=c++11 -Wall -Wextra")
1514
1615configure_file (
@@ -37,7 +36,7 @@ set(FastBDT_TESTS
3736
3837set (FastBDT_HEADERS
3938 "${PROJECT_BINARY_DIR} /include/FastBDT.h"
40- "${PROJECT_BINARY_DIR } /include/Classifier.h"
39+ "${PROJECT_SOURCE_DIR } /include/Classifier.h"
4140 "${PROJECT_SOURCE_DIR} /include/FastBDT_IO.h"
4241)
4342
@@ -46,6 +45,12 @@ set(FastBDT_CINTERFACE
4645 "${PROJECT_SOURCE_DIR} /include/FastBDT_C_API.h"
4746)
4847
48+ set (FastBDT_Python
49+ "${PROJECT_SOURCE_DIR} /PyFastBDT/__init__.py"
50+ "${PROJECT_SOURCE_DIR} /PyFastBDT/FastBDT.py"
51+ "${PROJECT_SOURCE_DIR} /PyFastBDT/utility.py"
52+ )
53+
4954add_library (FastBDT_static STATIC ${FastBDT_SOURCES} ${FastBDT_HEADERS} )
5055add_library (FastBDT_CInterface SHARED ${FastBDT_CINTERFACE} ${FastBDT_SOURCES} ${FastBDT_HEADERS} )
5156target_link_libraries (FastBDT_CInterface)
@@ -76,19 +81,19 @@ find_program(PYTHON "python3")
7681if (PYTHON)
7782 configure_file (
7883 "${PROJECT_SOURCE_DIR} /setup.py.in"
79- "${PROJECT_SOURCE_DIR } /setup.py"
84+ "${PROJECT_BINARY_DIR } /setup.py"
8085 )
86+ add_custom_target (PyFastBDT ALL DEPENDS ${FastBDT_Python} FastBDT_shared FastBDT_CInterface)
8187
82- add_custom_command (OUTPUT "${CMAKE_CURRENT_BINARY_DIR} /build/timestamp"
83- COMMAND ${PYTHON} "${CMAKE_CURRENT_BINARY_DIR} /setup.py" build
88+ add_custom_command (TARGET PyFastBDT PRE_BUILD
89+ COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR} /PyFastBDT" "${CMAKE_BINARY_DIR} /PyFastBDT"
90+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:FastBDT_shared> "${PROJECT_BINARY_DIR} /PyFastBDT/"
91+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:FastBDT_CInterface> "${PROJECT_BINARY_DIR} /PyFastBDT/"
92+ COMMAND ${PYTHON} "${CMAKE_BINARY_DIR} /setup.py" build
8493 COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_CURRENT_BINARY_DIR} /build/timestamp"
85- DEPENDS ${DEPS} )
86-
87- add_custom_target (target ALL DEPENDS ${OUTPUT} )
88- add_custom_command (TARGET FastBDT_shared POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:FastBDT_shared> "${PROJECT_SOURCE_DIR} /PyFastBDT/" )
89- add_custom_command (TARGET FastBDT_CInterface POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:FastBDT_CInterface> "${PROJECT_SOURCE_DIR} /PyFastBDT/" )
94+ )
9095
91- install (CODE "execute_process(COMMAND ${PYTHON} ${PROJECT_SOURCE_DIR } /setup.py install --prefix=${CMAKE_INSTALL_PREFIX} )" )
96+ install (CODE "execute_process(COMMAND ${PYTHON} ${PROJECT_BINARY_DIR } /setup.py install --prefix=${CMAKE_INSTALL_PREFIX} )" )
9297endif ()
9398
9499set (CPACK_PACKAGE_VERSION "${FastBDT_VERSION_MAJOR} .${FastBDT_VERSION_MINOR} " )
0 commit comments