CMake: Add test for multiple-executable support

Add a test to build two executables in two directories under a single
project.
pull/14953/head
Lingkai Dong 2021-07-22 14:30:40 +01:00
parent 91b8186615
commit 23d659ef9e
6 changed files with 84 additions and 0 deletions

View File

@ -0,0 +1,28 @@
name: test building multiple executables with CMake
on: [pull_request]
jobs:
multiple-executables-example:
runs-on: ubuntu-latest
container: mbedos/mbed-os-env:latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build the multiple_executables example
run: |
mbedtools compile \
-t GCC_ARM \
-m ARM_MUSCA_S1 \
--program-path tools/cmake/tests/multiple_executables/ \
--mbed-os-path .
- name: Verify the post-build command has run successfully on each image
run: |
APP1=tools/cmake/tests/multiple_executables/cmake_build/ARM_MUSCA_S1/develop/GCC_ARM/app1/app1.bin
APP2=tools/cmake/tests/multiple_executables/cmake_build/ARM_MUSCA_S1/develop/GCC_ARM/app2/app2.bin
BOOTLOADER=targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin
BOOTLOADER_SIZE=`du -b targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin | cut -f1`
cmp -n $BOOTLOADER_SIZE $APP1 $BOOTLOADER
cmp -n $BOOTLOADER_SIZE $APP2 $BOOTLOADER

View File

@ -0,0 +1,16 @@
# Copyright (c) 2021 Arm Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
cmake_minimum_required(VERSION 3.19.0)
set(MBED_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../..")
set(MBED_CONFIG_PATH "${CMAKE_CURRENT_BINARY_DIR}")
include("${MBED_PATH}/tools/cmake/app.cmake")
project(multiple_executables)
add_subdirectory("${MBED_PATH}" "mbed-os-build")
add_subdirectory(app1)
add_subdirectory(app2)

View File

@ -0,0 +1,8 @@
# Copyright (c) 2021 Arm Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
add_executable(app1 main.cpp)
target_link_libraries(app1 mbed-os)
mbed_set_post_build(app1)

View File

@ -0,0 +1,12 @@
/*
* Copyright (c) 2021 Arm Limited
* SPDX-License-Identifier: Apache-2.0
*/
#include "mbed.h"
int main()
{
printf("Application 1\n");
return 0;
}

View File

@ -0,0 +1,8 @@
# Copyright (c) 2021 Arm Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
add_executable(app2 main.cpp)
target_link_libraries(app2 mbed-os)
mbed_set_post_build(app2)

View File

@ -0,0 +1,12 @@
/*
* Copyright (c) 2021 Arm Limited
* SPDX-License-Identifier: Apache-2.0
*/
#include "mbed.h"
int main()
{
printf("Application 2\n");
return 0;
}