Merge pull request #6833 from abouvier/unbundle
cmake: prefer system libraries
This commit is contained in:
		
							
								
								
									
										45
									
								
								externals/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								externals/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							@@ -6,15 +6,16 @@ list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/externals/find-modules")
 | 
			
		||||
include(DownloadExternals)
 | 
			
		||||
 | 
			
		||||
# xbyak
 | 
			
		||||
if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
 | 
			
		||||
if ((ARCHITECTURE_x86 OR ARCHITECTURE_x86_64) AND NOT TARGET xbyak::xbyak)
 | 
			
		||||
    add_subdirectory(xbyak EXCLUDE_FROM_ALL)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Dynarmic
 | 
			
		||||
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64)
 | 
			
		||||
if ((ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) AND NOT TARGET dynarmic::dynarmic)
 | 
			
		||||
    set(DYNARMIC_NO_BUNDLED_FMT ON)
 | 
			
		||||
    set(DYNARMIC_IGNORE_ASSERTS ON CACHE BOOL "" FORCE)
 | 
			
		||||
    add_subdirectory(dynarmic)
 | 
			
		||||
    add_subdirectory(dynarmic EXCLUDE_FROM_ALL)
 | 
			
		||||
    add_library(dynarmic::dynarmic ALIAS dynarmic)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# getopt
 | 
			
		||||
@@ -26,7 +27,9 @@ endif()
 | 
			
		||||
add_subdirectory(glad)
 | 
			
		||||
 | 
			
		||||
# inih
 | 
			
		||||
add_subdirectory(inih)
 | 
			
		||||
if (NOT TARGET inih::INIReader)
 | 
			
		||||
    add_subdirectory(inih)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# mbedtls
 | 
			
		||||
add_subdirectory(mbedtls EXCLUDE_FROM_ALL)
 | 
			
		||||
@@ -72,25 +75,30 @@ if (YUZU_USE_EXTERNAL_SDL2)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# ENet
 | 
			
		||||
add_subdirectory(enet)
 | 
			
		||||
target_include_directories(enet INTERFACE ./enet/include)
 | 
			
		||||
if (NOT TARGET enet::enet)
 | 
			
		||||
    add_subdirectory(enet EXCLUDE_FROM_ALL)
 | 
			
		||||
    target_include_directories(enet INTERFACE ./enet/include)
 | 
			
		||||
    add_library(enet::enet ALIAS enet)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Cubeb
 | 
			
		||||
if(ENABLE_CUBEB)
 | 
			
		||||
if (ENABLE_CUBEB AND NOT TARGET cubeb::cubeb)
 | 
			
		||||
    set(BUILD_TESTS OFF CACHE BOOL "")
 | 
			
		||||
    add_subdirectory(cubeb EXCLUDE_FROM_ALL)
 | 
			
		||||
    add_library(cubeb::cubeb ALIAS cubeb)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# DiscordRPC
 | 
			
		||||
if (USE_DISCORD_PRESENCE)
 | 
			
		||||
if (USE_DISCORD_PRESENCE AND NOT TARGET DiscordRPC::discord-rpc)
 | 
			
		||||
    add_subdirectory(discord-rpc EXCLUDE_FROM_ALL)
 | 
			
		||||
    target_include_directories(discord-rpc INTERFACE ./discord-rpc/include)
 | 
			
		||||
    add_library(DiscordRPC::discord-rpc ALIAS discord-rpc)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Sirit
 | 
			
		||||
add_subdirectory(sirit)
 | 
			
		||||
add_subdirectory(sirit EXCLUDE_FROM_ALL)
 | 
			
		||||
 | 
			
		||||
if (ENABLE_WEB_SERVICE)
 | 
			
		||||
if (ENABLE_WEB_SERVICE AND NOT TARGET httplib::httplib)
 | 
			
		||||
    if (NOT WIN32)
 | 
			
		||||
        find_package(OpenSSL 1.1)
 | 
			
		||||
        if (OPENSSL_FOUND)
 | 
			
		||||
