From: Adrien Gallouët Date: Thu, 4 Dec 2025 10:42:13 +0000 (+0100) Subject: cmake : simplify build info detection using standard variables (#17423) X-Git-Tag: upstream/0.0.7446~178 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=2a73f81f8a810783db5794256e5ba79f298adee7;p=pkg%2Fggml%2Fsources%2Fllama.cpp cmake : simplify build info detection using standard variables (#17423) The current approach has several drawbacks. Mostly, when cross-compiling, invoking the compiler binary directly to query the machine hardware can behave unexpectedly depending on the toolchain wrapper (using COMPILER_TARGET, CFLAGS, etc). As CMake is the official tool to build llama.cpp, I propose to only rely on it to get those variables (`CMAKE_SYSTEM_NAME` and `CMAKE_SYSTEM_PROCESSOR`). Signed-off-by: Adrien Gallouët --- diff --git a/cmake/build-info.cmake b/cmake/build-info.cmake index 75c78222..c7005950 100644 --- a/cmake/build-info.cmake +++ b/cmake/build-info.cmake @@ -39,26 +39,10 @@ if(Git_FOUND) endif() endif() -if(MSVC) - set(BUILD_COMPILER "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}") - if (CMAKE_VS_PLATFORM_NAME) - set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME}) - else() - set(BUILD_TARGET "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}") - endif() -else() - execute_process( - COMMAND ${CMAKE_C_COMPILER} --version - OUTPUT_VARIABLE OUT - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - string(REGEX REPLACE " *\n.*" "" OUT "${OUT}") - set(BUILD_COMPILER ${OUT}) +set(BUILD_COMPILER "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}") - execute_process( - COMMAND ${CMAKE_C_COMPILER} -dumpmachine - OUTPUT_VARIABLE OUT - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - set(BUILD_TARGET ${OUT}) +if(CMAKE_VS_PLATFORM_NAME) + set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME}) +else() + set(BUILD_TARGET "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}") endif()