소스 검색

Merge pull request #8640 from lat9nq/vcpkg-extra

cmake,ci: vcpkg leftovers
Morph 4 년 전
부모
커밋
69e04da537
4개의 변경된 파일28개의 추가작업 그리고 12개의 파일을 삭제
  1. 1 1
      .ci/templates/build-msvc.yml
  2. 1 1
      .github/workflows/verify.yml
  3. 13 10
      CMakeLists.txt
  4. 13 0
      vcpkg.json

+ 1 - 1
.ci/templates/build-msvc.yml

@@ -9,7 +9,7 @@ parameters:
 steps:
 - script: choco install vulkan-sdk
   displayName: 'Install vulkan-sdk'
-- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -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 ..
+- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -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 ..
   displayName: 'Configure CMake'
 - task: MSBuild@1
   displayName: 'Build'

+ 1 - 1
.github/workflows/verify.yml

@@ -104,7 +104,7 @@ jobs:
         run: |
           glslangValidator --version
           mkdir build
-          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 -DGIT_BRANCH=pr-verify -DCLANG_FORMAT_SUFFIX=discordplzdontclang -DYUZU_TESTS=OFF -DYUZU_USE_BUNDLED_VCPKG=ON
+          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 -DGIT_BRANCH=pr-verify -DCLANG_FORMAT_SUFFIX=discordplzdontclang
       - name: Build
         run: cmake --build build
       - name: Cache Summary

+ 13 - 10
CMakeLists.txt

@@ -38,9 +38,13 @@ option(YUZU_USE_BUNDLED_OPUS "Compile bundled opus" ON)
 
 option(YUZU_TESTS "Compile tests" ON)
 
-option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" OFF)
+option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}")
 
 if (YUZU_USE_BUNDLED_VCPKG)
+    if (YUZU_TESTS)
+        list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests")
+    endif()
+
     include(${CMAKE_SOURCE_DIR}/externals/vcpkg/scripts/buildsystems/vcpkg.cmake)
 elseif(NOT "$ENV{VCPKG_TOOLCHAIN_FILE}" STREQUAL "")
     # Disable manifest mode (use vcpkg classic mode) when using a custom vcpkg installation
@@ -160,7 +164,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
 # =======================================================================
 
 find_package(fmt 8.0.1 REQUIRED CONFIG)
-find_package(lz4 1.8 REQUIRED)
 find_package(nlohmann_json 3.8 REQUIRED CONFIG)
 find_package(ZLIB 1.2 REQUIRED)
 
@@ -170,6 +173,12 @@ if (NOT zstd_FOUND)
     find_package(zstd 1.5 REQUIRED)
 endif()
 
+# lz4 1.8 is required, but vcpkg's lz4-config.cmake does not have version info
+find_package(lz4 CONFIG)
+if (NOT lz4_FOUND)
+    find_package(lz4 1.8 REQUIRED)
+endif()
+
 if (YUZU_TESTS)
     find_package(Catch2 2.13.7 REQUIRED CONFIG)
 endif()
@@ -355,16 +364,10 @@ if (ENABLE_SDL2)
     endif()
 endif()
 
-# TODO(lat9nq): Determine what if any of this we still need
-#
-# Reexport some targets that are named differently when using the upstream CmakeConfig vs the generated Conan config
+# Reexport some targets that are named differently when using the upstream CmakeConfig
 # In order to ALIAS targets to a new name, they first need to be IMPORTED_GLOBAL
 # Dynarmic checks for target `boost` and so we want to make sure it can find it through our system instead of using their external
-if (TARGET Boost::Boost)
-    set_target_properties(Boost::Boost PROPERTIES IMPORTED_GLOBAL TRUE)
-    add_library(Boost::boost ALIAS Boost::Boost)
-    add_library(boost ALIAS Boost::Boost)
-elseif (TARGET Boost::boost)
+if (TARGET Boost::boost)
     set_target_properties(Boost::boost PROPERTIES IMPORTED_GLOBAL TRUE)
     add_library(boost ALIAS Boost::boost)
 endif()

+ 13 - 0
vcpkg.json

@@ -1,6 +1,7 @@
 {
     "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
     "name": "yuzu",
+    "builtin-baseline": "cef0b3ec767df6e83806899fe9525f6cf8d7bc91",
     "version": "1.0",
     "dependencies": [
         "boost-algorithm",
@@ -25,5 +26,17 @@
         "nlohmann-json",
         "zlib",
         "zstd"
+    ],
+    "features": {
+        "yuzu-tests": {
+            "description": "Compile tests",
+            "dependencies": [ "catch2" ]
+        }
+    },
+    "overrides": [
+        {
+            "name": "catch2",
+            "version": "2.13.9"
+        }
     ]
 }