@@ -118,18 +126,20 @@ if (ENABLE_WEB_SERVICE)
 | 
			
		||||
    if (WIN32)
 | 
			
		||||
        target_link_libraries(httplib INTERFACE crypt32 cryptui ws2_32)
 | 
			
		||||
    endif()
 | 
			
		||||
	
 | 
			
		||||
    # cpp-jwt
 | 
			
		||||
    add_library(httplib::httplib ALIAS httplib)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# cpp-jwt
 | 
			
		||||
if (ENABLE_WEB_SERVICE AND NOT TARGET cpp-jwt::cpp-jwt)
 | 
			
		||||
    add_library(cpp-jwt INTERFACE)
 | 
			
		||||
    target_include_directories(cpp-jwt INTERFACE ./cpp-jwt/include)
 | 
			
		||||
    target_compile_definitions(cpp-jwt INTERFACE CPP_JWT_USE_VENDORED_NLOHMANN_JSON)
 | 
			
		||||
    add_library(cpp-jwt::cpp-jwt ALIAS cpp-jwt)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Opus
 | 
			
		||||
if (YUZU_USE_BUNDLED_OPUS)
 | 
			
		||||
if (NOT TARGET Opus::opus)
 | 
			
		||||
    add_subdirectory(opus EXCLUDE_FROM_ALL)
 | 
			
		||||
else()
 | 
			
		||||
    find_package(Opus 1.3 REQUIRED)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# FFMpeg
 | 
			
		||||
@@ -140,3 +150,8 @@ if (YUZU_USE_BUNDLED_FFMPEG)
 | 
			
		||||
    set(FFmpeg_LIBRARIES "${FFmpeg_LIBRARIES}" PARENT_SCOPE)
 | 
			
		||||
    set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Vulkan-Headers
 | 
			
		||||
if (NOT TARGET Vulkan::Headers)
 | 
			
		||||
    add_subdirectory(Vulkan-Headers EXCLUDE_FROM_ALL)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								externals/find-modules/FindDiscordRPC.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								externals/find-modules/FindDiscordRPC.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
 | 
			
		||||
#
 | 
			
		||||
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
 | 
			
		||||
find_path(DiscordRPC_INCLUDE_DIR discord_rpc.h)
 | 
			
		||||
 | 
			
		||||
find_library(DiscordRPC_LIBRARY discord-rpc)
 | 
			
		||||
 | 
			
		||||
include(FindPackageHandleStandardArgs)
 | 
			
		||||
