diff --git a/.ci/Jenkinsfile-SITL_tests b/.ci/Jenkinsfile-SITL_tests index 25a3aafb9c..2d092fec86 100644 --- a/.ci/Jenkinsfile-SITL_tests +++ b/.ci/Jenkinsfile-SITL_tests @@ -30,7 +30,7 @@ pipeline { sh('make distclean') sh "ccache -z" sh "git fetch --tags" - sh('make posix_sitl_default') + sh('make px4sitl_default') sh "ccache -s" } } @@ -47,8 +47,8 @@ pipeline { stage('unit tests') { steps { sh 'export' - sh 'make posix_sitl_default test_results_junit' - junit 'build/posix_sitl_default/JUnitTestResults.xml' + sh 'make px4sitl_default test_results_junit' + junit 'build/px4sitl_default/JUnitTestResults.xml' } } @@ -56,7 +56,7 @@ pipeline { steps { sh 'export' sh "ccache -z" - sh('make posix_sitl_default sitl_gazebo') + sh('make px4sitl_default sitl_gazebo') sh "ccache -s" } } @@ -64,8 +64,8 @@ pipeline { stage('package') { steps { sh 'export' - sh('make posix_sitl_default package') - stash(name: "px4_sitl_package", includes: "build/posix_sitl_default/*.bz2") + sh('make px4sitl_default package') + stash(name: "px4_sitl_package", includes: "build/px4sitl_default/*.bz2") } } @@ -176,7 +176,7 @@ pipeline { steps { sh 'export' sh 'make distclean' - sh 'make posix_sitl_default test_results_junit' + sh 'make px4sitl_default test_results_junit' withCredentials([string(credentialsId: 'FIRMWARE_CODECOV_TOKEN', variable: 'CODECOV_TOKEN')]) { sh 'curl -s https://codecov.io/bash | bash -s - -F unittest' } @@ -221,11 +221,11 @@ def createTestNode(Map test_def) { } unstash('px4_sitl_package') - sh('tar -xjpvf build/posix_sitl_default/px4-posix_sitl_default*.bz2') + sh('tar -xjpvf build/px4sitl_default/px4-px4sitl_default*.bz2') // run test try { - sh('px4-posix_sitl_default*/px4/test/rostest_px4_run.sh ' + test_def.test + ' mission:=' + test_def.mission + ' vehicle:=' + test_def.vehicle) + sh('px4-px4sitl_default*/px4/test/rostest_px4_run.sh ' + test_def.test + ' mission:=' + test_def.mission + ' vehicle:=' + test_def.vehicle) } catch (exc) { // save all test artifacts for debugging @@ -240,7 +240,7 @@ def createTestNode(Map test_def) { // process log data (with python code coverage) try { - sh('coverage run -p px4-posix_sitl_default*/px4/Tools/ecl_ekf/process_logdata_ekf.py .ros/log/*/*.ulg') + sh('coverage run -p px4-px4sitl_default*/px4/Tools/ecl_ekf/process_logdata_ekf.py .ros/log/*/*.ulg') } catch (exc) { // save log analysis artifacts for debugging archiveArtifacts(allowEmptyArchive: false, artifacts: '.ros/**/*.pdf, .ros/**/*.csv') @@ -249,7 +249,7 @@ def createTestNode(Map test_def) { } // upload log to flight review (https://logs.px4.io/) with python code coverage - sh('coverage run -p px4-posix_sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg') + sh('coverage run -p px4-px4sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg') // upload python code coverage to codecov.io sh 'curl -s https://codecov.io/bash | bash -s - -X gcov -F sitl_python_${STAGE_NAME}' @@ -257,7 +257,7 @@ def createTestNode(Map test_def) { } else { // non code coverage // process ekf log data try { - sh('px4-posix_sitl_default*/px4/Tools/ecl_ekf/process_logdata_ekf.py .ros/log/*/*.ulg') + sh('px4-px4sitl_default*/px4/Tools/ecl_ekf/process_logdata_ekf.py .ros/log/*/*.ulg') } catch (exc) { // save log analysis artifacts for debugging archiveArtifacts(allowEmptyArchive: false, artifacts: '.ros/**/*.pdf, .ros/**/*.csv') @@ -266,7 +266,7 @@ def createTestNode(Map test_def) { } // upload log to flight review (https://logs.px4.io/) - sh('px4-posix_sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg') + sh('px4-px4sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg') } if (!test_ok) { diff --git a/.ci/Jenkinsfile-compile b/.ci/Jenkinsfile-compile index a0c90fdc89..63d86451a3 100644 --- a/.ci/Jenkinsfile-compile +++ b/.ci/Jenkinsfile-compile @@ -18,8 +18,8 @@ pipeline { snapdragon: "lorenzmeier/px4-dev-snapdragon:2018-09-12" ] - // MAC OSX posix_sitl_default - build_nodes["posix_sitl_default (OSX)"] = { + // MAC OSX px4sitl_default + build_nodes["px4sitl_default (OSX)"] = { node("mac") { withEnv(["CCACHE_BASEDIR=${pwd()}"]) { stage("sitl (OSX)") { @@ -28,7 +28,7 @@ pipeline { sh('export') sh('make distclean') sh('ccache -z') - sh('make posix_sitl_default') + sh('make px4sitl_default') sh('ccache -s') sh('make tests') } @@ -43,7 +43,7 @@ pipeline { } } - // MAC OSX nuttx_px4fmu-v4pro_default + // MAC OSX px4fmu-v4pro_default build_nodes["px4fmu-v4pro_default (OSX)"] = { node("mac") { withEnv(["CCACHE_BASEDIR=${pwd()}"]) { @@ -53,7 +53,7 @@ pipeline { sh('export') sh('make distclean') sh('ccache -z') - sh('make nuttx_px4fmu-v4pro_default') + sh('make px4fmu-v4pro_default') sh('ccache -s') } catch (exc) { @@ -69,46 +69,46 @@ pipeline { // docker builds: def arch_builds = [ - target: ["posix_sitl_default"], + target: ["px4sitl_default"], image: docker_images.arch, archive: false ] def armhf_builds = [ - target: ["posix_ocpoc_ubuntu"], + target: ["aerotennaocpoc_ubuntu"], image: docker_images.armhf, archive: false ] def base_builds = [ - target: ["posix_sitl_rtps"], + target: ["px4sitl_rtps"], image: docker_images.base, archive: false ] def nuttx_builds_archive = [ target: ["px4fmu-v2_default", "px4fmu-v3_default", "px4fmu-v4_default", "px4fmu-v4pro_default", "px4fmu-v5_default", "px4fmu-v5_rtps", "px4fmu-v5_stackcheck", - "aerofc-v1_default", "aerocore2_default", "auav-x21_default", "av-x-v1_default", "crazyflie_default", "mindpx-v2_default", - "nxphlite-v3_default", "omnibus-f4sd_default"], + "intelaerofc-v1_default", "gumstixaerocore2_default", "auavx21_default", "avx-v1_default", "bitcrazecrazyflie_default", "airmindmindpx-v2_default", + "nxphlite-v3_default", "omnibusf4sd_default"], image: docker_images.nuttx, archive: true ] def nuttx_builds_other = [ - target: ["px4-same70xplained-v1_default", "px4-stm32f4discovery_default", "px4cannode-v1_default", - "px4esc-v1_default", "px4nucleoF767ZI-v1_default", "s2740vc-v1_default"], + target: ["atmelsame70xplained_default", "stm32f4discovery_default", "px4cannode-v1_default", + "px4esc-v1_default", "stmnucleo-F767ZI_default", "thiemars2740vc-v1_default"], image: docker_images.nuttx, archive: false ] def rpi_builds = [ - target: ["posix_rpi_cross", "posix_bebop_default"], + target: ["emlidnavio2_cross", "parrotbebop_default"], image: docker_images.rpi, archive: false ] def snapdragon_builds = [ - target: ["qurt_eagle_default", "posix_eagle_default"], + target: ["atlflighteagle_qurt-default", "atlflighteagle_default"], image: docker_images.snapdragon, archive: false ] diff --git a/.ci/Jenkinsfile-hardware b/.ci/Jenkinsfile-hardware index 5825efe7c7..e95c743d4b 100644 --- a/.ci/Jenkinsfile-hardware +++ b/.ci/Jenkinsfile-hardware @@ -18,10 +18,10 @@ pipeline { sh 'make distclean' sh 'ccache -z' sh 'git fetch --tags' - sh 'make nuttx_px4fmu-v2_test' + sh 'make px4fmu-v2_test' sh 'make sizes' sh 'ccache -s' - stash includes: 'build/nuttx_px4fmu-v2_test/nuttx_px4fmu-v2_test.elf', name: 'px4fmu-v2_test' + stash includes: 'build/px4fmu-v2_test/px4fmu-v2_test.elf', name: 'px4fmu-v2_test' stash includes: 'Tools/HIL/monitor_firmware_upload.py, Tools/HIL/run_tests.py', name: 'scripts-px4fmu-v2' } post { @@ -43,10 +43,10 @@ pipeline { sh 'make distclean' sh 'ccache -z' sh 'git fetch --tags' - sh 'make nuttx_px4fmu-v4_stackcheck' + sh 'make px4fmu-v4_stackcheck' sh 'make sizes' sh 'ccache -s' - stash includes: 'build/nuttx_px4fmu-v4_stackcheck/nuttx_px4fmu-v4_stackcheck.elf', name: 'px4fmu-v4_stackcheck' + stash includes: 'build/px4fmu-v4_stackcheck/px4fmu-v4_stackcheck.elf', name: 'px4fmu-v4_stackcheck' stash includes: 'Tools/HIL/monitor_firmware_upload.py, Tools/HIL/run_tests.py', name: 'scripts-px4fmu-v4' } post { @@ -82,7 +82,7 @@ pipeline { -ex "attach 1" \ -ex "load" \ -ex "kill" \ - build/nuttx_px4fmu-v2_test/nuttx_px4fmu-v2_test.elf + build/px4fmu-v2_test/px4fmu-v2_test.elf ''' sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02` --baudrate 57600' sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02`' @@ -116,7 +116,7 @@ pipeline { -ex "attach 1" \ -ex "load" \ -ex "kill" \ - build/nuttx_px4fmu-v4_stackcheck/nuttx_px4fmu-v4_stackcheck.elf + build/px4fmu-v4_stackcheck/px4fmu-v4_stackcheck.elf ''' sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02` --baudrate 57600' sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02`' diff --git a/.gitmodules b/.gitmodules index 20028c8155..112c186ef5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -34,8 +34,8 @@ path = src/lib/ecl url = https://github.com/PX4/ecl.git branch = master -[submodule "cmake/cmake_hexagon"] - path = cmake/cmake_hexagon +[submodule "boards/atlflight/cmake_hexagon"] + path = boards/atlflight/cmake_hexagon url = https://github.com/ATLFlight/cmake_hexagon.git branch = master [submodule "src/drivers/gps/devices"] diff --git a/.travis.yml b/.travis.yml index fcc1e11f63..53399ae06e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,5 +28,5 @@ addons: description: "Build submitted via Travis CI" notification_email: ci@px4.io build_command_prepend: "make distclean" - build_command: "make posix_sitl_default" + build_command: "make px4sitl_default" branch_pattern: coverity_scan diff --git a/CMakeLists.txt b/CMakeLists.txt index b1e00ca630..fce4003d0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ # * Common functions should be included in px_base.cmake. # # * OS/ board specific fucntions should be include in -# px_impl_${OS}.cmake or px4_impl_${OS}_${BOARD}.cmake. +# px_impl_${PX4_PLATFORM}.cmake or px4_impl_${PX4_PLATFORM}_${PX4_BOARD}.cmake. # # Formatting # --------------------------------------------------------------------------- @@ -92,9 +92,9 @@ # --------------------------------------------------------------------------- # # * If referencing a string variable, don't put it in quotes. -# Don't do "${OS}" STREQUAL "posix", -# instead type ${OS} STREQUAL "posix". This will throw an -# error when ${OS} is not defined instead of silently +# Don't do "${PX4_PLATFORM}" STREQUAL "posix", +# instead type ${PX4_PLATFORM} STREQUAL "posix". This will throw an +# error when ${PX4_PLATFORM} is not defined instead of silently # evaluating to false. # #============================================================================= @@ -104,12 +104,12 @@ cmake_minimum_required(VERSION 3.2 FATAL_ERROR) set(PX4_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") set(PX4_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}") -list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/cmake") +list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/cmake) #============================================================================= # git # -include(common/px4_git) +include(px4_git) execute_process( COMMAND git describe --always --tags @@ -132,13 +132,90 @@ define_property(GLOBAL PROPERTY PX4_MODULE_PATHS # configuration # -set(CONFIG "posix_sitl_default" CACHE STRING "desired configuration") +set(CONFIG "px4sitl_default" CACHE STRING "desired configuration") -string(REPLACE "_" ";" config_args ${CONFIG}) -list(GET config_args 0 OS) -list(GET config_args 1 BOARD) -list(GET config_args 2 LABEL) +set(config_module_list) +set(config_df_driver_list) +# find PX4 config +# look for in tree board config that matches CONFIG input +if(NOT PX4_CONFIG_FILE) + + file(GLOB_RECURSE board_configs + RELATIVE "${PX4_SOURCE_DIR}/boards" + "boards/*.cmake" + ) + + set(PX4_CONFIGS ${board_configs} CACHE STRINGS "PX4 board configs" FORCE) + + foreach(filename ${board_configs}) + # parse input CONFIG into components to match with existing in tree configs + # the platform prefix (eg nuttx_) is historical, and removed if present + string(REPLACE ".cmake" "" filename_stripped ${filename}) + string(REPLACE "/" ";" config ${filename_stripped}) + list(LENGTH config config_len) + + if(${config_len} EQUAL 3) + + + list(GET config 0 vendor) + list(GET config 1 model) + list(GET config 2 label) + + set(board "${vendor}${model}") + + # __