diff --git a/cmake/common/px4_base.cmake b/cmake/common/px4_base.cmake index 66be1acbe5..492e02ae4b 100644 --- a/cmake/common/px4_base.cmake +++ b/cmake/common/px4_base.cmake @@ -498,6 +498,7 @@ function(px4_add_common_flags) -Werror=reorder -Werror=uninitialized -Werror=init-self + -Wno-unused-const-variable #-Wcast-qual - generates spurious noreturn attribute warnings, # try again later #-Wconversion - would be nice, but too many "risky-but-safe" @@ -508,7 +509,6 @@ function(px4_add_common_flags) if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL "Clang") list(APPEND warnings - -Wno-unused-const-variable -Werror=unused-but-set-variable -Wformat=1 #-Wlogical-op # very verbose due to eigen @@ -618,10 +618,16 @@ function(px4_add_common_flags) -DCONFIG_ARCH_BOARD_${board_config} ) - set(added_exe_link_flags - -Wl,--warn-common - -Wl,--gc-sections - ) + if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL "Clang") + set(added_exe_link_flags + -Wl,--warn-common + -Wl,--gc-sections + ) + else() + set(added_exe_link_flags + -Wl,--warn-common + ) + endif() # output foreach(var ${inout_vars}) diff --git a/cmake/toolchains/Toolchain-native.cmake b/cmake/toolchains/Toolchain-native.cmake index e7792a5f87..0f9ad12f14 100644 --- a/cmake/toolchains/Toolchain-native.cmake +++ b/cmake/toolchains/Toolchain-native.cmake @@ -1,5 +1,5 @@ # compiler tools -foreach(tool objcopy nm ld) +foreach(tool nm ld) string(TOUPPER ${tool} TOOL) find_program(${TOOL} ${tool}) if(NOT ${TOOL}) diff --git a/src/firmware/posix/CMakeLists.txt b/src/firmware/posix/CMakeLists.txt index bc557ce6f7..1ac73ba682 100644 --- a/src/firmware/posix/CMakeLists.txt +++ b/src/firmware/posix/CMakeLists.txt @@ -13,11 +13,25 @@ add_executable(mainapp apps.h ) -target_link_libraries(mainapp - -Wl,--start-group - ${module_libraries} - pthread m rt - -Wl,--end-group - ) +if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL "Clang") + target_link_libraries(mainapp + -Wl,--start-group + ${module_libraries} + pthread m rt + -Wl,--end-group + ) +else() + if (APPLE) + target_link_libraries(mainapp + ${module_libraries} + pthread m + ) + else() + target_link_libraries(mainapp + ${module_libraries} + pthread m rt + ) + endif() +endif() # vim: set noet ft=cmake fenc=utf-8 ff=unix :