find_package_handle_standard_args(DiscordRPC
 | 
			
		||||
    REQUIRED_VARS
 | 
			
		||||
        DiscordRPC_LIBRARY
 | 
			
		||||
        DiscordRPC_INCLUDE_DIR
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
if (DiscordRPC_FOUND AND NOT TARGET DiscordRPC::discord-rpc)
 | 
			
		||||
    add_library(DiscordRPC::discord-rpc UNKNOWN IMPORTED)
 | 
			
		||||
    set_target_properties(DiscordRPC::discord-rpc PROPERTIES
 | 
			
		||||
        IMPORTED_LOCATION "${DiscordRPC_LIBRARY}"
 | 
			
		||||
        INTERFACE_INCLUDE_DIRECTORIES "${DiscordRPC_INCLUDE_DIR}"
 | 
			
		||||
    )
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
mark_as_advanced(
 | 
			
		||||
    DiscordRPC_INCLUDE_DIR
 | 
			
		||||
    DiscordRPC_LIBRARY
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										17
									
								
								externals/find-modules/Findenet.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								externals/find-modules/Findenet.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
 | 
			
		||||
#
 | 
			
		||||
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
 | 
			
		||||
find_package(PkgConfig QUIET)
 | 
			
		||||
if (PKG_CONFIG_FOUND)
 | 
			
		||||
    pkg_search_module(ENET QUIET IMPORTED_TARGET GLOBAL libenet)
 | 
			
		||||
    if (ENET_FOUND)
 | 
			
		||||
        add_library(enet::enet ALIAS PkgConfig::ENET)
 | 
			
		||||
    endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
include(FindPackageHandleStandardArgs)
 | 
			
		||||
find_package_handle_standard_args(enet
 | 
			
		||||
    REQUIRED_VARS ENET_LINK_LIBRARIES
 | 
			
		||||
    VERSION_VAR ENET_VERSION
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										22
									
								
								externals/find-modules/Findhttplib.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								externals/find-modules/Findhttplib.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
# SPDX-FileCopyrightText: 2022 Andrea Pappacoda <andrea@pappacoda.it>
 | 
			
		||||
#
 | 
			
		||||
# SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
include(FindPackageHandleStandardArgs)
 | 
			
		||||
 | 
			
		||||
find_package(httplib QUIET CONFIG)
 | 
			
		||||
if (httplib_FOUND)
 | 
			
		||||
    find_package_handle_standard_args(httplib CONFIG_MODE)
 | 
			
		||||
else()
 | 
			
		||||
    find_package(PkgConfig QUIET)
 | 
			
		||||
    if (PKG_CONFIG_FOUND)
 | 
			
		||||
        pkg_search_module(HTTPLIB QUIET IMPORTED_TARGET GLOBAL cpp-httplib)
 | 
			
		||||
        if (HTTPLIB_FOUND)
 | 
			
		||||
            add_library(httplib::httplib ALIAS PkgConfig::HTTPLIB)
 | 
			
		||||
        endif()
 | 
			
		||||
    endif()
 | 
			
		||||
    find_package_handle_standard_args(httplib
 | 
			
		||||
        REQUIRED_VARS HTTPLIB_INCLUDEDIR
 | 
			
		||||
        VERSION_VAR HTTPLIB_VERSION
 | 
			
		||||
    )
 | 
			
		||||
endif()
 | 
			
		||||
							
								
								
									
										17
									
								
								externals/find-modules/Findinih.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								externals/find-modules/Findinih.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
 | 
			
		||||
#
 | 
			
		||||
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
 | 
			
		||||
find_package(PkgConfig QUIET)
 | 
			
		||||
if (PKG_CONFIG_FOUND)
 | 
			
		||||
    pkg_search_module(INIREADER QUIET IMPORTED_TARGET GLOBAL INIReader)
 | 
			
		||||
    if (INIREADER_FOUND)
 | 
			
		||||
        add_library(inih::INIReader ALIAS PkgConfig::INIREADER)
 | 
			
		||||
    endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
include(FindPackageHandleStandardArgs)
 | 
			
		||||
find_package_handle_standard_args(inih
 | 
			
		||||
    REQUIRED_VARS INIREADER_LINK_LIBRARIES
 | 
			
		||||
    VERSION_VAR INIREADER_VERSION
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										41
									
								
								externals/find-modules/Findlz4.cmake
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								externals/find-modules/Findlz4.cmake
									
									
									
									
										vendored
									
									
								
							@@ -1,19 +1,30 @@
 | 
			
		||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
# SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
find_package(PkgConfig)
 | 
			
		||||
 | 
			
		||||
if (PKG_CONFIG_FOUND)
 | 
			
		||||
    pkg_search_module(liblz4 IMPORTED_TARGET GLOBAL liblz4)
 | 
			
		||||
    if (liblz4_FOUND)
 | 
			
		||||
        add_library(lz4::lz4 ALIAS PkgConfig::liblz4)
 | 
			
		||||
    endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
include(FindPackageHandleStandardArgs)
 | 
			
		||||
find_package_handle_standard_args(lz4
 | 
			
		||||
    REQUIRED_VARS
 | 
			
		||||
        liblz4_LINK_LIBRARIES
 | 
			
		||||
        liblz4_FOUND
 | 
			
		||||
    VERSION_VAR liblz4_VERSION
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
find_package(lz4 QUIET CONFIG)
 | 
			
		||||
if (lz4_FOUND)
 | 
			
		||||
    find_package_handle_standard_args(lz4 CONFIG_MODE)
 | 
			
		||||
    if (NOT TARGET lz4::lz4)
 | 
			
		||||
        if (TARGET LZ4::lz4_shared)
 | 
			
		||||
            set_target_properties(LZ4::lz4_shared PROPERTIES IMPORTED_GLOBAL TRUE)
 | 
			
		||||
            add_library(lz4::lz4 ALIAS LZ4::lz4_shared)
 | 
			
		||||
        else()
 | 
			
		||||
            set_target_properties(LZ4::lz4_static PROPERTIES IMPORTED_GLOBAL TRUE)
 | 
			
		||||
            add_library(lz4::lz4 ALIAS LZ4::lz4_static)
 | 
			
		||||
        endif()
 | 
			
		||||
    endif()
 | 
			
		||||
else()
 | 
			
		||||
    find_package(PkgConfig QUIET)
 | 
			
		||||
    if (PKG_CONFIG_FOUND)
 | 
			
		||||
        pkg_search_module(liblz4 QUIET IMPORTED_TARGET GLOBAL liblz4)
 | 
			
		||||
        if (liblz4_FOUND)
 | 
			
		||||
            add_library(lz4::lz4 ALIAS PkgConfig::liblz4)
 | 
			
		||||
        endif()
 | 
			
		||||
    endif()
 | 
			
		||||
    find_package_handle_standard_args(lz4
 | 
			
		||||
        REQUIRED_VARS liblz4_LINK_LIBRARIES
 | 
			
		||||
        VERSION_VAR liblz4_VERSION
 | 
			
		||||
    )
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										41
									
								
								externals/find-modules/Findzstd.cmake
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								externals/find-modules/Findzstd.cmake
									
									
									
									
										vendored
									
									
								
							@@ -1,19 +1,30 @@
 | 
			
		||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
# SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
find_package(PkgConfig)
 | 
			
		||||
 | 
			
		||||
if (PKG_CONFIG_FOUND)
 | 
			
		||||
    pkg_search_module(libzstd IMPORTED_TARGET GLOBAL libzstd)
 | 
			
		||||
    if (libzstd_FOUND)
 | 
			
		||||
        add_library(zstd::zstd ALIAS PkgConfig::libzstd)
 | 
			
		||||
    endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
include(FindPackageHandleStandardArgs)
 | 
			
		||||
find_package_handle_standard_args(zstd
 | 
			
		||||
    REQUIRED_VARS
 | 
			
		||||
        libzstd_LINK_LIBRARIES
 | 
			
		||||
        libzstd_FOUND
 | 
			
		||||
    VERSION_VAR libzstd_VERSION
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
find_package(zstd QUIET CONFIG)
 | 
			
		||||
if (zstd_FOUND)
 | 
			
		||||
    find_package_handle_standard_args(zstd CONFIG_MODE)
 | 
			
		||||
    if (NOT TARGET zstd::zstd)
 | 
			
		||||
        if (TARGET zstd::libzstd_shared)
 | 
			
		||||
            set_target_properties(zstd::libzstd_shared PROPERTIES IMPORTED_GLOBAL TRUE)
 | 
			
		||||
            add_library(zstd::zstd ALIAS zstd::libzstd_shared)
 | 
			
		||||
        else()
 | 
			
		||||
            set_target_properties(zstd::libzstd_static PROPERTIES IMPORTED_GLOBAL TRUE)
 | 
			
		||||
            add_library(zstd::zstd ALIAS zstd::libzstd_static)
 | 
			
		||||
        endif()
 | 
			
		||||
    endif()
 | 
			
		||||
else()
 | 
			
		||||
    find_package(PkgConfig QUIET)
 | 
			
		||||
    if (PKG_CONFIG_FOUND)
 | 
			
		||||
        pkg_search_module(libzstd QUIET IMPORTED_TARGET GLOBAL libzstd)
 | 
			
		||||
        if (libzstd_FOUND)
 | 
			
		||||
            add_library(zstd::zstd ALIAS PkgConfig::libzstd)
 | 
			
		||||
        endif()
 | 
			
		||||
    endif()
 | 
			
		||||
    find_package_handle_standard_args(zstd
 | 
			
		||||
        REQUIRED_VARS libzstd_LINK_LIBRARIES
 | 
			
		||||
        VERSION_VAR libzstd_VERSION
 | 
			
		||||
    )
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								externals/inih/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								externals/inih/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							@@ -9,4 +9,5 @@ add_library(inih
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
create_target_directory_groups(inih)
 | 
			
		||||
target_include_directories(inih INTERFACE .)
 | 
			
		||||
target_include_directories(inih INTERFACE inih/cpp)
 | 
			
		||||
add_library(inih::INIReader ALIAS inih)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user