From 12ad7b17ce16fb4ecb4fc643ce94a9c54f9d4633 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Thu, 15 Jul 2021 10:05:37 -0400 Subject: [PATCH] Makefile: add all_variants_@ helper target and consolidate github actions builds --- .github/workflows/compile_nuttx.yml | 122 ++++++++++----------------- Makefile | 15 ++-- boards/cuav/nora/test.cmake | 2 +- boards/px4/fmu-v2/test.cmake | 2 +- boards/px4/fmu-v5x/test.cmake | 10 ++- src/modules/commander/CMakeLists.txt | 1 + 6 files changed, 61 insertions(+), 91 deletions(-) diff --git a/.github/workflows/compile_nuttx.yml b/.github/workflows/compile_nuttx.yml index 0f1d125ef7..6729b8ec48 100644 --- a/.github/workflows/compile_nuttx.yml +++ b/.github/workflows/compile_nuttx.yml @@ -15,80 +15,46 @@ jobs: strategy: matrix: config: [ - airmind_mindpx-v2_default, - ark_can-flow_canbootloader, - ark_can-flow_debug, - ark_can-flow_default, - ark_can-gps_canbootloader, - ark_can-gps_debug, - ark_can-gps_default, - av_x-v1_default, - bitcraze_crazyflie21_default, - bitcraze_crazyflie_default, - cuav_can-gps-v1_canbootloader, - cuav_can-gps-v1_debug, - cuav_can-gps-v1_default, - cuav_nora_default, - cuav_x7pro_default, - cubepilot_cubeorange_default, - cubepilot_cubeorange_test, - cubepilot_cubeyellow_default, - cubepilot_cubeyellow_test, - cubepilot_io-v2_default, - freefly_can-rtk-gps_canbootloader, - freefly_can-rtk-gps_default, - holybro_can-gps-v1_canbootloader, - holybro_can-gps-v1_debug, - holybro_can-gps-v1_default, - holybro_durandal-v1_default, - holybro_kakutef7_default, - holybro_pix32v5_default, - modalai_fc-v1_default, - modalai_fc-v1_rtps, - modalai_fc-v2_default, - mro_ctrl-zero-f7-oem_default, - mro_ctrl-zero-f7_default, - mro_ctrl-zero-h7-oem_default, - mro_ctrl-zero-h7_default, - mro_pixracerpro_default, - mro_x21-777_default, - mro_x21_default, - nxp_fmuk66-e_default, - nxp_fmuk66-e_rtps, - nxp_fmuk66-e_socketcan, - nxp_fmuk66-v3_default, - nxp_fmuk66-v3_rtps, - nxp_fmuk66-v3_socketcan, - nxp_fmurt1062-v1_default, - nxp_ucans32k146_canbootloader, - nxp_ucans32k146_default, - omnibus_f4sd_default, - px4_fmu-v2_default, - px4_fmu-v2_fixedwing, - px4_fmu-v2_multicopter, - px4_fmu-v2_rover, - px4_fmu-v3_default, - px4_fmu-v4_cannode, - px4_fmu-v4_default, - px4_fmu-v4pro_default, - px4_fmu-v5_ctrlalloc, - px4_fmu-v5_debug, - px4_fmu-v5_default, - px4_fmu-v5_fixedwing, - px4_fmu-v5_multicopter, - px4_fmu-v5_optimized, - px4_fmu-v5_rover, - px4_fmu-v5_rtps, - px4_fmu-v5_stackcheck, - px4_fmu-v5_uavcanv0periph, - px4_fmu-v5_uavcanv1, - px4_fmu-v5x_base_phy_DP83848C, - px4_fmu-v5x_default, - px4_fmu-v6u_default, - px4_fmu-v6x_default, - px4_io-v2_default, - spracing_h7extreme_default, - uvify_core_default + airmind_mindpx-v2, + ark_can-flow, + ark_can-gps, + av_x-v1, + bitcraze_crazyflie, + bitcraze_crazyflie21, + cuav_can-gps-v1, + cuav_nora, + cuav_x7pro, + cubepilot_cubeorange, + cubepilot_cubeyellow, + freefly_can-rtk-gps, + holybro_can-gps-v1, + holybro_durandal-v1, + holybro_kakutef7, + holybro_pix32v5, + modalai_fc-v1, + modalai_fc-v2, + mro_ctrl-zero-f7, + mro_ctrl-zero-f7-oem, + mro_ctrl-zero-h7, + mro_ctrl-zero-h7-oem, + mro_pixracerpro, + mro_x21, + mro_x21-777, + nxp_fmuk66-e, + nxp_fmuk66-v3, + nxp_fmurt1062-v1, + nxp_ucans32k146, + omnibus_f4sd, + px4_fmu-v2, + px4_fmu-v3, + px4_fmu-v4, + px4_fmu-v4pro, + px4_fmu-v5, + px4_fmu-v5x, + px4_fmu-v6u, + px4_fmu-v6x, + spracing_h7extreme, + uvify_core ] steps: - uses: actions/checkout@v1 @@ -117,8 +83,8 @@ jobs: ccache -s ccache -z - - name: make ${{matrix.config}} - run: make ${{matrix.config}} + - name: make all_variants_${{matrix.config}} + run: make all_variants_${{matrix.config}} - name: make ${{matrix.config}} bloaty_compileunits run: make ${{matrix.config}} bloaty_compileunits || true - name: make ${{matrix.config}} bloaty_inlines @@ -137,7 +103,7 @@ jobs: run: ccache -s - name: Upload px4 package - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: name: px4_package_${{matrix.config}} - path: build/${{matrix.config}}/${{matrix.config}}.px4 + path: build/**/*.px4 diff --git a/Makefile b/Makefile index 22120975db..bf7f645158 100644 --- a/Makefile +++ b/Makefile @@ -174,6 +174,7 @@ endif # -------------------------------------------------------------------- # describe how to build a cmake config define cmake-build + $(eval CMAKE_ARGS += -DCONFIG=$(1)) @$(eval BUILD_DIR = "$(SRC_DIR)/build/$(1)") @# check if the desired cmake configuration matches the cache then CMAKE_CACHE_CHECK stays empty @$(call cmake-cache-check) @@ -221,16 +222,12 @@ ALL_CONFIG_TARGETS := $(shell find boards -maxdepth 3 -mindepth 3 ! -name '*comm # All targets. $(ALL_CONFIG_TARGETS): - @$(eval PX4_CONFIG = $@) - @$(eval CMAKE_ARGS += -DCONFIG=$(PX4_CONFIG)) - @$(call cmake-build,$(PX4_CONFIG)$(BUILD_DIR_SUFFIX)) + @$(call cmake-build,$@$(BUILD_DIR_SUFFIX)) # Filter for only default targets to allow omiting the "_default" postfix CONFIG_TARGETS_DEFAULT := $(patsubst %_default,%,$(filter %_default,$(ALL_CONFIG_TARGETS))) $(CONFIG_TARGETS_DEFAULT): - @$(eval PX4_CONFIG = $@_default) - @$(eval CMAKE_ARGS += -DCONFIG=$(PX4_CONFIG)) - @$(call cmake-build,$(PX4_CONFIG)$(BUILD_DIR_SUFFIX)) + @$(call cmake-build,$@_default$(BUILD_DIR_SUFFIX)) all_config_targets: $(ALL_CONFIG_TARGETS) all_default_targets: $(CONFIG_TARGETS_DEFAULT) @@ -306,6 +303,11 @@ check_%: @$(MAKE) --no-print-directory $(subst check_,,$@) @echo +all_variants_%: + @echo 'Building all $(subst all_variants_,,$@) variants:' $(filter $(subst all_variants_,,$@)_%, $(ALL_CONFIG_TARGETS)) + @echo + $(foreach a,$(filter $(subst all_variants_,,$@)_%, $(ALL_CONFIG_TARGETS)), $(call cmake-build,$(a)$(BUILD_DIR_SUFFIX))) + uorb_graphs: @./Tools/uorb_graph/create.py --src-path src --exclude-path src/examples --exclude-path src/lib --file Tools/uorb_graph/graph_full @$(MAKE) --no-print-directory px4_fmu-v2_default uorb_graph @@ -360,7 +362,6 @@ format: .PHONY: rostest python_coverage tests: - $(eval CMAKE_ARGS += -DCONFIG=px4_sitl_test) $(eval CMAKE_ARGS += -DTESTFILTER=$(TESTFILTER)) $(eval ARGS += test_results) $(eval ASAN_OPTIONS += color=always:check_initialization_order=1:detect_stack_use_after_return=1) diff --git a/boards/cuav/nora/test.cmake b/boards/cuav/nora/test.cmake index 9c16da950d..abc6403b39 100644 --- a/boards/cuav/nora/test.cmake +++ b/boards/cuav/nora/test.cmake @@ -31,7 +31,7 @@ px4_add_board( gps heater #imu # all available imu drivers - imu/analog_devices/adis16448 + #imu/analog_devices/adis16448 imu/bosch/bmi088 imu/invensense/icm20649 imu/invensense/icm20689 diff --git a/boards/px4/fmu-v2/test.cmake b/boards/px4/fmu-v2/test.cmake index 20c5649d26..492670069d 100644 --- a/boards/px4/fmu-v2/test.cmake +++ b/boards/px4/fmu-v2/test.cmake @@ -45,7 +45,7 @@ px4_add_board( #magnetometer # all available magnetometer drivers magnetometer/hmc5883 #optical_flow # all available optical flow drivers - optical_flow/px4flow + #optical_flow/px4flow #osd #pca9685 #protocol_splitter diff --git a/boards/px4/fmu-v5x/test.cmake b/boards/px4/fmu-v5x/test.cmake index 6360f7be14..31c88c11b6 100644 --- a/boards/px4/fmu-v5x/test.cmake +++ b/boards/px4/fmu-v5x/test.cmake @@ -34,6 +34,7 @@ px4_add_board( imu/bosch/bmi088 imu/invensense/icm20602 imu/invensense/icm20948 # required for ak09916 mag + imu/invensense/icm20649 imu/invensense/icm42688p irlock lights # all available light drivers @@ -41,7 +42,7 @@ px4_add_board( optical_flow # all available optical flow drivers osd pca9685 - pca9685_pwm_out + #pca9685_pwm_out power_monitor/ina226 #protocol_splitter pwm_input @@ -49,9 +50,10 @@ px4_add_board( pwm_out px4io rc_input - roboclaw - rpm + #roboclaw + #rpm safety_button + #smart_battery/batmon telemetry # all available telemetry drivers test_ppm tone_alarm @@ -73,7 +75,7 @@ px4_add_board( land_detector landing_target_estimator load_mon - local_position_estimator + #local_position_estimator logger mavlink mc_att_control diff --git a/src/modules/commander/CMakeLists.txt b/src/modules/commander/CMakeLists.txt index 78e7feb4a5..7b70b6e2fe 100644 --- a/src/modules/commander/CMakeLists.txt +++ b/src/modules/commander/CMakeLists.txt @@ -63,6 +63,7 @@ px4_add_module( ArmAuthorization HealthFlags sensor_calibration + world_magnetic_model ) if(PX4_TESTING)