diff options
| author | 2022-07-22 14:49:43 -0400 | |
|---|---|---|
| committer | 2022-07-22 20:54:00 -0400 | |
| commit | 265d1d697935ec65e31d55fc424d96276d41a8c9 (patch) | |
| tree | 2bf3da2f89b9fa8e7b33bfd088920613a9982949 | |
| parent | ci,CMake: Drop Conan support for vcpkg (diff) | |
| download | yuzu-265d1d697935ec65e31d55fc424d96276d41a8c9.tar.gz yuzu-265d1d697935ec65e31d55fc424d96276d41a8c9.tar.xz yuzu-265d1d697935ec65e31d55fc424d96276d41a8c9.zip | |
ci,CMake: Integrate vcpkg into CMakeLists
Uses manifest mode if the bundled vcpkg is used.
| -rwxr-xr-x | .ci/scripts/clang/docker.sh | 1 | ||||
| -rwxr-xr-x | .ci/scripts/linux/docker.sh | 1 | ||||
| -rw-r--r-- | .ci/templates/build-msvc.yml | 4 | ||||
| -rw-r--r-- | .github/workflows/verify.yml | 3 | ||||
| -rw-r--r-- | .gitmodules | 3 | ||||
| -rw-r--r-- | CMakeLists.txt | 10 | ||||
| m--------- | externals/vcpkg | 0 | ||||
| -rw-r--r-- | vcpkg.json | 29 |
8 files changed, 44 insertions, 7 deletions
diff --git a/.ci/scripts/clang/docker.sh b/.ci/scripts/clang/docker.sh index e9719645c..db736f72b 100755 --- a/.ci/scripts/clang/docker.sh +++ b/.ci/scripts/clang/docker.sh | |||
| @@ -11,7 +11,6 @@ cmake .. \ | |||
| 11 | -DCMAKE_CXX_COMPILER=/usr/lib/ccache/clang++ \ | 11 | -DCMAKE_CXX_COMPILER=/usr/lib/ccache/clang++ \ |
| 12 | -DCMAKE_C_COMPILER=/usr/lib/ccache/clang \ | 12 | -DCMAKE_C_COMPILER=/usr/lib/ccache/clang \ |
| 13 | -DCMAKE_INSTALL_PREFIX="/usr" \ | 13 | -DCMAKE_INSTALL_PREFIX="/usr" \ |
| 14 | -DCMAKE_TOOLCHAIN_FILE=${VCPKG_TOOLCHAIN_FILE} \ | ||
| 15 | -DDISPLAY_VERSION=$1 \ | 14 | -DDISPLAY_VERSION=$1 \ |
| 16 | -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ | 15 | -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ |
| 17 | -DENABLE_QT_TRANSLATION=ON \ | 16 | -DENABLE_QT_TRANSLATION=ON \ |
diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh index d4787f684..436155b3d 100755 --- a/.ci/scripts/linux/docker.sh +++ b/.ci/scripts/linux/docker.sh | |||
| @@ -12,7 +12,6 @@ cmake .. \ | |||
| 12 | -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \ | 12 | -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \ |
| 13 | -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \ | 13 | -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \ |
| 14 | -DCMAKE_INSTALL_PREFIX="/usr" \ | 14 | -DCMAKE_INSTALL_PREFIX="/usr" \ |
| 15 | -DCMAKE_TOOLCHAIN_FILE=${VCPKG_TOOLCHAIN_FILE} \ | ||
| 16 | -DDISPLAY_VERSION=$1 \ | 15 | -DDISPLAY_VERSION=$1 \ |
| 17 | -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ | 16 | -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ |
| 18 | -DENABLE_QT_TRANSLATION=ON \ | 17 | -DENABLE_QT_TRANSLATION=ON \ |
diff --git a/.ci/templates/build-msvc.yml b/.ci/templates/build-msvc.yml index cca3189fa..5d2e86179 100644 --- a/.ci/templates/build-msvc.yml +++ b/.ci/templates/build-msvc.yml | |||
| @@ -6,9 +6,7 @@ parameters: | |||
| 6 | steps: | 6 | steps: |
| 7 | - script: choco install vulkan-sdk | 7 | - script: choco install vulkan-sdk |
| 8 | displayName: 'Install vulkan-sdk' | 8 | displayName: 'Install vulkan-sdk' |
| 9 | - script: python -m pip install --upgrade pip conan | 9 | - script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 17 2022" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release -DYUZU_TESTS=OFF -DYUZU_USE_BUNDLED_VCPKG=ON .. && cd .. |
| 10 | displayName: 'Install conan' | ||
| 11 | - script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 17 2022" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release .. && cd .. | ||
| 12 | displayName: 'Configure CMake' | 10 | displayName: 'Configure CMake' |
| 13 | - task: MSBuild@1 | 11 | - task: MSBuild@1 |
| 14 | displayName: 'Build' | 12 | displayName: 'Build' |
diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index c1886b9f3..88e3a9a72 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml | |||
| @@ -80,7 +80,6 @@ jobs: | |||
| 80 | shell: cmd | 80 | shell: cmd |
| 81 | run: | | 81 | run: | |
| 82 | choco install vulkan-sdk wget | 82 | choco install vulkan-sdk wget |
| 83 | python -m pip install --upgrade pip conan | ||
| 84 | call refreshenv | 83 | call refreshenv |
| 85 | wget https://github.com/mbitsnbites/buildcache/releases/download/v0.27.6/buildcache-windows.zip | 84 | wget https://github.com/mbitsnbites/buildcache/releases/download/v0.27.6/buildcache-windows.zip |
| 86 | 7z x buildcache-windows.zip | 85 | 7z x buildcache-windows.zip |
| @@ -100,7 +99,7 @@ jobs: | |||
| 100 | run: | | 99 | run: | |
| 101 | glslangValidator --version | 100 | glslangValidator --version |
| 102 | mkdir build | 101 | mkdir build |
| 103 | cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release | 102 | cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DYUZU_TESTS=OFF -DYUZU_USE_BUNDLED_VCPKG=ON |
| 104 | - name: Build | 103 | - name: Build |
| 105 | run: cmake --build build | 104 | run: cmake --build build |
| 106 | - name: Cache Summary | 105 | - name: Cache Summary |
diff --git a/.gitmodules b/.gitmodules index dc92d0a4b..846e41d26 100644 --- a/.gitmodules +++ b/.gitmodules | |||
| @@ -40,3 +40,6 @@ | |||
| 40 | [submodule "externals/ffmpeg/ffmpeg"] | 40 | [submodule "externals/ffmpeg/ffmpeg"] |
| 41 | path = externals/ffmpeg/ffmpeg | 41 | path = externals/ffmpeg/ffmpeg |
| 42 | url = https://git.ffmpeg.org/ffmpeg.git | 42 | url = https://git.ffmpeg.org/ffmpeg.git |
| 43 | [submodule "externals/vcpkg"] | ||
| 44 | path = externals/vcpkg | ||
| 45 | url = https://github.com/Microsoft/vcpkg.git | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt index aed076dea..6993b6967 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -35,6 +35,16 @@ option(YUZU_USE_BUNDLED_OPUS "Compile bundled opus" ON) | |||
| 35 | 35 | ||
| 36 | option(YUZU_TESTS "Compile tests" ON) | 36 | option(YUZU_TESTS "Compile tests" ON) |
| 37 | 37 | ||
| 38 | option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" OFF) | ||
| 39 | |||
| 40 | if (YUZU_USE_BUNDLED_VCPKG) | ||
| 41 | include(${CMAKE_SOURCE_DIR}/externals/vcpkg/scripts/buildsystems/vcpkg.cmake) | ||
| 42 | elseif(NOT "$ENV{VCPKG_TOOLCHAIN_FILE}" STREQUAL "") | ||
| 43 | # Disable manifest mode (use vcpkg classic mode) when using a custom vcpkg installation | ||
| 44 | option(VCPKG_MANIFEST_MODE "") | ||
| 45 | include("$ENV{VCPKG_TOOLCHAIN_FILE}") | ||
| 46 | endif() | ||
| 47 | |||
| 38 | # Default to a Release build | 48 | # Default to a Release build |
| 39 | get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) | 49 | get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) |
| 40 | if (NOT IS_MULTI_CONFIG AND NOT CMAKE_BUILD_TYPE) | 50 | if (NOT IS_MULTI_CONFIG AND NOT CMAKE_BUILD_TYPE) |
diff --git a/externals/vcpkg b/externals/vcpkg new file mode 160000 | |||
| Subproject cef0b3ec767df6e83806899fe9525f6cf8d7bc9 | |||
diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 000000000..8d3c5919a --- /dev/null +++ b/vcpkg.json | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | { | ||
| 2 | "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json", | ||
| 3 | "name": "yuzu", | ||
| 4 | "version": "1.0", | ||
| 5 | "dependencies": [ | ||
| 6 | "boost-algorithm", | ||
| 7 | "boost-asio", | ||
| 8 | "boost-bind", | ||
| 9 | "boost-config", | ||
| 10 | "boost-container", | ||
| 11 | "boost-context", | ||
| 12 | "boost-crc", | ||
| 13 | "boost-functional", | ||
| 14 | "boost-icl", | ||
| 15 | "boost-intrusive", | ||
| 16 | "boost-mpl", | ||
| 17 | "boost-process", | ||
| 18 | "boost-range", | ||
| 19 | "boost-spirit", | ||
| 20 | "boost-test", | ||
| 21 | "boost-timer", | ||
| 22 | "boost-variant", | ||
| 23 | "fmt", | ||
| 24 | "lz4", | ||
| 25 | "nlohmann-json", | ||
| 26 | "zlib", | ||
| 27 | "zstd" | ||
| 28 | ] | ||
| 29 | } | ||