[cmake] USE_CCACHE option #349
8 changed files with 83 additions and 117 deletions
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2025 eden Emulator Project
|
# SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
@ -52,8 +52,6 @@ native)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
export ARCH_FLAGS="$ARCH_FLAGS -O3"
|
|
||||||
|
|
||||||
if [ -z "$NPROC" ]; then
|
if [ -z "$NPROC" ]; then
|
||||||
NPROC="$(nproc)"
|
NPROC="$(nproc)"
|
||||||
fi
|
fi
|
||||||
|
@ -61,53 +59,41 @@ fi
|
||||||
if [ "$1" != "" ]; then shift; fi
|
if [ "$1" != "" ]; then shift; fi
|
||||||
|
|
||||||
if [ "$TARGET" = "appimage" ]; then
|
if [ "$TARGET" = "appimage" ]; then
|
||||||
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF)
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON)
|
||||||
else
|
else
|
||||||
# For the linux-fresh verification target, verify compilation without PCH as well.
|
# For the linux-fresh verification target, verify compilation without PCH as well.
|
||||||
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DYUZU_USE_PRECOMPILED_HEADERS=OFF)
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DYUZU_USE_PRECOMPILED_HEADERS=OFF)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DEVEL" != "true" ]; then
|
EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@)
|
||||||
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DENABLE_QT_UPDATE_CHECKER=ON)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$USE_WEBENGINE" = "true" ]; then
|
echo "${EXTRA_CMAKE_FLAGS[@]}"
|
||||||
WEBENGINE=ON
|
|
||||||
else
|
|
||||||
WEBENGINE=OFF
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$USE_MULTIMEDIA" = "false" ]; then
|
|
||||||
MULTIMEDIA=OFF
|
|
||||||
else
|
|
||||||
MULTIMEDIA=ON
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$BUILD_TYPE" ]; then
|
|
||||||
export BUILD_TYPE="Release"
|
|
||||||
fi
|
|
||||||
|
|
||||||
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@)
|
|
||||||
|
|
||||||
mkdir -p build && cd build
|
mkdir -p build && cd build
|
||||||
cmake .. -G Ninja \
|
cmake .. -G Ninja \
|
||||||
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
|
-DCMAKE_BUILD_TYPE="${BUILD_TYPE:-Release}" \
|
||||||
-DENABLE_QT_TRANSLATION=ON \
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
-DUSE_DISCORD_PRESENCE=ON \
|
-DUSE_DISCORD_PRESENCE=ON \
|
||||||
-DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \
|
|
||||||
-DCMAKE_C_FLAGS="$ARCH_FLAGS" \
|
|
||||||
-DYUZU_USE_BUNDLED_QT=OFF \
|
|
||||||
-DYUZU_USE_BUNDLED_SDL2=OFF \
|
-DYUZU_USE_BUNDLED_SDL2=OFF \
|
||||||
-DYUZU_USE_EXTERNAL_SDL2=ON \
|
-DYUZU_USE_EXTERNAL_SDL2=ON \
|
||||||
|
-DBUILD_TESTING=OFF \
|
||||||
-DYUZU_TESTS=OFF \
|
-DYUZU_TESTS=OFF \
|
||||||
-DYUZU_USE_QT_MULTIMEDIA=$MULTIMEDIA \
|
-DDYNARMIC_TESTS=OFF \
|
||||||
-DYUZU_USE_QT_WEB_ENGINE=$WEBENGINE \
|
-DYUZU_CMD=OFF \
|
||||||
-DYUZU_USE_FASTER_LD=ON \
|
-DYUZU_ROOM_STANDALONE=OFF \
|
||||||
|
-DYUZU_USE_QT_MULTIMEDIA="${USE_MULTIMEDIA:-false}" \
|
||||||
|
-DYUZU_USE_QT_WEB_ENGINE="${USE_WEBENGINE:-false}" \
|
||||||
-DYUZU_ENABLE_LTO=ON \
|
-DYUZU_ENABLE_LTO=ON \
|
||||||
-DDYNARMIC_ENABLE_LTO=ON \
|
-DDYNARMIC_ENABLE_LTO=ON \
|
||||||
|
-DYUZU_USE_BUNDLED_QT="${BUNDLE_QT:-false}" \
|
||||||
|
-DUSE_CCACHE="${CCACHE:-false}" \
|
||||||
|
-DENABLE_QT_UPDATE_CHECKER="${DEVEL:-true}" \
|
||||||
|
-DYUZU_USE_FASTER_LD=ON \
|
||||||
|
-DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \
|
||||||
|
-DCMAKE_C_FLAGS="$ARCH_FLAGS" \
|
||||||
"${EXTRA_CMAKE_FLAGS[@]}"
|
"${EXTRA_CMAKE_FLAGS[@]}"
|
||||||
|
|
||||||
ninja -j${NPROC}
|
ninja -j"${NPROC}"
|
||||||
|
|
||||||
if [ -d "bin/Release" ]; then
|
if [ -d "bin/Release" ]; then
|
||||||
strip -s bin/Release/*
|
strip -s bin/Release/*
|
||||||
|
|
|
@ -17,12 +17,14 @@ fi
|
||||||
|
|
||||||
[ -z "$WINDEPLOYQT" ] && { echo "WINDEPLOYQT environment variable required."; exit 1; }
|
[ -z "$WINDEPLOYQT" ] && { echo "WINDEPLOYQT environment variable required."; exit 1; }
|
||||||
|
|
||||||
echo $EXTRA_CMAKE_FLAGS
|
EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@)
|
||||||
|
|
||||||
|
echo "${EXTRA_CMAKE_FLAGS[@]}"
|
||||||
|
|
||||||
mkdir -p build && cd build
|
mkdir -p build && cd build
|
||||||
cmake .. -G Ninja \
|
cmake .. -G Ninja \
|
||||||
-DCMAKE_BUILD_TYPE="${BUILD_TYPE:-Release}" \
|
-DCMAKE_BUILD_TYPE="${BUILD_TYPE:-Release}" \
|
||||||
-DENABLE_QT_TRANSLATION=ON \
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
-DUSE_DISCORD_PRESENCE=ON \
|
-DUSE_DISCORD_PRESENCE=ON \
|
||||||
-DYUZU_USE_BUNDLED_SDL2=ON \
|
-DYUZU_USE_BUNDLED_SDL2=ON \
|
||||||
-DBUILD_TESTING=OFF \
|
-DBUILD_TESTING=OFF \
|
||||||
|
@ -30,14 +32,14 @@ cmake .. -G Ninja \
|
||||||
-DDYNARMIC_TESTS=OFF \
|
-DDYNARMIC_TESTS=OFF \
|
||||||
-DYUZU_CMD=OFF \
|
-DYUZU_CMD=OFF \
|
||||||
-DYUZU_ROOM_STANDALONE=OFF \
|
-DYUZU_ROOM_STANDALONE=OFF \
|
||||||
-DYUZU_USE_QT_MULTIMEDIA=${USE_MULTIMEDIA:-false} \
|
-DYUZU_USE_QT_MULTIMEDIA="${USE_MULTIMEDIA:-false}" \
|
||||||
-DYUZU_USE_QT_WEB_ENGINE=${USE_WEBENGINE:-false} \
|
-DYUZU_USE_QT_WEB_ENGINE="${USE_WEBENGINE:-false}" \
|
||||||
-DYUZU_ENABLE_LTO=ON \
|
-DYUZU_ENABLE_LTO=ON \
|
||||||
-DCMAKE_EXE_LINKER_FLAGS=" /LTCG" \
|
-DCMAKE_EXE_LINKER_FLAGS=" /LTCG" \
|
||||||
-DDYNARMIC_ENABLE_LTO=ON \
|
-DDYNARMIC_ENABLE_LTO=ON \
|
||||||
-DYUZU_USE_BUNDLED_QT=${BUNDLE_QT:-false} \
|
-DYUZU_USE_BUNDLED_QT="${BUNDLE_QT:-false}" \
|
||||||
-DUSE_CCACHE=${CCACHE:-false} \
|
-DUSE_CCACHE="${CCACHE:-false}" \
|
||||||
-DENABLE_QT_UPDATE_CHECKER=${DEVEL:-true} \
|
-DENABLE_QT_UPDATE_CHECKER="${DEVEL:-true}" \
|
||||||
"${EXTRA_CMAKE_FLAGS[@]}" \
|
"${EXTRA_CMAKE_FLAGS[@]}" \
|
||||||
"$@"
|
"$@"
|
||||||
|
|
||||||
|
|
|
@ -180,6 +180,7 @@ CMAKE_DEPENDENT_OPTION(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF
|
||||||
option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
|
option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
|
||||||
|
|
||||||
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ${EXT_DEFAULT})
|
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ${EXT_DEFAULT})
|
||||||
|
set(DYNARMIC_USE_PRECOMPILED_HEADERS YUZU_USE_PRECOMPILED_HEADERS)
|
||||||
|
|
||||||
# TODO(crueter): CI this?
|
# TODO(crueter): CI this?
|
||||||
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
||||||
|
@ -253,13 +254,27 @@ if (ANDROID)
|
||||||
set(CMAKE_POLICY_VERSION_MINIMUM 3.5) # Workaround for Oboe
|
set(CMAKE_POLICY_VERSION_MINIMUM 3.5) # Workaround for Oboe
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_USE_PRECOMPILED_HEADERS)
|
# Add option to enable CCache
|
||||||
if (MSVC AND CCACHE)
|
option(USE_CCACHE "Use ccache for compilation" OFF)
|
||||||
# buildcache does not properly cache PCH files, leading to compilation errors.
|
set(CCACHE_PATH "ccache" CACHE STRING "Path to ccache binary")
|
||||||
# See https://github.com/mbitsnbites/buildcache/discussions/230
|
if(USE_CCACHE)
|
||||||
message(WARNING "buildcache does not properly support Precompiled Headers. Disabling PCH")
|
find_program(CCACHE_BINARY ${CCACHE_PATH})
|
||||||
set(DYNARMIC_USE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
|
if(CCACHE_BINARY)
|
||||||
set(YUZU_USE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
|
message(STATUS "Found ccache at: ${CCACHE_BINARY}")
|
||||||
|
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_BINARY})
|
||||||
|
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_BINARY})
|
||||||
|
if(WIN32)
|
||||||
|
message(WARNING "USE_CCACHE is unstable under Windows, errors may occur...")
|
||||||
|
# we need to downgrade debug info (/Zi -> /Z7) to use an older but more cacheable format
|
||||||
|
# See https://github.com/nanoant/CMakePCHCompiler/issues/21
|
||||||
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||||
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||||
|
endif()
|
||||||
|
if (YUZU_USE_PRECOMPILED_HEADERS)
|
||||||
|
message(WARNING "YUZU_USE_PRECOMPILED_HEADERS reduce the number of USE_CCACHE files, consider disabling...")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(WARNING "USE_CCACHE enabled, but no executable found at: ${CCACHE_PATH}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
# buildcache wrapper
|
|
||||||
OPTION(USE_CCACHE "Use buildcache for compilation" OFF)
|
|
||||||
IF(USE_CCACHE)
|
|
||||||
FIND_PROGRAM(CCACHE buildcache)
|
|
||||||
IF (CCACHE)
|
|
||||||
MESSAGE(STATUS "Using buildcache found in PATH")
|
|
||||||
SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
|
|
||||||
SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
|
|
||||||
ELSE(CCACHE)
|
|
||||||
MESSAGE(WARNING "USE_CCACHE enabled, but no buildcache executable found")
|
|
||||||
ENDIF(CCACHE)
|
|
||||||
ENDIF(USE_CCACHE)
|
|
|
@ -1,13 +1,17 @@
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
set(MINGW_PREFIX /usr/x86_64-w64-mingw32/)
|
|
||||||
set(CMAKE_SYSTEM_NAME Windows)
|
|
||||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||||
|
set(MINGW_FULL_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32)
|
||||||
|
set(MINGW_PREFIX /usr/${MINGW_FULL_PREFIX}/)
|
||||||
|
set(CMAKE_SYSTEM_NAME Windows)
|
||||||
|
|
||||||
set(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
|
set(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
|
||||||
set(SDL2_PATH ${MINGW_PREFIX})
|
set(SDL2_PATH ${MINGW_PREFIX})
|
||||||
set(MINGW_TOOL_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-)
|
set(MINGW_TOOL_PREFIX ${MINGW_FULL_PREFIX}-)
|
||||||
|
|
||||||
# Specify the cross compiler
|
# Specify the cross compiler
|
||||||
set(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}clang)
|
set(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}clang)
|
||||||
|
@ -23,23 +27,9 @@ set(STRIP ${MINGW_TOOL_PREFIX}strip)
|
||||||
set(WINDRES ${MINGW_TOOL_PREFIX}windres)
|
set(WINDRES ${MINGW_TOOL_PREFIX}windres)
|
||||||
set(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config)
|
set(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config)
|
||||||
|
|
||||||
# ccache wrapper
|
|
||||||
option(USE_CCACHE "Use ccache for compilation" OFF)
|
|
||||||
if(USE_CCACHE)
|
|
||||||
find_program(CCACHE ccache)
|
|
||||||
if(CCACHE)
|
|
||||||
message(STATUS "Using ccache found in PATH")
|
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
|
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
|
|
||||||
else(CCACHE)
|
|
||||||
message(WARNING "USE_CCACHE enabled, but no ccache found")
|
|
||||||
endif(CCACHE)
|
|
||||||
endif(USE_CCACHE)
|
|
||||||
|
|
||||||
# Search for programs in the build host directories
|
# Search for programs in the build host directories
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
|
||||||
|
|
||||||
# Echo modified cmake vars to screen for debugging purposes
|
# Echo modified cmake vars to screen for debugging purposes
|
||||||
if(NOT DEFINED ENV{MINGW_DEBUG_INFO})
|
if(NOT DEFINED ENV{MINGW_DEBUG_INFO})
|
||||||
message("")
|
message("")
|
||||||
|
|
|
@ -1,16 +1,20 @@
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2018 tech4me <guiwanglong@gmail.com>
|
# SPDX-FileCopyrightText: 2018 tech4me <guiwanglong@gmail.com>
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
set(MINGW_PREFIX /usr/x86_64-w64-mingw32/)
|
|
||||||
set(CMAKE_SYSTEM_NAME Windows)
|
|
||||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
|
||||||
# Actually a hack, w/o this will cause some strange errors
|
# Actually a hack, w/o this will cause some strange errors
|
||||||
set(CMAKE_HOST_WIN32 TRUE)
|
set(CMAKE_HOST_WIN32 TRUE)
|
||||||
|
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||||
|
set(MINGW_FULL_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32)
|
||||||
|
set(MINGW_PREFIX /usr/${MINGW_FULL_PREFIX}/)
|
||||||
|
set(CMAKE_SYSTEM_NAME Windows)
|
||||||
|
|
||||||
set(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
|
set(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
|
||||||
set(SDL2_PATH ${MINGW_PREFIX})
|
set(SDL2_PATH ${MINGW_PREFIX})
|
||||||
set(MINGW_TOOL_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-)
|
set(MINGW_TOOL_PREFIX ${MINGW_FULL_PREFIX}-)
|
||||||
|
|
||||||
# Specify the cross compiler
|
# Specify the cross compiler
|
||||||
set(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc)
|
set(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc)
|
||||||
|
@ -22,23 +26,9 @@ set(STRIP ${MINGW_TOOL_PREFIX}strip)
|
||||||
set(WINDRES ${MINGW_TOOL_PREFIX}windres)
|
set(WINDRES ${MINGW_TOOL_PREFIX}windres)
|
||||||
set(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config)
|
set(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config)
|
||||||
|
|
||||||
# ccache wrapper
|
|
||||||
option(USE_CCACHE "Use ccache for compilation" OFF)
|
|
||||||
if(USE_CCACHE)
|
|
||||||
find_program(CCACHE ccache)
|
|
||||||
if(CCACHE)
|
|
||||||
message(STATUS "Using ccache found in PATH")
|
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
|
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
|
|
||||||
else(CCACHE)
|
|
||||||
message(WARNING "USE_CCACHE enabled, but no ccache found")
|
|
||||||
endif(CCACHE)
|
|
||||||
endif(USE_CCACHE)
|
|
||||||
|
|
||||||
# Search for programs in the build host directories
|
# Search for programs in the build host directories
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
|
||||||
|
|
||||||
# Echo modified cmake vars to screen for debugging purposes
|
# Echo modified cmake vars to screen for debugging purposes
|
||||||
if(NOT DEFINED ENV{MINGW_DEBUG_INFO})
|
if(NOT DEFINED ENV{MINGW_DEBUG_INFO})
|
||||||
message("")
|
message("")
|
||||||
|
|
21
externals/CMakeLists.txt
vendored
21
externals/CMakeLists.txt
vendored
|
@ -77,12 +77,21 @@ endif()
|
||||||
# Sirit
|
# Sirit
|
||||||
AddJsonPackage(sirit)
|
AddJsonPackage(sirit)
|
||||||
|
|
||||||
if(MSVC AND USE_CCACHE AND sirit_ADDED)
|
if(WIN32)
|
||||||
get_target_property(_opts sirit COMPILE_OPTIONS)
|
get_target_property(sirit_opts sirit COMPILE_OPTIONS)
|
||||||
list(FILTER _opts EXCLUDE REGEX "/Zi")
|
# Remove Debug Info on ALL Release Builds
|
||||||
list(APPEND _opts "/Z7")
|
if(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
|
||||||
set_target_properties(sirit PROPERTIES COMPILE_OPTIONS "${_opts}")
|
list(FILTER sirit_opts EXCLUDE REGEX "/Zi")
|
||||||
elseif(MSVC AND CXX_CLANG)
|
endif()
|
||||||
|
# Change to old-but-more-cacheable debug info WHEN using ccache
|
||||||
|
if(CCACHE_BINARY AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||||
|
list(FILTER sirit_opts EXCLUDE REGEX "/Zi")
|
||||||
|
list(APPEND sirit_opts "/Z7")
|
||||||
|
endif()
|
||||||
|
set_target_properties(sirit PROPERTIES COMPILE_OPTIONS "${sirit_opts}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC AND CXX_CLANG)
|
||||||
target_compile_options(sirit PRIVATE -Wno-error=unused-command-line-argument)
|
target_compile_options(sirit PRIVATE -Wno-error=unused-command-line-argument)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -101,17 +101,6 @@ if (MSVC AND NOT CXX_CLANG)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_CCACHE OR YUZU_USE_PRECOMPILED_HEADERS)
|
|
||||||
# when caching, we need to use /Z7 to downgrade debug info to use an older but more cacheable format
|
|
||||||
# Precompiled headers are deleted if not using /Z7. See https://github.com/nanoant/CMakePCHCompiler/issues/21
|
|
||||||
add_compile_options(/Z7)
|
|
||||||
# Avoid D9025 warning
|
|
||||||
string(REPLACE "/Zi" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
|
||||||
string(REPLACE "/Zi" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
|
||||||
else()
|
|
||||||
add_compile_options(/Zi)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (ARCHITECTURE_x86_64)
|
if (ARCHITECTURE_x86_64)
|
||||||
add_compile_options(/QIntel-jcc-erratum)
|
add_compile_options(/QIntel-jcc-erratum)
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue