diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 000000000..599f3c6b6 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,51 @@ +name: Build obc-fixedwing-sitl +on: + push: + branches: + - '*' + pull_request: + branches: + - develop + +jobs: + build: + runs-on: ${{matrix.os}} + strategy: + matrix: + os: [ubuntu-18.04, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: Install Python 3 + uses: actions/setup-python@v1 + with: + python-version: 3.6 + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y libdwarf-dev + sudo apt-get install -y libelf-dev + sudo apt-get install -y libsqlite3-dev + sudo apt-get install -y g++ + sudo apt-get install -y libgazebo9-dev + sudo apt-get install -y libboost-all-dev + sudo apt-get install -y python3-opencv + sudo apt-get install -y libopencv-dev + sudo apt-get install -y libgstreamer-plugins-base1.0-dev + sudo apt-get install -y default-jre + sudo apt-get install -y openjdk-8-jdk + sudo apt-get install -y gcc-multilib + sudo apt-get install -y g++-multilib + sudo apt-get install -y cmake + sudo apt-get install -y libeigen3-dev + sudo apt-get install -y librxtx-java + python3 -m pip install --upgrade pip + pip3 install virtualenv + - name: Checkout submodules + run: | + git submodule update --init --recursive + - name: Build gemini2-sitl + run: | + make python-env + source venv/bin/activate + make gemini2-sitl + diff --git a/Makefile b/Makefile index dee273e03..efa5c687d 100644 --- a/Makefile +++ b/Makefile @@ -144,8 +144,8 @@ quad-workspace:: @echo 'Generating CPD ground tools data.' @make -C build/multirotor/quad/cpd/target ground-tools @echo 'Adding XTCE configuration to registries.' - @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/cpd/target/wh_defs.yaml --overwrite build/multirotor/quad/cpd/target/wh_defs.yaml - @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/ppd/target/wh_defs.yaml --overwrite build/multirotor/quad/ppd/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/cpd/target/wh_defs.yaml --nostdin --overwrite build/multirotor/quad/cpd/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/ppd/target/wh_defs.yaml --nostdin --overwrite build/multirotor/quad/ppd/target/wh_defs.yaml @echo 'Generating combined registry.' @rm -Rf build/multirotor/quad/commander_workspace >/dev/null @mkdir -p build/multirotor/quad/commander_workspace/etc @@ -164,8 +164,8 @@ gemini2-workspace:: @echo 'Generating CPD ground tools data.' @make -C build/fixedwing/gemini2/cpd/target ground-tools @echo 'Adding XTCE configuration to registries.' - @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/cpd/target/wh_defs.yaml --overwrite build/fixedwing/gemini2/cpd/target/wh_defs.yaml - @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/ppd/target/wh_defs.yaml --overwrite build/fixedwing/gemini2/ppd/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/cpd/target/wh_defs.yaml --nostdin --overwrite build/fixedwing/gemini2/cpd/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/ppd/target/wh_defs.yaml --nostdin --overwrite build/fixedwing/gemini2/ppd/target/wh_defs.yaml @echo 'Generating combined registry.' @rm -Rf build/fixedwing/gemini2/commander_workspace >/dev/null @mkdir -p build/fixedwing/gemini2/commander_workspace/etc @@ -187,9 +187,9 @@ workspace-quad-sitl:: @echo 'Generating Simlink ground tools data.' @make -C build/multirotor/quad/simlink/target ground-tools @echo 'Adding XTCE configuration to registries.' - @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/cpd/sitl/target/wh_defs.yaml --overwrite build/multirotor/quad/cpd/sitl/target/wh_defs.yaml - @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/ppd/sitl/target/wh_defs.yaml --overwrite build/multirotor/quad/ppd/sitl/target/wh_defs.yaml - @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/simlink/target/wh_defs.yaml --overwrite build/multirotor/quad/simlink/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/cpd/sitl/target/wh_defs.yaml --nostdin --overwrite build/multirotor/quad/cpd/sitl/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/ppd/sitl/target/wh_defs.yaml --nostdin --overwrite build/multirotor/quad/ppd/sitl/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/multirotor/quad/simlink/target/wh_defs.yaml --nostdin --overwrite build/multirotor/quad/simlink/target/wh_defs.yaml @echo 'Generating combined registry.' @rm -Rf build/multirotor/quad/sitl_commander_workspace >/dev/null @mkdir -p build/multirotor/quad/sitl_commander_workspace/etc @@ -213,9 +213,9 @@ gemini2-sitl-workspace:: @echo 'Generating Simlink ground tools data.' @make -C build/fixedwing/gemini2/simlink/target ground-tools @echo 'Adding XTCE configuration to registries.' - @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/cpd/sitl/target/wh_defs.yaml --overwrite build/fixedwing/gemini2/cpd/sitl/target/wh_defs.yaml - @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/ppd/sitl/target/wh_defs.yaml --overwrite build/fixedwing/gemini2/ppd/sitl/target/wh_defs.yaml - @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/simlink/target/wh_defs.yaml --overwrite build/fixedwing/gemini2/simlink/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/cpd/sitl/target/wh_defs.yaml --nostdin --overwrite build/fixedwing/gemini2/cpd/sitl/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/ppd/sitl/target/wh_defs.yaml --nostdin --overwrite build/fixedwing/gemini2/ppd/sitl/target/wh_defs.yaml + @yaml-merge core/base/tools/commander/xtce_config.yaml build/fixedwing/gemini2/simlink/target/wh_defs.yaml --nostdin --overwrite build/fixedwing/gemini2/simlink/target/wh_defs.yaml @echo 'Generating combined registry.' @rm -Rf build/fixedwing/gemini2/sitl_commander_workspace >/dev/null @mkdir -p build/fixedwing/gemini2/sitl_commander_workspace/etc diff --git a/config/fixedwing/gemini2/simlink/host/CMakeLists.txt b/config/fixedwing/gemini2/simlink/host/CMakeLists.txt index b046e0313..523ee5648 100644 --- a/config/fixedwing/gemini2/simlink/host/CMakeLists.txt +++ b/config/fixedwing/gemini2/simlink/host/CMakeLists.txt @@ -13,15 +13,15 @@ buildliner_build_cfe_host_tools( -#add_subdirectory(${PROJECT_SOURCE_DIR}/tools/sitl_gazebo gazebo) -#set(GAZEBO_PLUGIN_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/gazebo) -#set(GAZEBO_WORLDS_DIR ${PROJECT_SOURCE_DIR}/tools/sitl_gazebo/worlds) -#set(GAZEBO_MODELS_DIR ${PROJECT_SOURCE_DIR}/tools/sitl_gazebo/models) -#set(JMAVSIM_DIR ${PROJECT_SOURCE_DIR}/tools/jMAVSim) -#target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/include/gstreamer-1.0") -#target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/include/glib-2.0") -#target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/lib/x86_64-linux-gnu/glib-2.0/include") -#target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/include") -# -#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/start-gazebo.in ${CMAKE_CURRENT_BINARY_DIR}/start-gazebo @ONLY) -#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/start-jmavsim.in ${CMAKE_CURRENT_BINARY_DIR}/start-jmavsim @ONLY) +add_subdirectory(${PROJECT_SOURCE_DIR}/tools/sitl_gazebo gazebo) +set(GAZEBO_PLUGIN_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/gazebo) +set(GAZEBO_WORLDS_DIR ${PROJECT_SOURCE_DIR}/tools/sitl_gazebo/worlds) +set(GAZEBO_MODELS_DIR ${PROJECT_SOURCE_DIR}/tools/sitl_gazebo/models) +set(JMAVSIM_DIR ${PROJECT_SOURCE_DIR}/tools/jMAVSim) +target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/include/gstreamer-1.0") +target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/include/glib-2.0") +target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/lib/x86_64-linux-gnu/glib-2.0/include") +target_include_directories(gazebo_gst_camera_plugin PRIVATE "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/include") + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/start-gazebo.in ${CMAKE_CURRENT_BINARY_DIR}/start-gazebo @ONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/start-jmavsim.in ${CMAKE_CURRENT_BINARY_DIR}/start-jmavsim @ONLY) diff --git a/core/base/psp/make/build-functions.cmake b/core/base/psp/make/build-functions.cmake index 5a3c87742..465d5289c 100644 --- a/core/base/psp/make/build-functions.cmake +++ b/core/base/psp/make/build-functions.cmake @@ -245,12 +245,12 @@ function(psp_add_executable) target_link_libraries(${TARGET_BINARY} PUBLIC ${PARSED_ARGS_LIBS}) endif() - if(PARSED_ARGS_COMPILE_FLAGS) + if(COMPILE_FLAGS OR PARSED_ARGS_COMPILE_FLAGS) set_target_properties(${TARGET_BINARY_WITHOUT_SYMTAB} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} ${PARSED_ARGS_COMPILE_FLAGS}") set_target_properties(${TARGET_BINARY} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} ${PARSED_ARGS_COMPILE_FLAGS}") endif() - - if(PARSED_ARGS_LINK_FLAGS) + + if(LINK_FLAGS OR PARSED_ARGS_LINK_FLAGS) set_target_properties(${TARGET_BINARY_WITHOUT_SYMTAB} PROPERTIES LINK_FLAGS "${LINK_FLAGS} ${PARSED_ARGS_LINK_FLAGS}") set_target_properties(${TARGET_BINARY} PROPERTIES LINK_FLAGS "${LINK_FLAGS} ${PARSED_ARGS_LINK_FLAGS}") endif() @@ -281,17 +281,6 @@ function(psp_add_executable) set_target_properties(${TARGET_BINARY_WITHOUT_SYMTAB} PROPERTIES ENABLE_EXPORTS TRUE) set_target_properties(${TARGET_BINARY} PROPERTIES ENABLE_EXPORTS TRUE) - # Add in the various flags also supplied by the PSP. - if(COMPILE_FLAGS) - set_target_properties(${TARGET_BINARY_WITHOUT_SYMTAB} PROPERTIES COMPILE_FLAGS ${COMPILE_FLAGS}) - set_target_properties(${TARGET_BINARY} PROPERTIES COMPILE_FLAGS ${COMPILE_FLAGS}) - endif() - if(LINK_FLAGS) - set_target_properties(${TARGET_BINARY_WITHOUT_SYMTAB} PROPERTIES LINK_FLAGS ${LINK_FLAGS}) - set_target_properties(${TARGET_BINARY_WITH_SYMTAB} PROPERTIES LINK_FLAGS ${LINK_FLAGS}) - set_target_properties(${TARGET_BINARY} PROPERTIES LINK_FLAGS ${LINK_FLAGS}) - endif() - # Link in the various libraries specified by the PSP target_link_libraries(${TARGET_BINARY_WITHOUT_SYMTAB} PUBLIC ${LINK_FLAGS} ${PSP_LIBS}) target_link_libraries(${TARGET_BINARY} PUBLIC ${LINK_FLAGS} ${PSP_LIBS}) @@ -718,6 +707,7 @@ function(psp_buildliner_add_app_unit_test) ) if(${GCOV_SUPPORTED}) + psp_add_executable(${PARSED_ARGS_TARGET}-gcov EXCLUDE_FROM_ALL diff --git a/core/base/tools/ci/generate_coverage.sh b/core/base/tools/ci/generate_coverage.sh new file mode 100755 index 000000000..77ca6be64 --- /dev/null +++ b/core/base/tools/ci/generate_coverage.sh @@ -0,0 +1,8 @@ +#!/bin/bash +#Example: software/airliner/public/core/base/tools/ci/generate_coverage.sh software/airliner/public/build/fixedwing/gemini2/cpd/sitl/target +DIR="$1" +lcov -c -i -b $DIR -d $DIR -o Coverage.baseline +lcov -c -d $DIR -b $DIR -o Coverage.out +lcov -a Coverage.baseline -a Coverage.out -o Coverage.txt +lcov -r Coverage.txt /usr/include/\* -o Coverage.txt +genhtml Coverage.txt -o HTML