aboutsummaryrefslogtreecommitdiff
path: root/externals/CMakeLists.txt
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2026-01-28 23:54:49 +0100
committercrueter <crueter@eden-emu.dev>2026-01-28 23:54:49 +0100
commit84839dec382d2ac6799194650f194b02db50a616 (patch)
tree68004bfa736d58e5f750036411e2bc3e2763c0f9 /externals/CMakeLists.txt
parent3b81d2e33367a888d211a36d8ffc7cdfd9640f52 (diff)
[cmake] add a `YUZU_STATIC_ROOM` option (#3411)
Lets you build ONLY the necessary targets to get a statically linked room executable. Only intended to be used on musl targets due to getaddrinfo et al. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3411 Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'externals/CMakeLists.txt')
-rw-r--r--externals/CMakeLists.txt66
1 files changed, 36 insertions, 30 deletions
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 6851016a07..271e49caaa 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2016 Citra Emulator Project
@@ -34,19 +34,6 @@ if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
endif()
endif()
-# Oaknut
-if (ARCHITECTURE_arm64 OR DYNARMIC_TESTS)
- AddJsonPackage(oaknut)
-endif()
-
-# biscuit
-if (ARCHITECTURE_riscv64)
- AddJsonPackage(biscuit)
-endif()
-
-# mcl
-AddJsonPackage(mcl)
-
# enet
AddJsonPackage(enet)
@@ -61,6 +48,41 @@ endif()
# mbedtls
AddJsonPackage(mbedtls)
+# stb
+add_library(stb stb/stb_dxt.cpp)
+target_include_directories(stb PUBLIC ./stb)
+
+if (NOT TARGET stb::headers)
+ add_library(stb::headers ALIAS stb)
+endif()
+
+# ItaniumDemangle
+if (NOT TARGET LLVM::Demangle)
+ add_library(demangle demangle/ItaniumDemangle.cpp)
+ target_include_directories(demangle PUBLIC ./demangle)
+ if (NOT MSVC)
+ target_compile_options(demangle PRIVATE -Wno-deprecated-declarations) # std::is_pod
+ endif()
+ add_library(LLVM::Demangle ALIAS demangle)
+endif()
+
+if (YUZU_STATIC_ROOM)
+ return()
+endif()
+
+# Oaknut
+if (ARCHITECTURE_arm64 OR DYNARMIC_TESTS)
+ AddJsonPackage(oaknut)
+endif()
+
+# biscuit
+if (ARCHITECTURE_riscv64)
+ AddJsonPackage(biscuit)
+endif()
+
+# mcl
+AddJsonPackage(mcl)
+
# VulkanUtilityHeaders - pulls in headers and utility libs
AddJsonPackage(vulkan-utility-headers)
@@ -243,22 +265,6 @@ endif()
# TZDB (Time Zone Database)
add_subdirectory(nx_tzdb)
-if (NOT TARGET LLVM::Demangle)
- add_library(demangle demangle/ItaniumDemangle.cpp)
- target_include_directories(demangle PUBLIC ./demangle)
- if (NOT MSVC)
- target_compile_options(demangle PRIVATE -Wno-deprecated-declarations) # std::is_pod
- endif()
- add_library(LLVM::Demangle ALIAS demangle)
-endif()
-
-add_library(stb stb/stb_dxt.cpp)
-target_include_directories(stb PUBLIC ./stb)
-
-if (NOT TARGET stb::headers)
- add_library(stb::headers ALIAS stb)
-endif()
-
add_library(tz tz/tz/tz.cpp)
target_include_directories(tz PUBLIC ./tz)