From bc30a591ba7252e0c16d9c1b3c75a7073735bcae Mon Sep 17 00:00:00 2001 From: James Rowe Date: Fri, 8 May 2020 15:09:29 -0600 Subject: Replace externals with Conan (#3735) * Remove git submodules that will be loaded through conan * Move custom Find modules to their own folder * Use conan for downloading missing external dependencies * CI: Change the yuzu source folder user to the user that the containers run on * Attempt to remove dirty mingw build hack * Install conan on the msvc build * Only set release build type when using not using multi config generator * Re-add qt bundled to workaround an issue with conan qt not downloading prebuilt binaries * Add workaround for submodules that use legacy CMAKE variables * Re-add USE_BUNDLED_QT on the msvc build bot --- externals/CMakeLists.txt | 87 ++++-------------------------------------------- 1 file changed, 6 insertions(+), 81 deletions(-) (limited to 'externals/CMakeLists.txt') diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 653c64f47..0b40cd1b0 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -1,30 +1,13 @@ # Definitions for all external bundled libraries -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules) +list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMakeModules") +list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/externals/find-modules") include(DownloadExternals) -# pkgconfig -- it is used to find shared libraries without cmake modules on linux systems -find_package(PkgConfig) -if (NOT PkgConfig_FOUND) - function(pkg_check_modules) - # STUB - endfunction() -endif() - # Catch add_library(catch-single-include INTERFACE) target_include_directories(catch-single-include INTERFACE catch/single_include) -# libfmt -pkg_check_modules(FMT IMPORTED_TARGET GLOBAL fmt>=6.2.0) -if (FMT_FOUND) - add_library(fmt::fmt ALIAS PkgConfig::FMT) -else() - message(STATUS "fmt 6.2.0 or newer not found, falling back to externals") - add_subdirectory(fmt) - add_library(fmt::fmt ALIAS fmt) -endif() - # Dynarmic if (ARCHITECTURE_x86_64) set(DYNARMIC_TESTS OFF) @@ -43,17 +26,6 @@ add_subdirectory(glad) # inih add_subdirectory(inih) -# lz4 -pkg_check_modules(LIBLZ4 IMPORTED_TARGET GLOBAL liblz4>=1.8.0) -if (LIBLZ4_FOUND) - add_library(lz4_static ALIAS PkgConfig::LIBLZ4) -else() - message(STATUS "liblz4 1.8.0 or newer not found, falling back to externals") - set(LZ4_BUNDLED_MODE ON) - add_subdirectory(lz4/contrib/cmake_unofficial EXCLUDE_FROM_ALL) - target_include_directories(lz4_static INTERFACE ./lz4/lib) -endif() - # mbedtls add_subdirectory(mbedtls EXCLUDE_FROM_ALL) target_include_directories(mbedtls PUBLIC ./mbedtls/include) @@ -66,29 +38,9 @@ target_include_directories(microprofile INTERFACE ./microprofile) add_library(unicorn-headers INTERFACE) target_include_directories(unicorn-headers INTERFACE ./unicorn/include) -# Zstandard -pkg_check_modules(LIBZSTD IMPORTED_TARGET GLOBAL libzstd>=1.3.8) -if (LIBZSTD_FOUND) - add_library(libzstd_static ALIAS PkgConfig::LIBZSTD) -else() - message(STATUS "libzstd 1.3.8 or newer not found, falling back to externals") - add_subdirectory(zstd/build/cmake EXCLUDE_FROM_ALL) - target_include_directories(libzstd_static INTERFACE ./zstd/lib) -endif() - # SoundTouch add_subdirectory(soundtouch) -# Opus -pkg_check_modules(OPUS IMPORTED_TARGET GLOBAL opus>=1.3.1) -if (OPUS_FOUND) - add_library(opus ALIAS PkgConfig::OPUS) -else() - message(STATUS "opus 1.3.1 or newer not found, falling back to externals") - add_subdirectory(opus) - target_include_directories(opus INTERFACE ./opus/include) -endif() - # Cubeb if(ENABLE_CUBEB) set(BUILD_TESTS OFF CACHE BOOL "") @@ -106,37 +58,14 @@ if (ENABLE_VULKAN) add_subdirectory(sirit) endif() -# zlib -find_package(ZLIB 1.2.11) -if (NOT ZLIB_FOUND) - message(STATUS "zlib 1.2.11 or newer not found, falling back to externals") - add_subdirectory(zlib EXCLUDE_FROM_ALL) - set(ZLIB_LIBRARIES z) -endif() - # libzip -pkg_check_modules(LIBZIP IMPORTED_TARGET GLOBAL libzip>=1.5.3) -if (LIBZIP_FOUND) - add_library(zip ALIAS PkgConfig::LIBZIP) -else() - message(STATUS "libzip 1.5.3 or newer not found, falling back to externals") +find_package(Libzip 1.5) +if (NOT LIBZIP_FOUND) + message(STATUS "libzip 1.5 or newer not found, falling back to externals") add_subdirectory(libzip EXCLUDE_FROM_ALL) endif() if (ENABLE_WEB_SERVICE) - # LibreSSL - find_package(OpenSSL COMPONENTS Crypto SSL) - if (NOT OpenSSL_FOUND) - message(STATUS "OpenSSL not found, falling back to externals") - set(LIBRESSL_SKIP_INSTALL ON CACHE BOOL "") - add_subdirectory(libressl EXCLUDE_FROM_ALL) - target_include_directories(ssl INTERFACE ./libressl/include) - target_compile_definitions(ssl PRIVATE -DHAVE_INET_NTOP) - get_directory_property(OPENSSL_LIBRARIES - DIRECTORY libressl - DEFINITION OPENSSL_LIBS) - endif() - # lurlparser add_subdirectory(lurlparser EXCLUDE_FROM_ALL) @@ -144,9 +73,5 @@ if (ENABLE_WEB_SERVICE) add_library(httplib INTERFACE) target_include_directories(httplib INTERFACE ./httplib) target_compile_definitions(httplib INTERFACE -DCPPHTTPLIB_OPENSSL_SUPPORT) - target_link_libraries(httplib INTERFACE ${OPENSSL_LIBRARIES}) - - # JSON - add_library(json-headers INTERFACE) - target_include_directories(json-headers INTERFACE ./json) + target_link_libraries(httplib INTERFACE OpenSSL::SSL OpenSSL::Crypto) endif() -- cgit v1.2.3