Successor to that old MoltenVK PR. Does a lot of cleanups within root CMakeLists.txt, hands over MoltenVK and VulkanValidationLayers to CPMUtil, and separates out common operations into my modules. Hopefully reduces the monstrosity that is root CMakeLists.txt. Please test: - builds on all platforms - VulkanValidationLayers Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3126 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
35 lines
1.3 KiB
CMake
35 lines
1.3 KiB
CMake
# SPDX-FileCopyrightText: Copyright 2025 crueter
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
## UseCcache ##
|
|
|
|
# Adds an option to enable CCache and uses it if provided.
|
|
# Also does some debug info downgrading to make it easier.
|
|
# Credit to DraVee for his work on this
|
|
|
|
option(USE_CCACHE "Use ccache for compilation" OFF)
|
|
set(CCACHE_PATH "ccache" CACHE STRING "Path to ccache binary")
|
|
if(USE_CCACHE)
|
|
find_program(CCACHE_BINARY ${CCACHE_PATH})
|
|
if(CCACHE_BINARY)
|
|
message(STATUS "[UseCcache] Found ccache at: ${CCACHE_BINARY}")
|
|
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_BINARY})
|
|
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_BINARY})
|
|
else()
|
|
message(FATAL_ERROR "[UseCcache] USE_CCACHE enabled, but no "
|
|
"executable found at: ${CCACHE_PATH}")
|
|
endif()
|
|
# Follow SCCache recommendations:
|
|
# <https://github.com/mozilla/sccache/blob/main/README.md?plain=1#L144>
|
|
if(WIN32)
|
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG
|
|
"${CMAKE_CXX_FLAGS_DEBUG}")
|
|
string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_DEBUG
|
|
"${CMAKE_C_FLAGS_DEBUG}")
|
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
|
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
|
string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_RELWITHDEBINFO
|
|
"${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
|
endif()
|
|
endif()
|