diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d35ccb696..0ee012aca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,9 +38,15 @@ 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}") + +option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON) 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 @@ -77,7 +83,7 @@ function(check_submodules_present) endforeach() endfunction() -if(EXISTS ${PROJECT_SOURCE_DIR}/.gitmodules) +if(EXISTS ${PROJECT_SOURCE_DIR}/.gitmodules AND YUZU_CHECK_SUBMODULES) check_submodules_present() endif() configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc @@ -160,7 +166,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 +175,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 +366,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() |