summaryrefslogtreecommitdiff
path: root/externals/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'externals/CMakeLists.txt')
-rw-r--r--externals/CMakeLists.txt45
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")
6include(DownloadExternals) 6include(DownloadExternals)
7 7
8# xbyak 8# xbyak
9if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64) 9if ((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)
11endif() 11endif()
12 12
13# Dynarmic 13# Dynarmic
14if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) 14if ((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)
18endif() 19endif()
19 20
20# getopt 21# getopt
@@ -26,7 +27,9 @@ endif()
26add_subdirectory(glad) 27add_subdirectory(glad)
27 28
28# inih 29# inih
29add_subdirectory(inih) 30if (NOT TARGET inih::INIReader)
31 add_subdirectory(inih)
32endif()
30 33
31# mbedtls 34# mbedtls
32add_subdirectory(mbedtls EXCLUDE_FROM_ALL) 35add_subdirectory(mbedtls EXCLUDE_FROM_ALL)
@@ -73,25 +76,30 @@ if (YUZU_USE_EXTERNAL_SDL2)
73endif() 76endif()
74 77
75# ENet 78# ENet
76add_subdirectory(enet) 79if (NOT TARGET enet::enet)
77target_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)
83endif()
78 84
79# Cubeb 85# Cubeb
80if(ENABLE_CUBEB) 86if (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)
83endif() 90endif()
84 91
85# DiscordRPC 92# DiscordRPC
86if (USE_DISCORD_PRESENCE) 93if (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)
89endif() 97endif()
90 98
91# Sirit 99# Sirit
92add_subdirectory(sirit) 100add_subdirectory(sirit EXCLUDE_FROM_ALL)
93 101
94if (ENABLE_WEB_SERVICE) 102if (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 131endif()
132
133# cpp-jwt
134if (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)
127endif() 139endif()
128 140
129# Opus 141# Opus
130if (YUZU_USE_BUNDLED_OPUS) 142if (NOT TARGET Opus::opus)
131 add_subdirectory(opus EXCLUDE_FROM_ALL) 143 add_subdirectory(opus EXCLUDE_FROM_ALL)
132else()
133 find_package(Opus 1.3 REQUIRED)
134endif() 144endif()
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)
143endif() 153endif()
154
155# Vulkan-Headers
156if (NOT TARGET Vulkan::Headers)
157 add_subdirectory(Vulkan-Headers EXCLUDE_FROM_ALL)
158endif()