diff --git a/.github/workflows/windows-boost-test.yml b/.github/workflows/windows-boost-test.yml index 08a74fcf099..8bf7f551a05 100644 --- a/.github/workflows/windows-boost-test.yml +++ b/.github/workflows/windows-boost-test.yml @@ -22,14 +22,14 @@ jobs: - name: Install Boost via vcpkg run: | - vcpkg install boost-filesystem:x64-windows boost-iostreams:x64-windows boost-serialization:x64-windows boost-system:x64-windows boost-program-options:x64-windows boost-url:x64-windows boost-context:x64-windows + vcpkg install boost-filesystem:x64-windows boost-iostreams:x64-windows boost-serialization:x64-windows boost-system:x64-windows boost-program-options:x64-windows boost-url:x64-windows boost-context:x64-windows lz4:x64-windows shell: cmd - name: Configure and Build FoundationDB (without Swift) run: | mkdir build cd build - cmake .. -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DWITH_SWIFT=OFF -DBUILD_TESTING=OFF + cmake .. -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DWITH_SWIFT=OFF -DBUILD_TESTING=OFF -DBUILD_DOCUMENTATION=OFF -DWITH_CSHARP=OFF shell: cmd - name: Verify Build Success diff --git a/CMakeLists.txt b/CMakeLists.txt index e7e10f68d46..01314db22ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,11 @@ project(foundationdb VERSION 8.0.0 DESCRIPTION "FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions." HOMEPAGE_URL "http://www.foundationdb.org/" - LANGUAGES C CXX ASM Swift) + LANGUAGES C CXX ASM) + +if(WITH_SWIFT) + enable_language(Swift) +endif() list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") diff --git a/cmake/CompileBoost.cmake b/cmake/CompileBoost.cmake index ea9fbf46201..925bae405f8 100644 --- a/cmake/CompileBoost.cmake +++ b/cmake/CompileBoost.cmake @@ -178,7 +178,7 @@ endif() if(WIN32) # Use CONFIG mode to prefer Boost's BoostConfig.cmake over deprecated FindBoost module # This is required for CMake 3.30+ compatibility (policy CMP0167) - find_package(Boost 1.86.0 EXACT QUIET COMPONENTS filesystem iostreams serialization system program_options url CONFIG PATHS ${BOOST_HINT_PATHS}) + find_package(Boost 1.86.0 QUIET COMPONENTS filesystem iostreams serialization system program_options url CONFIG PATHS ${BOOST_HINT_PATHS}) add_library(boost_target INTERFACE) target_link_libraries(boost_target INTERFACE Boost::boost Boost::filesystem Boost::iostreams Boost::serialization Boost::system Boost::url) diff --git a/cmake/CompileVexillographer.cmake b/cmake/CompileVexillographer.cmake index 2d696cd8057..781ff027e81 100644 --- a/cmake/CompileVexillographer.cmake +++ b/cmake/CompileVexillographer.cmake @@ -21,6 +21,7 @@ if(WIN32 AND FDB_USE_CSHARP_TOOLS) TARGET vexillographer PROPERTY VS_DOTNET_REFERENCES "System" "System.Core" "System.Data" "System.Xml" "System.Xml.Linq") set(VEXILLOGRAPHER_DEPENDS vexillographer) + set(VEXILLOGRAPHER_COMMAND $) elseif(FDB_USE_CSHARP_TOOLS AND CSHARP_TOOLCHAIN_FOUND) if(CSHARP_USE_MONO) set(VEXILLOGRAPHER_REFERENCES diff --git a/cmake/ConfigureCompiler.cmake b/cmake/ConfigureCompiler.cmake index e300e54ac76..321ac4a22a9 100644 --- a/cmake/ConfigureCompiler.cmake +++ b/cmake/ConfigureCompiler.cmake @@ -93,7 +93,9 @@ endif() include(CheckFunctionExists) set(CMAKE_REQUIRED_INCLUDES stdlib.h malloc.h) -set(CMAKE_REQUIRED_LIBRARIES c) +if(NOT WIN32) + set(CMAKE_REQUIRED_LIBRARIES c) +endif() set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/flow/CMakeLists.txt b/flow/CMakeLists.txt index 1c27ad627c1..0163fc27bb7 100644 --- a/flow/CMakeLists.txt +++ b/flow/CMakeLists.txt @@ -49,7 +49,7 @@ if(NOT Jinja2_FOUND) ${PROTOCOL_VERSION_VENV_DIR} OUTPUT_QUIET ERROR_QUIET) find_program( VENV_Python3_EXECUTABLE - NAMES python3 python3.exe + NAMES python3 python3.exe python.exe PATHS ${PROTOCOL_VERSION_VENV_DIR}/Scripts ${PROTOCOL_VERSION_VENV_DIR}/bin REQUIRED NO_DEFAULT_PATH NO_CACHE diff --git a/packaging/msi/CMakeLists.txt b/packaging/msi/CMakeLists.txt index e1f99f4b66e..0d5d0262bdc 100644 --- a/packaging/msi/CMakeLists.txt +++ b/packaging/msi/CMakeLists.txt @@ -1,6 +1,11 @@ find_package(WIX) if(WIX_FOUND) + if(TARGET fdbmonitor) + set(FDBMONITOR_ARG -Dfdbmonitor=$) + else() + set(FDBMONITOR_ARG "") + endif() add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/FDBInstaller.wxs COMMAND ${CMAKE_COMMAND} -DOUT=${CMAKE_CURRENT_BINARY_DIR}/FDBInstaller.wxs @@ -8,7 +13,7 @@ if(WIX_FOUND) -Dfdbserver=$ -Dfdbcli=$ -Dfdbbackup=$ - -Dfdbmonitor=$ + ${FDBMONITOR_ARG} -Dfdbc=$ -DSOURCE_ROOT=${CMAKE_SOURCE_DIR} -DBUILD_ROOT=${CMAKE_BINARY_DIR} @@ -27,7 +32,10 @@ if(WIX_FOUND) COMMENT "Create WIX Object file" ) add_custom_target(wixobj DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/FDBInstaller.wixobj) - add_dependencies(wixobj fdbserver fdbcli fdbmonitor fdb_c fdbbackup python_binding) + if(TARGET fdbmonitor) + add_dependencies(wixobj fdbmonitor) + endif() + add_dependencies(wixobj fdbserver fdbcli fdb_c fdbbackup python_binding) if(NOT FDB_RELEASE) set(not_fdb_release_string "-SNAPSHOT") else()