Skip to content

Commit 1bdbf0e

Browse files
W-M-Rxiaoxiang781216
authored andcommitted
toolchain/arm64/cmake: Corrected the writing of arm64 cmake search library
Align the writing style of arm cmake, and each compiler defines its own find library function, otherwise use the default Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
1 parent bc8ce39 commit 1bdbf0e

File tree

3 files changed

+54
-29
lines changed

3 files changed

+54
-29
lines changed

arch/arm64/src/cmake/clang.cmake

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,3 +169,46 @@ if(NOT CONFIG_ARCH_USE_MMU)
169169
endif()
170170

171171
add_link_options(-no-pie)
172+
173+
# override nuttx_find_toolchain_lib
174+
175+
set(NUTTX_FIND_TOOLCHAIN_LIB_DEFINED true)
176+
177+
if(CONFIG_BUILTIN_TOOLCHAIN)
178+
function(nuttx_find_toolchain_lib)
179+
if(ARGN)
180+
execute_process(
181+
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} ${NUTTX_EXTRA_FLAGS}
182+
--print-file-name=${ARGN}
183+
OUTPUT_STRIP_TRAILING_WHITESPACE
184+
OUTPUT_VARIABLE extra_lib_path)
185+
nuttx_add_extra_library(${extra_lib_path})
186+
else()
187+
execute_process(
188+
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} ${NUTTX_EXTRA_FLAGS}
189+
--print-libgcc-file-name
190+
OUTPUT_STRIP_TRAILING_WHITESPACE
191+
OUTPUT_VARIABLE libgcc_path)
192+
get_filename_component(libgcc_name ${libgcc_path} NAME)
193+
execute_process(
194+
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} ${NUTTX_EXTRA_FLAGS}
195+
--print-file-name=${libgcc_name}
196+
OUTPUT_STRIP_TRAILING_WHITESPACE
197+
OUTPUT_VARIABLE libgcc)
198+
nuttx_add_extra_library(${libgcc})
199+
endif()
200+
endfunction()
201+
else()
202+
function(nuttx_find_toolchain_lib)
203+
if(ARGN)
204+
execute_process(
205+
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} ${NUTTX_EXTRA_FLAGS}
206+
--print-file-name=${ARGN}
207+
OUTPUT_STRIP_TRAILING_WHITESPACE
208+
OUTPUT_VARIABLE extra_lib_path)
209+
endif()
210+
nuttx_add_extra_library(${extra_lib_path})
211+
endfunction()
212+
endif()
213+
214+
set(PREPROCESS ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} -E -P -x c)

arch/arm64/src/cmake/gcc.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,3 +218,5 @@ if(CONFIG_ARCH_TOOLCHAIN_GNU AND NOT CONFIG_ARCH_TOOLCHAIN_CLANG)
218218
endif()
219219

220220
endif()
221+
222+
set(PREPROCESS ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} -E -P -x c)

arch/arm64/src/cmake/platform.cmake

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
# the License.
2020
#
2121
# ##############################################################################
22+
2223
get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${CMAKE_SOURCE_DIR}
2324
COMPILE_OPTIONS)
2425

@@ -34,37 +35,16 @@ foreach(FLAG ${TOOLCHAIN_DIR_FLAGS})
3435
endif()
3536
endforeach()
3637

37-
execute_process(
38-
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} ${NUTTX_EXTRA_FLAGS}
39-
--print-libgcc-file-name
40-
OUTPUT_STRIP_TRAILING_WHITESPACE
41-
OUTPUT_VARIABLE extra_library)
42-
list(APPEND EXTRA_LIB ${extra_library})
43-
if(CONFIG_LIBM_TOOLCHAIN)
44-
execute_process(
45-
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} ${NUTTX_EXTRA_FLAGS}
46-
--print-file-name=libm.a
47-
OUTPUT_STRIP_TRAILING_WHITESPACE
48-
OUTPUT_VARIABLE extra_library)
49-
list(APPEND EXTRA_LIB ${extra_library})
38+
nuttx_find_toolchain_lib()
39+
40+
if(NOT CONFIG_LIBM)
41+
nuttx_find_toolchain_lib(libm.a)
5042
endif()
43+
5144
if(CONFIG_LIBSUPCXX_TOOLCHAIN)
52-
execute_process(
53-
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} ${NUTTX_EXTRA_FLAGS}
54-
--print-file-name=libsupc++.a
55-
OUTPUT_STRIP_TRAILING_WHITESPACE
56-
OUTPUT_VARIABLE extra_library)
57-
list(APPEND EXTRA_LIB ${extra_library})
45+
nuttx_find_toolchain_lib(libsupc++.a)
5846
endif()
47+
5948
if(CONFIG_COVERAGE_TOOLCHAIN)
60-
execute_process(
61-
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} ${NUTTX_EXTRA_FLAGS}
62-
--print-file-name=libgcov.a
63-
OUTPUT_STRIP_TRAILING_WHITESPACE
64-
OUTPUT_VARIABLE extra_library)
65-
list(APPEND EXTRA_LIB ${extra_library})
49+
nuttx_find_toolchain_lib(libgcov.a)
6650
endif()
67-
68-
nuttx_add_extra_library(${EXTRA_LIB})
69-
70-
set(PREPROCESS ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} -E -P -x c)

0 commit comments

Comments
 (0)