diff options
| author | crueter <crueter@eden-emu.dev> | 2026-06-16 16:15:49 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-06-16 16:15:49 +0200 |
| commit | 02eaf3c5a7ff24be27ebc9674576d956e7c68da6 (patch) | |
| tree | 783674dc349a6d1ff41879d4542bff9c65210e5e /CMakeModules | |
| parent | c8c61a12c39a0e2df7c38b21a035b0c03759dc1e (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.cmake | 39 | ||||
| -rw-r--r-- | CMakeModules/aqt_config.ini | 30 | ||||
| -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.cmake | 39 |
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() |
