From d8f01206989be79035978b6c142c96a8d905f716 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Fri, 30 May 2025 11:03:50 +0200 Subject: [PATCH] build: Handle IMHEX_USE_DEFAULT_BUILD_SETTINGS properly --- cmake/build_helpers.cmake | 76 ++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/cmake/build_helpers.cmake b/cmake/build_helpers.cmake index f3f88ca6b..cab6cfd1a 100644 --- a/cmake/build_helpers.cmake +++ b/cmake/build_helpers.cmake @@ -390,49 +390,53 @@ macro(configureCMake) # Configure use of recommended build tools if (IMHEX_USE_DEFAULT_BUILD_SETTINGS) - message(STATUS "Configuring CMake to use recommended build tools...") + if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") + message(STATUS "Configuring CMake to use recommended build tools...") - find_program(CCACHE_PATH ccache) - find_program(NINJA_PATH ninja) - find_program(LD_LLD_PATH ld.lld) - find_program(AR_LLVMLIBS_PATH llvm-ar) - find_program(RANLIB_LLVMLIBS_PATH llvm-ranlib) + find_program(CCACHE_PATH ccache) + find_program(NINJA_PATH ninja) + find_program(LD_LLD_PATH ld.lld) + find_program(AR_LLVMLIBS_PATH llvm-ar) + find_program(RANLIB_LLVMLIBS_PATH llvm-ranlib) - if (CCACHE_PATH) - set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PATH}) - set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PATH}) - else () - message(WARNING "ccache not found!") - endif () + if (CCACHE_PATH) + set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PATH}) + set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PATH}) + else () + message(WARNING "ccache not found!") + endif () - if (AR_LLVMLIBS_PATH) - set(CMAKE_AR ${AR_LLVMLIBS_PATH}) - else () - message(WARNING "llvm-ar not found, using default ar!") - endif () + if (AR_LLVMLIBS_PATH) + set(CMAKE_AR ${AR_LLVMLIBS_PATH}) + else () + message(WARNING "llvm-ar not found, using default ar!") + endif () - if (RANLIB_LLVMLIBS_PATH) - set(CMAKE_RANLIB ${RANLIB_LLVMLIBS_PATH}) - else () - message(WARNING "llvm-ranlib not found, using default ranlib!") - endif () + if (RANLIB_LLVMLIBS_PATH) + set(CMAKE_RANLIB ${RANLIB_LLVMLIBS_PATH}) + else () + message(WARNING "llvm-ranlib not found, using default ranlib!") + endif () - if (LD_LLD_PATH) - set(CMAKE_LINKER ${LD_LLD_PATH}) + if (LD_LLD_PATH) + set(CMAKE_LINKER ${LD_LLD_PATH}) - if (NOT XCODE AND NOT MSVC) - set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -fuse-ld=lld) - set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fuse-ld=lld) - endif() - else () - message(WARNING "lld not found, using default linker!") - endif () + if (NOT XCODE AND NOT MSVC) + set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -fuse-ld=lld) + set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fuse-ld=lld) + endif() + else () + message(WARNING "lld not found, using default linker!") + endif () - if (NINJA_PATH) - set(CMAKE_GENERATOR Ninja) - else () - message(WARNING "ninja not found, using default generator!") - endif () + if (NINJA_PATH) + set(CMAKE_GENERATOR Ninja) + else () + message(WARNING "ninja not found, using default generator!") + endif () + elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + + endif() endif() # Enable LTO if desired and supported