aboutsummaryrefslogtreecommitdiff
path: root/CMakeModules
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2026-06-16 16:15:49 +0200
committercrueter <crueter@eden-emu.dev>2026-06-16 16:15:49 +0200
commit02eaf3c5a7ff24be27ebc9674576d956e7c68da6 (patch)
tree783674dc349a6d1ff41879d4542bff9c65210e5e /CMakeModules
parentc8c61a12c39a0e2df7c38b21a035b0c03759dc1e (diff)
[cmake, docs] Reorganize CMakeModules directory and add GentooCross toolchain (#4088)
Lightly inspired by my earlier toolchain and writeup from the PowerPC PR. Closes #3793 Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4088 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'CMakeModules')
-rw-r--r--CMakeModules/WindowsCopyFiles.cmake39
-rw-r--r--CMakeModules/aqt_config.ini30
-rw-r--r--CMakeModules/find/FindDiscordRPC.cmake (renamed from CMakeModules/FindDiscordRPC.cmake)2
-rw-r--r--CMakeModules/find/FindFFmpeg.cmake (renamed from CMakeModules/FindFFmpeg.cmake)2
-rw-r--r--CMakeModules/find/FindLLVM.cmake (renamed from CMakeModules/FindLLVM.cmake)0
-rw-r--r--CMakeModules/find/FindOpus.cmake (renamed from CMakeModules/FindOpus.cmake)2
-rw-r--r--CMakeModules/find/FindRenderDoc.cmake (renamed from CMakeModules/FindRenderDoc.cmake)3
-rw-r--r--CMakeModules/find/FindSimpleIni.cmake (renamed from CMakeModules/FindSimpleIni.cmake)3
-rw-r--r--CMakeModules/find/Findenet.cmake (renamed from CMakeModules/Findenet.cmake)2
-rw-r--r--CMakeModules/find/Findgamemode.cmake (renamed from CMakeModules/Findgamemode.cmake)3
-rw-r--r--CMakeModules/find/Findhttplib.cmake (renamed from CMakeModules/Findhttplib.cmake)3
-rw-r--r--CMakeModules/find/Findlibiw.cmake (renamed from CMakeModules/Findlibiw.cmake)2
-rw-r--r--CMakeModules/find/Findlibusb.cmake (renamed from CMakeModules/Findlibusb.cmake)2
-rw-r--r--CMakeModules/find/Findlz4.cmake (renamed from CMakeModules/Findlz4.cmake)2
-rw-r--r--CMakeModules/find/Findstb.cmake (renamed from CMakeModules/Findstb.cmake)3
-rw-r--r--CMakeModules/find/Findzstd.cmake (renamed from CMakeModules/Findzstd.cmake)2
-rw-r--r--CMakeModules/toolchains/GentooCross.cmake39
17 files changed, 62 insertions, 77 deletions
diff --git a/CMakeModules/WindowsCopyFiles.cmake b/CMakeModules/WindowsCopyFiles.cmake
deleted file mode 100644
index a4afeb77bf..0000000000
--- a/CMakeModules/WindowsCopyFiles.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-# This file provides the function windows_copy_files.
-# This is only valid on Windows.
-
-# Include guard
-if(__windows_copy_files)
- return()
-endif()
-set(__windows_copy_files YES)
-
-# Any number of files to copy from SOURCE_DIR to DEST_DIR can be specified after DEST_DIR.
-# This copying happens post-build.
-if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
- function(windows_copy_files TARGET SOURCE_DIR DEST_DIR)
- # windows commandline expects the / to be \ so switch them
- string(REPLACE "/" "\\\\" SOURCE_DIR ${SOURCE_DIR})
- string(REPLACE "/" "\\\\" DEST_DIR ${DEST_DIR})
-
- # /NJH /NJS /NDL /NFL /NC /NS /NP - Silence any output
- # cmake adds an extra check for command success which doesn't work too well with robocopy
- # so trick it into thinking the command was successful with the || cmd /c "exit /b 0"
- add_custom_command(TARGET ${TARGET} POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR}
- COMMAND robocopy ${SOURCE_DIR} ${DEST_DIR} ${ARGN} /NJH /NJS /NDL /NFL /NC /NS /NP || cmd /c "exit /b 0"
- )
- endfunction()
-else()
- function(windows_copy_files TARGET SOURCE_DIR DEST_DIR)
- add_custom_command(TARGET ${TARGET} POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR}
- COMMAND cp -ra ${SOURCE_DIR}/. ${DEST_DIR}
- )
- endfunction()
-endif()
diff --git a/CMakeModules/aqt_config.ini b/CMakeModules/aqt_config.ini
deleted file mode 100644
index c87caf4988..0000000000
--- a/CMakeModules/aqt_config.ini
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-FileCopyrightText: 2024 kleidis
-
-[aqt]
-concurrency: 2
-
-[mirrors]
-trusted_mirrors:
- https://download.qt.io
-blacklist:
- https://qt.mirror.constant.com
- https://mirrors.ocf.berkeley.edu
- https://mirrors.ustc.edu.cn
- https://mirrors.tuna.tsinghua.edu.cn
- https://mirrors.geekpie.club
- https://mirrors-wan.geekpie.club
- https://mirrors.sjtug.sjtu.edu.cn
-fallbacks:
- https://qtproject.mirror.liquidtelecom.com/
- https://mirrors.aliyun.com/qt/
- https://ftp.jaist.ac.jp/pub/qtproject/
- https://ftp.yz.yamagata-u.ac.jp/pub/qtproject/
- https://qt-mirror.dannhauer.de/
- https://ftp.fau.de/qtproject/
- https://mirror.netcologne.de/qtproject/
- https://mirrors.dotsrc.org/qtproject/
- https://www.nic.funet.fi/pub/mirrors/download.qt-project.org/
- https://master.qt.io/
- https://mirrors.ukfast.co.uk/sites/qt.io/
- https://ftp2.nluug.nl/languages/qt/
- https://ftp1.nluug.nl/languages/qt/
diff --git a/CMakeModules/FindDiscordRPC.cmake b/CMakeModules/find/FindDiscordRPC.cmake
index 5ae9f4f999..a498cb0f26 100644
--- a/CMakeModules/FindDiscordRPC.cmake
+++ b/CMakeModules/find/FindDiscordRPC.cmake
@@ -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: 2022 Alexandre Bouvier <contact@amb.tf>
diff --git a/CMakeModules/FindFFmpeg.cmake b/CMakeModules/find/FindFFmpeg.cmake
index edd0e0a882..11dd08acd5 100644
--- a/CMakeModules/FindFFmpeg.cmake
+++ b/CMakeModules/find/FindFFmpeg.cmake
@@ -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: 2019 Citra Emulator Project
diff --git a/CMakeModules/FindLLVM.cmake b/CMakeModules/find/FindLLVM.cmake
index f169f134d5..f169f134d5 100644
--- a/CMakeModules/FindLLVM.cmake
+++ b/CMakeModules/find/FindLLVM.cmake
diff --git a/CMakeModules/FindOpus.cmake b/CMakeModules/find/FindOpus.cmake
index 5557cd1baf..a4247f06db 100644
--- a/CMakeModules/FindOpus.cmake
+++ b/CMakeModules/find/FindOpus.cmake
@@ -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: 2022 yuzu Emulator Project
diff --git a/CMakeModules/FindRenderDoc.cmake b/CMakeModules/find/FindRenderDoc.cmake
index 2678b936bc..8ac4271a36 100644
--- a/CMakeModules/FindRenderDoc.cmake
+++ b/CMakeModules/find/FindRenderDoc.cmake
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
#
# SPDX-License-Identifier: GPL-3.0-or-later
diff --git a/CMakeModules/FindSimpleIni.cmake b/CMakeModules/find/FindSimpleIni.cmake
index 13426b25ba..1d2379fc82 100644
--- a/CMakeModules/FindSimpleIni.cmake
+++ b/CMakeModules/find/FindSimpleIni.cmake
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
#
# SPDX-License-Identifier: GPL-3.0-or-later
diff --git a/CMakeModules/Findenet.cmake b/CMakeModules/find/Findenet.cmake
index d80e737ebb..2a2d1d807d 100644
--- a/CMakeModules/Findenet.cmake
+++ b/CMakeModules/find/Findenet.cmake
@@ -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: 2022 Alexandre Bouvier <contact@amb.tf>
diff --git a/CMakeModules/Findgamemode.cmake b/CMakeModules/find/Findgamemode.cmake
index aa2f366832..3ec966c82d 100644
--- a/CMakeModules/Findgamemode.cmake
+++ b/CMakeModules/find/Findgamemode.cmake
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
diff --git a/CMakeModules/Findhttplib.cmake b/CMakeModules/find/Findhttplib.cmake
index 48967add96..e92a9be63f 100644
--- a/CMakeModules/Findhttplib.cmake
+++ b/CMakeModules/find/Findhttplib.cmake
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
# SPDX-FileCopyrightText: 2022 Andrea Pappacoda <andrea@pappacoda.it>
#
# SPDX-License-Identifier: GPL-2.0-or-later
diff --git a/CMakeModules/Findlibiw.cmake b/CMakeModules/find/Findlibiw.cmake
index 1d13d7705a..3381db0f08 100644
--- a/CMakeModules/Findlibiw.cmake
+++ b/CMakeModules/find/Findlibiw.cmake
@@ -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
find_package(PkgConfig QUIET)
diff --git a/CMakeModules/Findlibusb.cmake b/CMakeModules/find/Findlibusb.cmake
index 87b174c5b4..dee8187d81 100644
--- a/CMakeModules/Findlibusb.cmake
+++ b/CMakeModules/find/Findlibusb.cmake
@@ -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: 2022 Alexandre Bouvier <contact@amb.tf>
diff --git a/CMakeModules/Findlz4.cmake b/CMakeModules/find/Findlz4.cmake
index af230166eb..13235d7ac8 100644
--- a/CMakeModules/Findlz4.cmake
+++ b/CMakeModules/find/Findlz4.cmake
@@ -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: 2022 yuzu Emulator Project
diff --git a/CMakeModules/Findstb.cmake b/CMakeModules/find/Findstb.cmake
index bff9985802..4808c45397 100644
--- a/CMakeModules/Findstb.cmake
+++ b/CMakeModules/find/Findstb.cmake
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
#
# SPDX-License-Identifier: GPL-3.0-or-later
diff --git a/CMakeModules/Findzstd.cmake b/CMakeModules/find/Findzstd.cmake
index 8e44b7a892..58f0aa6117 100644
--- a/CMakeModules/Findzstd.cmake
+++ b/CMakeModules/find/Findzstd.cmake
@@ -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: 2022 yuzu Emulator Project
diff --git a/CMakeModules/toolchains/GentooCross.cmake b/CMakeModules/toolchains/GentooCross.cmake
new file mode 100644
index 0000000000..0bb78795fd
--- /dev/null
+++ b/CMakeModules/toolchains/GentooCross.cmake
@@ -0,0 +1,39 @@
+# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+set(CROSS_TARGET "" CACHE STRING "Cross-compilation target (aarch64, etc)")
+set(CROSS_PLATFORM "unknown-linux-gnu" CACHE STRING "Cross-compilation platform (e.g. unknown-linux-gnu)")
+set(CROSS_COMPILER "gcc" CACHE STRING "Cross compiler type (gcc or clang)")
+
+if (NOT CROSS_TARGET)
+ message(FATAL_ERROR "GentooCross used without a valid CROSS_TARGET")
+endif()
+
+set(prefix ${CROSS_TARGET}-${CROSS_PLATFORM})
+
+set(CMAKE_SYSROOT /usr/${prefix})
+
+if (CROSS_COMPILER STREQUAL "gcc")
+ set(CMAKE_C_COMPILER ${prefix}-gcc)
+ set(CMAKE_CXX_COMPILER ${prefix}-g++)
+elseif (CROSS_COMPILER STREQUAL "clang")
+ set(CMAKE_C_COMPILER ${prefix}-clang)
+ set(CMAKE_CXX_COMPILER ${prefix}-clang++)
+else()
+ message(FATAL_ERROR "Unsupported cross compiler type ${CROSS_COMPILER}")
+endif()
+
+# search programs in the host environment
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+
+# search headers and libraries in the target environment
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
+
+# sanity checks
+if (NOT IS_DIRECTORY ${CMAKE_SYSROOT})
+ message(FATAL_ERROR "Invalid sysroot ${CMAKE_SYSROOT}."
+ "Double-check your CROSS_TARGET and CROSS_PLATFORM.")
+endif()