From 4bc44841f6fea727249442aff8eb6f525f1e6aa3 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Sat, 12 Sep 2015 11:25:48 +0200 Subject: [PATCH] CMAKE: Move flags to general location, disable sections for linker on Mac OS --- cmake/common/px4_base.cmake | 16 ++++++++++----- cmake/toolchains/Toolchain-native.cmake | 2 +- src/firmware/posix/CMakeLists.txt | 26 +++++++++++++++++++------ 3 files changed, 32 insertions(+), 12 deletions(-) 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 :