diff --git a/CMakeLists.txt b/CMakeLists.txt index ad14baef8fa..96cb075e311 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,6 +148,7 @@ option(BUILD_JAVA "Build Java API." FALSE) option(BUILD_NODEJS "Build NodeJS API." FALSE) option(BUILD_PYTHON "Build Python API." FALSE) option(BUILD_SHELL "Build Interactive Shell" TRUE) +option(BUILD_SINGLE_FILE_HEADER "Build single file header." TRUE) option(BUILD_TESTS "Build C++ tests." FALSE) option(BUILD_LCOV "Build coverage report." FALSE) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 98ca3e14fac..285430a333d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -41,16 +41,18 @@ endif() install(TARGETS kuzu kuzu_shared) -# Create a command to generate kuzu.hpp, and then create a target that is -# always built that depends on it. This allows our generator to detect when -# exactly to build kuzu.hpp, while still building the target by default. -find_package(Python3 3.9...4 REQUIRED) -add_custom_command( - OUTPUT kuzu.hpp - COMMAND - ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/scripts/collect-single-file-header.py - DEPENDS - ${PROJECT_SOURCE_DIR}/scripts/collect-single-file-header.py kuzu_shared) -add_custom_target(single_file_header ALL DEPENDS kuzu.hpp) +if(${BUILD_SINGLE_FILE_HEADER}) + # Create a command to generate kuzu.hpp, and then create a target that is + # always built that depends on it. This allows our generator to detect when + # exactly to build kuzu.hpp, while still building the target by default. + find_package(Python3 3.9...4 REQUIRED) + add_custom_command( + OUTPUT kuzu.hpp + COMMAND + ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/scripts/collect-single-file-header.py + DEPENDS + ${PROJECT_SOURCE_DIR}/scripts/collect-single-file-header.py kuzu_shared) + add_custom_target(single_file_header ALL DEPENDS kuzu.hpp) +endif() install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kuzu.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/c_api/kuzu.h TYPE INCLUDE) diff --git a/tools/rust_api/build.rs b/tools/rust_api/build.rs index 0e9b30614e9..141879412dd 100644 --- a/tools/rust_api/build.rs +++ b/tools/rust_api/build.rs @@ -96,7 +96,10 @@ fn build_bundled_cmake() -> Result, Box> { }; let mut build = cmake::Config::new(&kuzu_root); - build.no_build_target(true).define("BUILD_SHELL", "OFF"); + build + .no_build_target(true) + .define("BUILD_SHELL", "OFF") + .define("BUILD_SINGLE_FILE_HEADER", "OFF"); if cfg!(windows) { build.generator("Ninja"); build.cxxflag("/EHsc");