From d91ceec7a4c2b4c57559f59b4c9722aeb5de17d9 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 29 Oct 2025 19:55:54 +1100 Subject: [PATCH 1/2] Add BUILD_TOOLS options, enable C++17 for CLI targets. --- CMakeLists.txt | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 876e29f..ee8abb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,22 +78,39 @@ install(EXPORT spzTargets DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/spz" ) -# CLI Tools -add_executable(ply_to_spz cli_tools/src/ply_to_spz.cpp) -target_link_libraries(ply_to_spz PRIVATE spz) -target_include_directories(ply_to_spz PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) +# --- Command Line Tools Option --- +option(BUILD_TOOLS "Build command line tools" ON) + +if(BUILD_TOOLS) + # CLI Tools + add_executable(ply_to_spz cli_tools/src/ply_to_spz.cpp) + target_link_libraries(ply_to_spz PRIVATE spz) + target_include_directories(ply_to_spz PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) + set_target_properties(ply_to_spz PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + ) -add_executable(spz_to_ply cli_tools/src/spz_to_ply.cpp) -target_link_libraries(spz_to_ply PRIVATE spz) -target_include_directories(spz_to_ply PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) + add_executable(spz_to_ply cli_tools/src/spz_to_ply.cpp) + target_link_libraries(spz_to_ply PRIVATE spz) + target_include_directories(spz_to_ply PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) + set_target_properties(spz_to_ply PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + ) -add_executable(spz_info cli_tools/src/spz_info.cpp) -target_link_libraries(spz_info PRIVATE spz) -target_include_directories(spz_info PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) + add_executable(spz_info cli_tools/src/spz_info.cpp) + target_link_libraries(spz_info PRIVATE spz) + target_include_directories(spz_info PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) + set_target_properties(spz_info PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + ) -install(TARGETS ply_to_spz spz_to_ply spz_info - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -) + install(TARGETS ply_to_spz spz_to_ply spz_info + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) +endif() # --- Python Bindings Option --- option(BUILD_PYTHON_BINDINGS "Build Python bindings using nanobind" OFF) From 2ce7360c312aa0e831696792f565c1524a8a4bb2 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Fri, 31 Oct 2025 13:17:03 +1100 Subject: [PATCH 2/2] Export all symbols on Windows by specifying -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON. --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5e4afe0..8ce13d6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,6 +50,7 @@ jobs: -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS \ -DBUILD_TESTING=ON \ -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX} \ + -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON \ ..