diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index 5cd050166..454ca5f9a 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -46,6 +46,21 @@ jobs: ninja --version clang --version + - name: Install dependencies (Windows) + if: runner.os == 'Windows' + uses: microsoft/setup-msbuild@v1.0.2 + + - name: Setup MSVC + if: runner.os == 'Windows' + uses: ilammy/msvc-dev-cmd@v1 + + - name: Install CMake and Ninja (Windows) + if: runner.os == 'Windows' + run: | + choco install cmake ninja + cmake --version + ninja --version + - name: Setup vcpkg uses: lukka/run-vcpkg@v11 with: diff --git a/.github/workflows/winvcpkg.yml b/.github/workflows/winvcpkg.yml new file mode 100644 index 000000000..5b77eccda --- /dev/null +++ b/.github/workflows/winvcpkg.yml @@ -0,0 +1,49 @@ +name: Vcpkg CI + +on: [push] + +jobs: + build: + strategy: + matrix: + os: [windows-latest] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2 + + - name: Cache vcpkg + uses: actions/cache@v2 + with: + path: | + ${{github.workspace}}/vcpkg + !${{github.workspace}}/vcpkg/buildtrees + !${{github.workspace}}/vcpkg/packages + !${{github.workspace}}/vcpkg/downloads + key: ${{ runner.os }}-vcpkg-${{ hashFiles('**/vcpkg.json') }} + restore-keys: | + ${{ runner.os }}-vcpkg- + + - name: Install dependencies (Windows) + if: runner.os == 'Windows' + uses: microsoft/setup-msbuild@v1.0.2 + + - name: Setup MSVC + if: runner.os == 'Windows' + uses: ilammy/msvc-dev-cmd@v1 + + - name: Install CMake and Ninja (Windows) + if: runner.os == 'Windows' + run: | + choco install cmake ninja + cmake --version + ninja --version + + - name: Setup vcpkg + uses: lukka/run-vcpkg@v11 + with: + vcpkgGitCommitId: '3508985146f1b1d248c67ead13f8f54be5b4f5da' + vcpkgJsonGlob: '**/vcpkg.json' + + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -G Ninja -DCMAKE_TOOLCHAIN_FILE=${{github.workspace}}/vcpkg/scripts/buildsystems/vcpkg.cmake || cmake -B ${{github.workspace}}/build -G Ninja -DCMAKE_TOOLCHAIN_FILE=${{github.workspace}}/vcpkg/scripts/buildsystems/vcpkg.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 5156df716..f132ff3b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,14 +58,16 @@ if(CMAKE_BUILD_TYPE MATCHES [Dd][Ee][Bb][Uu][Gg]) if(MSVC) add_compile_options($<$:/constexpr:steps1000000000>) add_link_options(/stack:1000000000) - else() + elseif(NOT OPENMIND_USE_VCPKG) add_definitions(-DBOOST_ALL_DYN_LINK) endif() else() set(_IS_DEBUG FALSE) set(Boost_USE_STATIC_LIBS ON) SET(BUILD_SHARED_LIBS OFF) - add_definitions(-DBOOST_ALL_STATIC_LINK) + if(NOT OPENMIND_USE_VCPKG) + add_definitions(-DBOOST_ALL_STATIC_LINK) + endif() if(CMAKE_BUILD_TYPE MATCHES [Rr][Ee][Ll][Ee][Aa][Ss][Ee]) set(OPENMIND_PRIME_TABLE Bundled CACHE STRING "Table of predefined prime numbers") option(OPENMIND_USE_CPACK "Build an installer" ON) @@ -214,7 +216,7 @@ if(OPENMIND_PRIME_MINING) endif() set(OPENMIND_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) -message("OPENMIND_INCLUDE_DIR ${OPENMIND_INCLUDE_DIR}") +message("OPENMIND_INCLUDE_DIR=${OPENMIND_INCLUDE_DIR}") if(EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) option(OPENMIND_USE_CONAN "Use conan dependencies" ON) @@ -237,8 +239,7 @@ if (NOT Boost_FOUND) if (OPENMIND_USE_VCPKG) unset(Boost_DIR CACHE) unset(Boost_INCLUDE_DIR CACHE) - message("BOOST_USED_COMPONENTS=${BOOST_USED_COMPONENTS}") - find_package(Boost CONFIG REQUIRED COMPONENTS ${BOOST_USED_COMPONENTS}) + find_package(Boost CONFIG COMPONENTS ${BOOST_USED_COMPONENTS} REQUIRED) else() find_package(Boost ${OPENMIND_PREFERRED_BOOST_VERSION} CONFIG