Skip to content

Commit 9d52542

Browse files
committed
CAP: working cmake for pybind11
1 parent 634690c commit 9d52542

File tree

4 files changed

+38
-33
lines changed

4 files changed

+38
-33
lines changed

CMakeLists.txt

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -127,41 +127,43 @@ target_include_directories(${APP_NAME_EXE}
127127
#--------------------------------------------------------------------------
128128
# pybind11
129129
#--------------------------------------------------------------------------
130-
set(PYBINDMODULE_NAME diffCheckBindings)
131-
set(PYPI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/gh/diffCheck/diffCheck)
132-
set(TARGET_DLL_PYPI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/gh/diffCheck/diffCheck/dlls)
130+
if (BUILD_PYTHON_MODULE)
131+
set(PYBINDMODULE_NAME diffCheckBindings)
132+
set(PYPI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/gh/diffCheck/diffCheck)
133+
set(TARGET_DLL_PYPI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/gh/diffCheck/diffCheck/dlls)
133134

134-
download_submodule_project(pybind11)
135-
add_subdirectory(deps/pybind11)
135+
download_submodule_project(pybind11)
136+
add_subdirectory(deps/pybind11)
136137

137-
find_package(Python3 COMPONENTS Interpreter Development REQUIRED)
138+
find_package(Python3 COMPONENTS Interpreter Development REQUIRED)
138139

139-
message(STATUS "Python3_EXECUTABLE: ${Python3_EXECUTABLE}")
140-
message(STATUS "Python3_INCLUDE_DIRS: ${Python3_INCLUDE_DIRS}")
141-
message(STATUS "Python3_LIBRARIES: ${Python3_LIBRARIES}")
142-
message(STATUS "Python3_VERSION: ${Python3_VERSION}")
140+
message(STATUS "Python3_EXECUTABLE: ${Python3_EXECUTABLE}")
141+
message(STATUS "Python3_INCLUDE_DIRS: ${Python3_INCLUDE_DIRS}")
142+
message(STATUS "Python3_LIBRARIES: ${Python3_LIBRARIES}")
143+
message(STATUS "Python3_VERSION: ${Python3_VERSION}")
143144

144-
set(PYBIND11_PYTHON_VERSION 3.9.10)
145+
set(PYBIND11_PYTHON_VERSION 3.9.10)
145146

146-
pybind11_add_module(${PYBINDMODULE_NAME} src/diffCheckBindings.cc)
147+
pybind11_add_module(${PYBINDMODULE_NAME} src/diffCheckBindings.cc)
147148

148-
target_link_libraries(${PYBINDMODULE_NAME} PRIVATE ${SHARED_LIB_NAME})
149-
target_include_directories(${PYBINDMODULE_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
149+
target_link_libraries(${PYBINDMODULE_NAME} PRIVATE ${SHARED_LIB_NAME})
150+
target_include_directories(${PYBINDMODULE_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
150151

151-
add_custom_command(TARGET ${PYBINDMODULE_NAME} POST_BUILD
152-
COMMAND ${CMAKE_COMMAND} -E copy_if_different
153-
$<TARGET_FILE:${PYBINDMODULE_NAME}>
154-
${PYPI_DIR}
155-
)
152+
add_custom_command(TARGET ${PYBINDMODULE_NAME} POST_BUILD
153+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
154+
$<TARGET_FILE:${PYBINDMODULE_NAME}>
155+
${PYPI_DIR}
156+
)
156157

157-
add_custom_command(TARGET ${PYBINDMODULE_NAME} POST_BUILD
158-
COMMAND ${CMAKE_COMMAND} -E copy_if_different
159-
$<TARGET_FILE:${SHARED_LIB_NAME}>
160-
${TARGET_DLL_PYPI_DIR}
161-
)
162-
# TODO: for open3d-dll is working but it should be done in a more elegant way
163-
add_custom_command(TARGET ${PYBINDMODULE_NAME} POST_BUILD
164-
COMMAND ${CMAKE_COMMAND} -E copy_if_different
165-
$<TARGET_FILE:Open3D::Open3D>
166-
${TARGET_DLL_PYPI_DIR}
167-
)
158+
add_custom_command(TARGET ${PYBINDMODULE_NAME} POST_BUILD
159+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
160+
$<TARGET_FILE:${SHARED_LIB_NAME}>
161+
${TARGET_DLL_PYPI_DIR}
162+
)
163+
# TODO: for open3d-dll is working but it should be done in a more elegant way
164+
add_custom_command(TARGET ${PYBINDMODULE_NAME} POST_BUILD
165+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
166+
$<TARGET_FILE:Open3D::Open3D>
167+
${TARGET_DLL_PYPI_DIR}
168+
)
169+
endif()

cmake/__noenv__clean.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ REM clean the build directory and reconfigure it
55
rmdir /s /q build
66

77
REM configure the project
8-
cmake -S . -B build
8+
cmake -S . -B build -A x64

cmake/config.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ REM activate the conda diff_check environment otherwise the python wrap won't wo
55
call cmake/activate_conda.bat
66

77
REM configure the project
8-
cmake -S . -B build
8+
cmake -S . -B build -A x64

cmake/options.cmake

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@
33
# specify the same custom options.
44
option(STATIC_WINDOWS_RUNTIME "Use static (MT/MTd) Windows runtime" ON)
55

6-
option(SILENT_LOGGING "Do not log messages in the terminal if on." OFF)
6+
option(SILENT_LOGGING "Do not log messages in the terminal if on." OFF)
7+
8+
# To build the python bindings
9+
option(BUILD_PYTHON_MODULE "Build the python bindings" ON)

0 commit comments

Comments
 (0)