diff options
Diffstat (limited to '')
-rw-r--r-- | CMakeLists.txt | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 40ca8b149..5f508d61a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2018 yuzu Emulator Project +# SPDX-License-Identifier: GPL-2.0-or-later + cmake_minimum_required(VERSION 3.15) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") @@ -35,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 @@ -157,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) @@ -167,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() @@ -352,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() |