From 6a443765a5da48182b9dd4408850b09cfc2f4050 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Wed, 14 Jun 2017 10:02:34 -0400 Subject: [PATCH] cmake only include mavlink where used --- cmake/common/px4_base.cmake | 1 - cmake/posix/px4_impl_posix.cmake | 233 +++++++++--------- cmake/qurt/px4_impl_qurt.cmake | 4 +- src/drivers/pwm_out_rc_in/CMakeLists.txt | 3 + src/drivers/snapdragon_rc_pwm/CMakeLists.txt | 3 + src/modules/mavlink/CMakeLists.txt | 3 + .../mavlink/mavlink_tests/CMakeLists.txt | 3 + src/modules/simulator/CMakeLists.txt | 2 + src/modules/uavcan/CMakeLists.txt | 1 + .../posix/drivers/accelsim/CMakeLists.txt | 3 + .../posix/drivers/airspeedsim/CMakeLists.txt | 3 + .../posix/drivers/barosim/CMakeLists.txt | 3 + .../posix/drivers/gpssim/CMakeLists.txt | 3 + .../posix/drivers/gyrosim/CMakeLists.txt | 3 + 14 files changed, 146 insertions(+), 122 deletions(-) diff --git a/cmake/common/px4_base.cmake b/cmake/common/px4_base.cmake index 450b1ec10e..e13dc023da 100644 --- a/cmake/common/px4_base.cmake +++ b/cmake/common/px4_base.cmake @@ -458,7 +458,6 @@ function(px4_add_common_flags) ${PX4_BINARY_DIR} ${PX4_BINARY_DIR}/src ${PX4_BINARY_DIR}/src/modules - ${PX4_SOURCE_DIR}/mavlink/include/mavlink ${PX4_SOURCE_DIR}/src ${PX4_SOURCE_DIR}/src/drivers/boards/${BOARD} ${PX4_SOURCE_DIR}/src/include diff --git a/cmake/posix/px4_impl_posix.cmake b/cmake/posix/px4_impl_posix.cmake index 2d797137a4..fc74cff6c3 100644 --- a/cmake/posix/px4_impl_posix.cmake +++ b/cmake/posix/px4_impl_posix.cmake @@ -79,6 +79,7 @@ function(px4_posix_generate_builtin_commands) MULTI_VALUE MODULE_LIST REQUIRED MODULE_LIST OUT ARGN ${ARGN}) + set(builtin_apps_string) set(builtin_apps_decl_string) set(command_count 0) @@ -101,10 +102,8 @@ function(px4_posix_generate_builtin_commands) math(EXPR command_count "${command_count}+1") endif() endforeach() - configure_file(${PX4_SOURCE_DIR}/src/platforms/apps.cpp.in - ${OUT}.cpp) - configure_file(${PX4_SOURCE_DIR}/src/platforms/apps.h.in - ${OUT}.h) + configure_file(${PX4_SOURCE_DIR}/src/platforms/apps.cpp.in ${OUT}.cpp) + configure_file(${PX4_SOURCE_DIR}/src/platforms/apps.h.in ${OUT}.h) endfunction() #============================================================================= @@ -168,137 +167,133 @@ function(px4_os_add_flags) LINK_DIRS ${LINK_DIRS} DEFINITIONS ${DEFINITIONS}) - set(PX4_BASE ) set(added_include_dirs - src/modules/systemlib - src/platforms/posix/include - mavlink/include/mavlink - ) + src/platforms/posix/include + ) -# This block sets added_definitions and added_cxx_flags. -if(UNIX AND APPLE) - set(added_definitions - -D__PX4_POSIX - -D__PX4_DARWIN - -D__DF_DARWIN - -Dnoreturn_function=__attribute__\(\(noreturn\)\) - ) - - set(added_cxx_flags) - - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) - message(FATAL_ERROR "PX4 Firmware requires XCode 8 or newer on Mac OS. Version installed on this system: ${CMAKE_CXX_COMPILER_VERSION}") - endif() - - EXEC_PROGRAM(uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION) - STRING(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION}) - # message(STATUS "PX4 Darwin Version: ${DARWIN_VERSION}") - if (DARWIN_VERSION LESS 16) - list(APPEND added_definitions - -DCLOCK_MONOTONIC=1 - -DCLOCK_REALTIME=0 - -D__PX4_APPLE_LEGACY + # This block sets added_definitions and added_cxx_flags. + if(UNIX AND APPLE) + set(added_definitions + -D__PX4_POSIX + -D__PX4_DARWIN + -D__DF_DARWIN + -Dnoreturn_function=__attribute__\(\(noreturn\)\) ) - endif() -else() + set(added_cxx_flags) - set(added_definitions - -D__PX4_POSIX - -D__PX4_LINUX - -D__DF_LINUX - -Dnoreturn_function=__attribute__\(\(noreturn\)\) - ) + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) + message(FATAL_ERROR "PX4 Firmware requires XCode 8 or newer on Mac OS. Version installed on this system: ${CMAKE_CXX_COMPILER_VERSION}") + endif() - # Use -pthread For linux/g++. - set(added_cxx_flags - -pthread - ) + EXEC_PROGRAM(uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION) + STRING(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION}) + # message(STATUS "PX4 Darwin Version: ${DARWIN_VERSION}") + if (DARWIN_VERSION LESS 16) + list(APPEND added_definitions + -DCLOCK_MONOTONIC=1 + -DCLOCK_REALTIME=0 + -D__PX4_APPLE_LEGACY + ) + endif() -endif() - -set(added_exe_linker_flags) - -# This block sets added_c_flags (appends to others). -if ("${BOARD}" STREQUAL "eagle") - - if ("$ENV{HEXAGON_ARM_SYSROOT}" STREQUAL "") - message(FATAL_ERROR "HEXAGON_ARM_SYSROOT not set") else() - set(HEXAGON_ARM_SYSROOT $ENV{HEXAGON_ARM_SYSROOT}) + + set(added_definitions + -D__PX4_POSIX + -D__PX4_LINUX + -D__DF_LINUX + -Dnoreturn_function=__attribute__\(\(noreturn\)\) + ) + + # Use -pthread For linux/g++. + set(added_cxx_flags + -pthread + ) + endif() - # Add the toolchain specific flags - set(added_cflags ${POSIX_CMAKE_C_FLAGS} --sysroot=${HEXAGON_ARM_SYSROOT}) + set(added_exe_linker_flags) - list(APPEND added_cxx_flags - ${POSIX_CMAKE_CXX_FLAGS} - --sysroot=${HEXAGON_ARM_SYSROOT} + # This block sets added_c_flags (appends to others). + if ("${BOARD}" STREQUAL "eagle") + + if ("$ENV{HEXAGON_ARM_SYSROOT}" STREQUAL "") + message(FATAL_ERROR "HEXAGON_ARM_SYSROOT not set") + else() + set(HEXAGON_ARM_SYSROOT $ENV{HEXAGON_ARM_SYSROOT}) + endif() + + # Add the toolchain specific flags + set(added_cflags ${POSIX_CMAKE_C_FLAGS} --sysroot=${HEXAGON_ARM_SYSROOT}) + + list(APPEND added_cxx_flags + ${POSIX_CMAKE_CXX_FLAGS} + --sysroot=${HEXAGON_ARM_SYSROOT} + ) + + list(APPEND added_exe_linker_flags + -Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/usr/lib + -Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/lib + --sysroot=${HEXAGON_ARM_SYSROOT} + ) + # This block sets added_c_flags (appends to others). + elseif ("${BOARD}" STREQUAL "excelsior") + + if ("$ENV{HEXAGON_ARM_SYSROOT}" STREQUAL "") + message(FATAL_ERROR "HEXAGON_ARM_SYSROOT not set") + else() + set(HEXAGON_ARM_SYSROOT $ENV{HEXAGON_ARM_SYSROOT}) + endif() + + # Add the toolchain specific flags + + set(added_cflags ${POSIX_CMAKE_C_FLAGS} --sysroot=${HEXAGON_ARM_SYSROOT}/lib32-apq8096 -mfloat-abi=softfp -mfpu=neon -mthumb-interwork) + + list(APPEND added_cxx_flags + ${POSIX_CMAKE_CXX_FLAGS} + --sysroot=${HEXAGON_ARM_SYSROOT}/lib32-apq8096 -mfloat-abi=softfp -mfpu=neon -mthumb-interwork + + ) + + list(APPEND added_exe_linker_flags + -Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/lib32-apq8096/usr/lib + -Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/lib32-apq8096/lib + + --sysroot=${HEXAGON_ARM_SYSROOT}/lib32-apq8096 -mfloat-abi=softfp -mfpu=neon -mthumb-interwork + + ) + elseif ("${BOARD}" STREQUAL "rpi") + SET(RPI_COMPILE_FLAGS + -mcpu=cortex-a53 + -mfpu=neon + -mfloat-abi=hard ) + LIST(APPEND added_c_flags ${RPI_COMPILE_FLAGS}) + LIST(APPEND added_cxx_flags ${RPI_COMPILE_FLAGS}) - list(APPEND added_exe_linker_flags - -Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/usr/lib - -Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/lib - --sysroot=${HEXAGON_ARM_SYSROOT} - ) -# This block sets added_c_flags (appends to others). -elseif ("${BOARD}" STREQUAL "excelsior") + FIND_PROGRAM(CXX_COMPILER_PATH ${CMAKE_CXX_COMPILER}) - if ("$ENV{HEXAGON_ARM_SYSROOT}" STREQUAL "") - message(FATAL_ERROR "HEXAGON_ARM_SYSROOT not set") - else() - set(HEXAGON_ARM_SYSROOT $ENV{HEXAGON_ARM_SYSROOT}) + GET_FILENAME_COMPONENT(CXX_COMPILER_PATH ${CXX_COMPILER_PATH} DIRECTORY) + GET_FILENAME_COMPONENT(CXX_COMPILER_PATH "${CXX_COMPILER_PATH}/../" ABSOLUTE) + + IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") + set(CLANG_COMPILE_FLAGS + --target=arm-pc-linux-gnueabihf + -ccc-gcc-name arm-linux-gnueabihf-gcc + --sysroot=${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc + -I${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/include/ + ) + + set(added_c_flags ${POSIX_CMAKE_C_FLAGS} ${CLANG_COMPILE_FLAGS}) + list(APPEND added_cxx_flags ${POSIX_CMAKE_CXX_FLAGS} ${CLANG_COMPILE_FLAGS}) + list(APPEND added_exe_linker_flags ${POSIX_CMAKE_EXE_LINKER_FLAGS} ${CLANG_COMPILE_FLAGS} + -B${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/lib + -L${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/lib + ) + ENDIF() endif() - # Add the toolchain specific flags - - set(added_cflags ${POSIX_CMAKE_C_FLAGS} --sysroot=${HEXAGON_ARM_SYSROOT}/lib32-apq8096 -mfloat-abi=softfp -mfpu=neon -mthumb-interwork) - - list(APPEND added_cxx_flags - ${POSIX_CMAKE_CXX_FLAGS} - --sysroot=${HEXAGON_ARM_SYSROOT}/lib32-apq8096 -mfloat-abi=softfp -mfpu=neon -mthumb-interwork - - ) - - list(APPEND added_exe_linker_flags - -Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/lib32-apq8096/usr/lib - -Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/lib32-apq8096/lib - - --sysroot=${HEXAGON_ARM_SYSROOT}/lib32-apq8096 -mfloat-abi=softfp -mfpu=neon -mthumb-interwork - - ) -elseif ("${BOARD}" STREQUAL "rpi") - SET(RPI_COMPILE_FLAGS - -mcpu=cortex-a53 - -mfpu=neon - -mfloat-abi=hard - ) - LIST(APPEND added_c_flags ${RPI_COMPILE_FLAGS}) - LIST(APPEND added_cxx_flags ${RPI_COMPILE_FLAGS}) - - FIND_PROGRAM(CXX_COMPILER_PATH ${CMAKE_CXX_COMPILER}) - - GET_FILENAME_COMPONENT(CXX_COMPILER_PATH ${CXX_COMPILER_PATH} DIRECTORY) - GET_FILENAME_COMPONENT(CXX_COMPILER_PATH "${CXX_COMPILER_PATH}/../" ABSOLUTE) - - IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") - set(CLANG_COMPILE_FLAGS - --target=arm-pc-linux-gnueabihf - -ccc-gcc-name arm-linux-gnueabihf-gcc - --sysroot=${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc - -I${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/include/ - ) - - set(added_c_flags ${POSIX_CMAKE_C_FLAGS} ${CLANG_COMPILE_FLAGS}) - list(APPEND added_cxx_flags ${POSIX_CMAKE_CXX_FLAGS} ${CLANG_COMPILE_FLAGS}) - list(APPEND added_exe_linker_flags ${POSIX_CMAKE_EXE_LINKER_FLAGS} ${CLANG_COMPILE_FLAGS} - -B${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/lib - -L${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/lib - ) - ENDIF() -else() -endif() - # output foreach(var ${inout_vars}) string(TOLOWER ${var} lower_var) diff --git a/cmake/qurt/px4_impl_qurt.cmake b/cmake/qurt/px4_impl_qurt.cmake index 8186eaf8fe..ddd0111a66 100644 --- a/cmake/qurt/px4_impl_qurt.cmake +++ b/cmake/qurt/px4_impl_qurt.cmake @@ -172,11 +172,11 @@ function(px4_os_add_flags) ) set(added_definitions - -D__PX4_QURT + -D__PX4_QURT -D__DF_QURT # For DriverFramework -D__PX4_POSIX -D__QAIC_SKEL_EXPORT=__EXPORT - ) + ) # Add the toolchain specific flags set(added_cflags) diff --git a/src/drivers/pwm_out_rc_in/CMakeLists.txt b/src/drivers/pwm_out_rc_in/CMakeLists.txt index a2eaa03f62..fdb4169dc7 100644 --- a/src/drivers/pwm_out_rc_in/CMakeLists.txt +++ b/src/drivers/pwm_out_rc_in/CMakeLists.txt @@ -30,6 +30,9 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ + +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + px4_add_module( MODULE drivers__pwm_out_rc_in MAIN pwm_out_rc_in diff --git a/src/drivers/snapdragon_rc_pwm/CMakeLists.txt b/src/drivers/snapdragon_rc_pwm/CMakeLists.txt index 41645d8b80..43e2f1808e 100644 --- a/src/drivers/snapdragon_rc_pwm/CMakeLists.txt +++ b/src/drivers/snapdragon_rc_pwm/CMakeLists.txt @@ -30,6 +30,9 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ + +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + px4_add_module( MODULE drivers__snapdragon_rc_pwm MAIN snapdragon_rc_pwm diff --git a/src/modules/mavlink/CMakeLists.txt b/src/modules/mavlink/CMakeLists.txt index 83e0118af3..a647a46eff 100644 --- a/src/modules/mavlink/CMakeLists.txt +++ b/src/modules/mavlink/CMakeLists.txt @@ -30,6 +30,9 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ + +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + px4_add_module( MODULE modules__mavlink MAIN mavlink diff --git a/src/modules/mavlink/mavlink_tests/CMakeLists.txt b/src/modules/mavlink/mavlink_tests/CMakeLists.txt index 35c5a68a81..892768333a 100644 --- a/src/modules/mavlink/mavlink_tests/CMakeLists.txt +++ b/src/modules/mavlink/mavlink_tests/CMakeLists.txt @@ -30,6 +30,9 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ + +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + px4_add_module( MODULE modules__mavlink__mavlink_tests MAIN mavlink_tests diff --git a/src/modules/simulator/CMakeLists.txt b/src/modules/simulator/CMakeLists.txt index da01c4084f..3de83e51a1 100644 --- a/src/modules/simulator/CMakeLists.txt +++ b/src/modules/simulator/CMakeLists.txt @@ -31,6 +31,8 @@ # ############################################################################ +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + option(ENABLE_UART_RC_INPUT "Enable RC Input from UART mavlink connection" OFF) if(ENABLE_UART_RC_INPUT) diff --git a/src/modules/uavcan/CMakeLists.txt b/src/modules/uavcan/CMakeLists.txt index 61d98221cb..921f58324c 100644 --- a/src/modules/uavcan/CMakeLists.txt +++ b/src/modules/uavcan/CMakeLists.txt @@ -48,6 +48,7 @@ add_definitions( add_subdirectory(libuavcan EXCLUDE_FROM_ALL) add_dependencies(uavcan platforms__nuttx) +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) include_directories(libuavcan/libuavcan/include) include_directories(libuavcan/libuavcan/include/dsdlc_generated) include_directories(libuavcan/libuavcan_drivers/posix/include) diff --git a/src/platforms/posix/drivers/accelsim/CMakeLists.txt b/src/platforms/posix/drivers/accelsim/CMakeLists.txt index 253fd3c62d..b279726704 100644 --- a/src/platforms/posix/drivers/accelsim/CMakeLists.txt +++ b/src/platforms/posix/drivers/accelsim/CMakeLists.txt @@ -30,6 +30,9 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ + +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + px4_add_module( MODULE platforms__posix__drivers__accelsim MAIN accelsim diff --git a/src/platforms/posix/drivers/airspeedsim/CMakeLists.txt b/src/platforms/posix/drivers/airspeedsim/CMakeLists.txt index 86aeb175cb..eb180a424a 100644 --- a/src/platforms/posix/drivers/airspeedsim/CMakeLists.txt +++ b/src/platforms/posix/drivers/airspeedsim/CMakeLists.txt @@ -30,6 +30,9 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ + +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + px4_add_module( MODULE platforms__posix__drivers__airspeedsim MAIN measairspeedsim diff --git a/src/platforms/posix/drivers/barosim/CMakeLists.txt b/src/platforms/posix/drivers/barosim/CMakeLists.txt index da3f1ac850..73f07279de 100644 --- a/src/platforms/posix/drivers/barosim/CMakeLists.txt +++ b/src/platforms/posix/drivers/barosim/CMakeLists.txt @@ -30,6 +30,9 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ + +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + px4_add_module( MODULE platforms__posix__drivers__barosim MAIN barosim diff --git a/src/platforms/posix/drivers/gpssim/CMakeLists.txt b/src/platforms/posix/drivers/gpssim/CMakeLists.txt index 8bff75713d..11bcb8c871 100644 --- a/src/platforms/posix/drivers/gpssim/CMakeLists.txt +++ b/src/platforms/posix/drivers/gpssim/CMakeLists.txt @@ -30,6 +30,9 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ + +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + px4_add_module( MODULE platforms__posix__drivers__gpssim MAIN gpssim diff --git a/src/platforms/posix/drivers/gyrosim/CMakeLists.txt b/src/platforms/posix/drivers/gyrosim/CMakeLists.txt index f6b588ffd6..58c99b564b 100644 --- a/src/platforms/posix/drivers/gyrosim/CMakeLists.txt +++ b/src/platforms/posix/drivers/gyrosim/CMakeLists.txt @@ -30,6 +30,9 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ + +include_directories(${PX4_SOURCE_DIR}/mavlink/include/mavlink) + px4_add_module( MODULE platforms__posix__drivers__gyrosim MAIN gyrosim