diff options
Diffstat (limited to 'externals/CMakeLists.txt')
| -rw-r--r-- | externals/CMakeLists.txt | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index d25626ccc..8bb321e35 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt | |||
| @@ -6,15 +6,16 @@ list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/externals/find-modules") | |||
| 6 | include(DownloadExternals) | 6 | include(DownloadExternals) |
| 7 | 7 | ||
| 8 | # xbyak | 8 | # xbyak |
| 9 | if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64) | 9 | if ((ARCHITECTURE_x86 OR ARCHITECTURE_x86_64) AND NOT TARGET xbyak::xbyak) |
| 10 | add_subdirectory(xbyak EXCLUDE_FROM_ALL) | 10 | add_subdirectory(xbyak EXCLUDE_FROM_ALL) |
| 11 | endif() | 11 | endif() |
| 12 | 12 | ||
| 13 | # Dynarmic | 13 | # Dynarmic |
| 14 | if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) | 14 | if ((ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) AND NOT TARGET dynarmic::dynarmic) |
| 15 | set(DYNARMIC_NO_BUNDLED_FMT ON) | 15 | set(DYNARMIC_NO_BUNDLED_FMT ON) |
| 16 | set(DYNARMIC_IGNORE_ASSERTS ON CACHE BOOL "" FORCE) | 16 | set(DYNARMIC_IGNORE_ASSERTS ON CACHE BOOL "" FORCE) |
| 17 | add_subdirectory(dynarmic) | 17 | add_subdirectory(dynarmic EXCLUDE_FROM_ALL) |
| 18 | add_library(dynarmic::dynarmic ALIAS dynarmic) | ||
| 18 | endif() | 19 | endif() |
| 19 | 20 | ||
| 20 | # getopt | 21 | # getopt |
| @@ -26,7 +27,9 @@ endif() | |||
| 26 | add_subdirectory(glad) | 27 | add_subdirectory(glad) |
| 27 | 28 | ||
| 28 | # inih | 29 | # inih |
| 29 | add_subdirectory(inih) | 30 | if (NOT TARGET inih::INIReader) |
| 31 | add_subdirectory(inih) | ||
| 32 | endif() | ||
| 30 | 33 | ||
| 31 | # mbedtls | 34 | # mbedtls |
| 32 | add_subdirectory(mbedtls EXCLUDE_FROM_ALL) | 35 | add_subdirectory(mbedtls EXCLUDE_FROM_ALL) |
| @@ -73,25 +76,30 @@ if (YUZU_USE_EXTERNAL_SDL2) | |||
| 73 | endif() | 76 | endif() |
| 74 | 77 | ||
| 75 | # ENet | 78 | # ENet |
| 76 | add_subdirectory(enet) | 79 | if (NOT TARGET enet::enet) |
| 77 | target_include_directories(enet INTERFACE ./enet/include) | 80 | add_subdirectory(enet EXCLUDE_FROM_ALL) |
| 81 | target_include_directories(enet INTERFACE ./enet/include) | ||
| 82 | add_library(enet::enet ALIAS enet) | ||
| 83 | endif() | ||
| 78 | 84 | ||
| 79 | # Cubeb | 85 | # Cubeb |
| 80 | if(ENABLE_CUBEB) | 86 | if (ENABLE_CUBEB AND NOT TARGET cubeb::cubeb) |
| 81 | set(BUILD_TESTS OFF CACHE BOOL "") | 87 | set(BUILD_TESTS OFF CACHE BOOL "") |
| 82 | add_subdirectory(cubeb EXCLUDE_FROM_ALL) | 88 | add_subdirectory(cubeb EXCLUDE_FROM_ALL) |
| 89 | add_library(cubeb::cubeb ALIAS cubeb) | ||
| 83 | endif() | 90 | endif() |
| 84 | 91 | ||
| 85 | # DiscordRPC | 92 | # DiscordRPC |
| 86 | if (USE_DISCORD_PRESENCE) | 93 | if (USE_DISCORD_PRESENCE AND NOT TARGET DiscordRPC::discord-rpc) |
| 87 | add_subdirectory(discord-rpc EXCLUDE_FROM_ALL) | 94 | add_subdirectory(discord-rpc EXCLUDE_FROM_ALL) |
| 88 | target_include_directories(discord-rpc INTERFACE ./discord-rpc/include) | 95 | target_include_directories(discord-rpc INTERFACE ./discord-rpc/include) |
| 96 | add_library(DiscordRPC::discord-rpc ALIAS discord-rpc) | ||
| 89 | endif() | 97 | endif() |
| 90 | 98 | ||
| 91 | # Sirit | 99 | # Sirit |
| 92 | add_subdirectory(sirit) | 100 | add_subdirectory(sirit EXCLUDE_FROM_ALL) |
| 93 | 101 | ||
| 94 | if (ENABLE_WEB_SERVICE) | 102 | if (ENABLE_WEB_SERVICE AND NOT TARGET httplib::httplib) |
| 95 | if (NOT WIN32) | 103 | if (NOT WIN32) |
| 96 | find_package(OpenSSL 1.1) | 104 | find_package(OpenSSL 1.1) |
| 97 | if (OPENSSL_FOUND) | 105 | if (OPENSSL_FOUND) |
| @@ -119,18 +127,20 @@ if (ENABLE_WEB_SERVICE) | |||
| 119 | if (WIN32) | 127 | if (WIN32) |
| 120 | target_link_libraries(httplib INTERFACE crypt32 cryptui ws2_32) | 128 | target_link_libraries(httplib INTERFACE crypt32 cryptui ws2_32) |
| 121 | endif() | 129 | endif() |
| 122 | 130 | add_library(httplib::httplib ALIAS httplib) | |
| 123 | # cpp-jwt | 131 | endif() |
| 132 | |||
| 133 | # cpp-jwt | ||
| 134 | if (ENABLE_WEB_SERVICE AND NOT TARGET cpp-jwt::cpp-jwt) | ||
| 124 | add_library(cpp-jwt INTERFACE) | 135 | add_library(cpp-jwt INTERFACE) |
| 125 | target_include_directories(cpp-jwt INTERFACE ./cpp-jwt/include) | 136 | target_include_directories(cpp-jwt INTERFACE ./cpp-jwt/include) |
| 126 | target_compile_definitions(cpp-jwt INTERFACE CPP_JWT_USE_VENDORED_NLOHMANN_JSON) | 137 | target_compile_definitions(cpp-jwt INTERFACE CPP_JWT_USE_VENDORED_NLOHMANN_JSON) |
| 138 | add_library(cpp-jwt::cpp-jwt ALIAS cpp-jwt) | ||
| 127 | endif() | 139 | endif() |
| 128 | 140 | ||
| 129 | # Opus | 141 | # Opus |
| 130 | if (YUZU_USE_BUNDLED_OPUS) | 142 | if (NOT TARGET Opus::opus) |
| 131 | add_subdirectory(opus EXCLUDE_FROM_ALL) | 143 | add_subdirectory(opus EXCLUDE_FROM_ALL) |
| 132 | else() | ||
| 133 | find_package(Opus 1.3 REQUIRED) | ||
| 134 | endif() | 144 | endif() |
| 135 | 145 | ||
| 136 | # FFMpeg | 146 | # FFMpeg |
| @@ -141,3 +151,8 @@ if (YUZU_USE_BUNDLED_FFMPEG) | |||
| 141 | set(FFmpeg_LIBRARIES "${FFmpeg_LIBRARIES}" PARENT_SCOPE) | 151 | set(FFmpeg_LIBRARIES "${FFmpeg_LIBRARIES}" PARENT_SCOPE) |
| 142 | set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE) | 152 | set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE) |
| 143 | endif() | 153 | endif() |
| 154 | |||
| 155 | # Vulkan-Headers | ||
| 156 | if (NOT TARGET Vulkan::Headers) | ||
| 157 | add_subdirectory(Vulkan-Headers EXCLUDE_FROM_ALL) | ||
| 158 | endif() | ||