aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2025-08-04 21:57:01 +0200
committercrueter <crueter@eden-emu.dev>2025-08-04 21:57:01 +0200
commit9634342100dcb1cfe26711a3fd6580d98bd8703d (patch)
treee22a29b95a262cdecab0b06fde58862db1eec892 /src
parent41f0fa97ca899ed8ec72ae9860b80f910858ac15 (diff)
[cmake] fix regressions intr. CPM and packaging (#201)
- don't install dynarmic, mcl, unordered_dense files - fix bundled qt w/ quazip - don't install libyuzu-room.a - don't link to VUH Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/201 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
Diffstat (limited to 'src')
-rw-r--r--src/dedicated_room/CMakeLists.txt4
-rw-r--r--src/dynarmic/CMakeLists.txt49
-rw-r--r--src/dynarmic/externals/CMakeLists.txt4
-rw-r--r--src/video_core/CMakeLists.txt6
-rw-r--r--src/yuzu/CMakeLists.txt1
-rw-r--r--src/yuzu/externals/CMakeLists.txt24
6 files changed, 58 insertions, 30 deletions
diff --git a/src/dedicated_room/CMakeLists.txt b/src/dedicated_room/CMakeLists.txt
index e2922c4a19..9391a71b6c 100644
--- a/src/dedicated_room/CMakeLists.txt
+++ b/src/dedicated_room/CMakeLists.txt
@@ -23,10 +23,6 @@ if (MSVC)
endif()
target_link_libraries(yuzu-room PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
-if(UNIX AND NOT APPLE)
- install(TARGETS yuzu-room)
-endif()
-
if (YUZU_USE_PRECOMPILED_HEADERS)
target_precompile_headers(yuzu-room PRIVATE precompiled_headers.h)
endif()
diff --git a/src/dynarmic/CMakeLists.txt b/src/dynarmic/CMakeLists.txt
index a5d8628ae0..77ae7849f4 100644
--- a/src/dynarmic/CMakeLists.txt
+++ b/src/dynarmic/CMakeLists.txt
@@ -20,6 +20,7 @@ option(DYNARMIC_IGNORE_ASSERTS "Ignore asserts" OFF)
option(DYNARMIC_TESTS_USE_UNICORN "Enable fuzzing tests against unicorn" OFF)
option(DYNARMIC_USE_LLVM "Support disassembly of jitted x86_64 code using LLVM" OFF)
option(DYNARMIC_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
+option(DYNARMIC_INSTALL "Install dynarmic headers and CMake files" OFF)
option(DYNARMIC_USE_BUNDLED_EXTERNALS "Use all bundled externals (useful when e.g. cross-compiling)" OFF)
option(DYNARMIC_WARNINGS_AS_ERRORS "Warnings as errors" ${MASTER_PROJECT})
if (NOT DEFINED DYNARMIC_FRONTENDS)
@@ -184,26 +185,28 @@ endif()
#
# Install
#
-include(GNUInstallDirs)
-include(CMakePackageConfigHelpers)
-
-install(TARGETS dynarmic EXPORT dynarmicTargets)
-install(EXPORT dynarmicTargets
- NAMESPACE dynarmic::
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic"
-)
-
-configure_package_config_file(CMakeModules/dynarmicConfig.cmake.in
- dynarmicConfig.cmake
- INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic"
-)
-write_basic_package_version_file(dynarmicConfigVersion.cmake
- COMPATIBILITY SameMajorVersion
-)
-install(FILES
- "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfig.cmake"
- "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfigVersion.cmake"
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic"
-)
-
-install(DIRECTORY src/dynarmic TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
+if (DYNARMIC_INSTALL)
+ include(GNUInstallDirs)
+ include(CMakePackageConfigHelpers)
+
+ install(TARGETS dynarmic EXPORT dynarmicTargets)
+ install(EXPORT dynarmicTargets
+ NAMESPACE dynarmic::
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic"
+ )
+
+ configure_package_config_file(CMakeModules/dynarmicConfig.cmake.in
+ dynarmicConfig.cmake
+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic"
+ )
+ write_basic_package_version_file(dynarmicConfigVersion.cmake
+ COMPATIBILITY SameMajorVersion
+ )
+ install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfigVersion.cmake"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic"
+ )
+
+ install(DIRECTORY src/dynarmic TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
+endif()
diff --git a/src/dynarmic/externals/CMakeLists.txt b/src/dynarmic/externals/CMakeLists.txt
index e7dc7efc72..7925744153 100644
--- a/src/dynarmic/externals/CMakeLists.txt
+++ b/src/dynarmic/externals/CMakeLists.txt
@@ -55,7 +55,7 @@ CPMAddPackage(
URL "https://github.com/azahar-emu/mcl/archive/7b08d83418.zip"
URL_HASH SHA512=f943bac39c1879986decad7a442ff4288eaeca4a2907684c7914e115a55ecc43c2782ded85c0835763fe04e40d5c82220ce864423e489e648e408a84f54dc4f3
OPTIONS
- "MCL_INSTALL ON"
+ "MCL_INSTALL OFF"
CUSTOM_CACHE_KEY "7b08"
)
@@ -77,7 +77,7 @@ CPMAddPackage(
URL_HASH SHA512=71eff7bd9ba4b9226967bacd56a8ff000946f8813167cb5664bb01e96fb79e4e220684d824fe9c59c4d1cc98c606f13aff05b7940a1ed8ab3c95d6974ee34fa0
FIND_PACKAGE_ARGUMENTS "CONFIG"
OPTIONS
- "UNORDERED_DENSE_INSTALL ON"
+ "UNORDERED_DENSE_INSTALL OFF"
CUSTOM_CACHE_KEY "e59d"
)
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt
index 7e40e79d8e..211727be2e 100644
--- a/src/video_core/CMakeLists.txt
+++ b/src/video_core/CMakeLists.txt
@@ -333,7 +333,11 @@ if (VulkanMemoryAllocator_ADDED)
target_include_directories(video_core PUBLIC ${VulkanMemoryAllocator_SOURCE_DIR}/include)
endif()
-target_link_libraries(video_core PRIVATE sirit Vulkan::Headers VulkanUtilityHeaders)
+if (VulkanUtilityLibraries_ADDED)
+ target_include_directories(video_core PUBLIC ${VulkanUtilityLibraries_SOURCE_DIR}/include)
+endif()
+
+target_link_libraries(video_core PRIVATE sirit Vulkan::Headers)
if (ENABLE_NSIGHT_AFTERMATH)
if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK})
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index edf928eeb1..34f2ba455a 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -495,6 +495,7 @@ if (YUZU_ROOM)
endif()
# Extra deps
+add_subdirectory(externals)
target_link_libraries(yuzu PRIVATE QuaZip::QuaZip)
create_target_directory_groups(yuzu)
diff --git a/src/yuzu/externals/CMakeLists.txt b/src/yuzu/externals/CMakeLists.txt
new file mode 100644
index 0000000000..d159fa9229
--- /dev/null
+++ b/src/yuzu/externals/CMakeLists.txt
@@ -0,0 +1,24 @@
+# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+# cpm
+include(CPM)
+
+# Disable tests/tools in all externals supporting the standard option name
+set(BUILD_TESTING OFF)
+
+# Build only static externals
+set(BUILD_SHARED_LIBS OFF)
+
+# Skip install rules for all externals
+set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL ON)
+
+# QuaZip
+set(CPM_USE_LOCAL_PACKAGES ON)
+
+CPMAddPackage(
+ NAME QuaZip-Qt6
+ VERSION 1.3
+ URL "https://github.com/crueter/quazip-qt6/archive/f838774d63.zip"
+ CUSTOM_CACHE_KEY "f838"
+)