Skip to content

Commit ce5dda1

Browse files
committed
Rewrote python installation in CMakeLists.txt to fix the weird behaviour of the previous version
1 parent cc514e9 commit ce5dda1

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

CMakeLists.txt

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@ set(CMAKE_CXX_COMPILER g++)
55

66
project (FastBDT)
77
set (FastBDT_VERSION_MAJOR 5)
8-
set (FastBDT_VERSION_MINOR 1)
8+
set (FastBDT_VERSION_MINOR 2)
99

1010
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake")
1111

1212
set(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

1615
configure_file (
@@ -37,7 +36,7 @@ set(FastBDT_TESTS
3736

3837
set(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+
4954
add_library(FastBDT_static STATIC ${FastBDT_SOURCES} ${FastBDT_HEADERS})
5055
add_library(FastBDT_CInterface SHARED ${FastBDT_CINTERFACE} ${FastBDT_SOURCES} ${FastBDT_HEADERS})
5156
target_link_libraries(FastBDT_CInterface)
@@ -76,19 +81,19 @@ find_program(PYTHON "python3")
7681
if (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})")
9297
endif()
9398

9499
set(CPACK_PACKAGE_VERSION "${FastBDT_VERSION_MAJOR}.${FastBDT_VERSION_MINOR}")

0 commit comments

Comments
 (0)