mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-11 09:18:30 +12:00
cmake: use more system libraries
This commit is contained in:
parent
d8da8a54a6
commit
8a18a7df81
5 changed files with 87 additions and 5 deletions
|
@ -99,7 +99,10 @@ if (UNIX AND NOT APPLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ENABLE_VULKAN)
|
if (ENABLE_VULKAN)
|
||||||
include_directories("dependencies/Vulkan-Headers/include")
|
find_package(VulkanHeaders 1.3.221)
|
||||||
|
if (NOT VulkanHeaders_FOUND)
|
||||||
|
add_subdirectory("dependencies/Vulkan-Headers" EXCLUDE_FROM_ALL)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ENABLE_OPENGL)
|
if (ENABLE_OPENGL)
|
||||||
|
@ -107,9 +110,13 @@ if (ENABLE_OPENGL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ENABLE_DISCORD_RPC)
|
if (ENABLE_DISCORD_RPC)
|
||||||
add_definitions(-DENABLE_DISCORD_RPC)
|
find_package(DiscordRPC)
|
||||||
add_subdirectory(dependencies/discord-rpc EXCLUDE_FROM_ALL)
|
if (NOT DiscordRPC_FOUND)
|
||||||
target_include_directories(discord-rpc INTERFACE ./dependencies/discord-rpc/include)
|
add_subdirectory("dependencies/discord-rpc" EXCLUDE_FROM_ALL)
|
||||||
|
target_include_directories(discord-rpc INTERFACE "./dependencies/discord-rpc/include")
|
||||||
|
add_library(DiscordRPC::discord-rpc ALIAS discord-rpc)
|
||||||
|
endif()
|
||||||
|
add_compile_definitions("ENABLE_DISCORD_RPC")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ENABLE_WXWIDGETS)
|
if (ENABLE_WXWIDGETS)
|
||||||
|
|
26
cmake/FindDiscordRPC.cmake
Normal file
26
cmake/FindDiscordRPC.cmake
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# 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
|
||||||
|
)
|
46
cmake/FindVulkanHeaders.cmake
Normal file
46
cmake/FindVulkanHeaders.cmake
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
# 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(VULKANHEADERS QUIET vulkanheaders vulkan-headers)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_path(VulkanHeaders_INCLUDE_DIR
|
||||||
|
NAMES vulkan.h
|
||||||
|
HINTS ${VULKANHEADERS_INCLUDE_DIRS}
|
||||||
|
PATH_SUFFIXES vulkan
|
||||||
|
)
|
||||||
|
|
||||||
|
if (VulkanHeaders_INCLUDE_DIR)
|
||||||
|
file(READ "${VulkanHeaders_INCLUDE_DIR}/vulkan_core.h" _vulkan_core_file)
|
||||||
|
string(REGEX MATCH "#define[ \t]+VK_HEADER_VERSION_COMPLETE[ \t]+VK_MAKE_API_VERSION\\(([0-9]+),[ \t]*([0-9]+),[ \t]*([0-9]+),[ \t]*VK_HEADER_VERSION\\)" _dummy_var "${_vulkan_core_file}")
|
||||||
|
if (CMAKE_MATCH_COUNT EQUAL 3)
|
||||||
|
set(VulkanHeaders_VERSION_TWEAK ${CMAKE_MATCH_1})
|
||||||
|
set(VulkanHeaders_VERSION_MAJOR ${CMAKE_MATCH_2})
|
||||||
|
set(VulkanHeaders_VERSION_MINOR ${CMAKE_MATCH_3})
|
||||||
|
string(REGEX MATCH "#define[ \t]+VK_HEADER_VERSION[ \t]+([0-9]+)" _dummy_var "${_vulkan_core_file}")
|
||||||
|
if (CMAKE_MATCH_COUNT EQUAL 1)
|
||||||
|
set(VulkanHeaders_VERSION_PATCH ${CMAKE_MATCH_1})
|
||||||
|
set(VulkanHeaders_VERSION "${VulkanHeaders_VERSION_MAJOR}.${VulkanHeaders_VERSION_MINOR}.${VulkanHeaders_VERSION_PATCH}.${VulkanHeaders_VERSION_TWEAK}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
unset(_vulkan_core_file)
|
||||||
|
unset(_dummy_var)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(VulkanHeaders
|
||||||
|
REQUIRED_VARS VulkanHeaders_INCLUDE_DIR
|
||||||
|
VERSION_VAR VulkanHeaders_VERSION
|
||||||
|
)
|
||||||
|
|
||||||
|
if (VulkanHeaders_FOUND AND NOT TARGET Vulkan::Headers)
|
||||||
|
add_library(Vulkan::Headers INTERFACE IMPORTED)
|
||||||
|
set_target_properties(Vulkan::Headers PROPERTIES
|
||||||
|
INTERFACE_COMPILE_OPTIONS "${VULKANHEADERS_CFLAGS_OTHER}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${VulkanHeaders_INCLUDE_DIR}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
mark_as_advanced(VulkanHeaders_INCLUDE_DIR)
|
|
@ -20,6 +20,9 @@ target_precompile_headers(CemuCafe PRIVATE ../Common/precompiled.h)
|
||||||
|
|
||||||
target_include_directories(CemuCafe PUBLIC "../")
|
target_include_directories(CemuCafe PUBLIC "../")
|
||||||
|
|
||||||
|
# PUBLIC because vulkan/vulkan.h is included in CocoaSurface.h, VulkanAPI.h and RendererShaderVk.h
|
||||||
|
target_link_libraries(CemuCafe PUBLIC Vulkan::Headers)
|
||||||
|
|
||||||
target_link_libraries(CemuCafe PRIVATE
|
target_link_libraries(CemuCafe PRIVATE
|
||||||
CemuAsm
|
CemuAsm
|
||||||
CemuAudio
|
CemuAudio
|
||||||
|
|
|
@ -28,5 +28,5 @@ target_link_libraries(CemuComponents PRIVATE
|
||||||
target_link_libraries(CemuComponents PUBLIC fmt::fmt)
|
target_link_libraries(CemuComponents PUBLIC fmt::fmt)
|
||||||
|
|
||||||
if(ENABLE_DISCORD_RPC)
|
if(ENABLE_DISCORD_RPC)
|
||||||
target_link_libraries(CemuComponents PRIVATE discord-rpc)
|
target_link_libraries(CemuComponents PRIVATE DiscordRPC::discord-rpc)
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue