Skip to content

Commit 7139266

Browse files
committed
cmake : simplify build info detection using standard variables
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 <[email protected]>
1 parent f1ffbba commit 7139266

File tree

1 file changed

+5
-21
lines changed

1 file changed

+5
-21
lines changed

cmake/build-info.cmake

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -39,26 +39,10 @@ if(Git_FOUND)
3939
endif()
4040
endif()
4141

42-
if(MSVC)
43-
set(BUILD_COMPILER "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}")
44-
if (CMAKE_VS_PLATFORM_NAME)
45-
set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME})
46-
else()
47-
set(BUILD_TARGET "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}")
48-
endif()
49-
else()
50-
execute_process(
51-
COMMAND ${CMAKE_C_COMPILER} --version
52-
OUTPUT_VARIABLE OUT
53-
OUTPUT_STRIP_TRAILING_WHITESPACE
54-
)
55-
string(REGEX REPLACE " *\n.*" "" OUT "${OUT}")
56-
set(BUILD_COMPILER ${OUT})
42+
set(BUILD_COMPILER "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}")
5743

58-
execute_process(
59-
COMMAND ${CMAKE_C_COMPILER} -dumpmachine
60-
OUTPUT_VARIABLE OUT
61-
OUTPUT_STRIP_TRAILING_WHITESPACE
62-
)
63-
set(BUILD_TARGET ${OUT})
44+
if(CMAKE_VS_PLATFORM_NAME)
45+
set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME})
46+
else()
47+
set(BUILD_TARGET "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}")
6448
endif()

0 commit comments

Comments
 (0)