Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 28 additions & 4 deletions .github/workflows/bsp_buildings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,22 @@ jobs:
legs:
- RTT_BSP: "RT-Thread Online Packages (STM32F407 RT-Spark)"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "stm32/stm32f407-rt-spark"
- RTT_BSP: "RTduino/Arduino Libraries (STM32F412 Nucleo)"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "stm32/stm32f412-st-nucleo"
- RTT_BSP: "RTduino/Arduino Libraries (Raspberry Pico)"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "raspberry-pico"
- RTT_BSP: "others_at32_hc32_ht32"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "qemu-vexpress-a9"
- "airm2m/air32f103"
Expand Down Expand Up @@ -109,8 +113,9 @@ jobs:
- "hc32l136"
- "yichip/yc3121-pos"
- "fm33lc026"
- RTT_BSP: "stm32l4_f0_f1"
- RTT_BSP: "stm32l4_f0_f1(cmake)"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "cmake"
SUB_RTT_BSP:
- "stm32/stm32l4r5-st-nucleo"
- "stm32/stm32l4r9-st-eval"
Expand Down Expand Up @@ -148,6 +153,7 @@ jobs:
- "stm32/stm32f107-uc-eval"
- RTT_BSP: "stm32_f2_f4"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "stm32/stm32f207-st-nucleo"
- "stm32/stm32f302-st-nucleo"
Expand Down Expand Up @@ -175,6 +181,7 @@ jobs:
- "stm32/stm32f469-st-disco"
- RTT_BSP: "stm32_f7_g0_h7_mp15_u5_h5_wb5"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "stm32/stm32f746-st-disco"
- "stm32/stm32f746-st-nucleo"
Expand Down Expand Up @@ -208,6 +215,7 @@ jobs:
- "stm32/stm32wb55-st-nucleo"
- RTT_BSP: "nxp_renesas"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "nxp/lpc/lpc55sxx/lpc55s69_nxp_evk"
- "nxp/lpc/lpc55sxx/lpc55s28_nxp_evk"
Expand Down Expand Up @@ -253,6 +261,7 @@ jobs:
- "xplorer4330/M4"
- RTT_BSP: "nuvoton"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "nuvoton/numaker-pfm-m487"
- "nuvoton/numaker-hmi-ma35d1"
Expand All @@ -268,6 +277,7 @@ jobs:
- "nuvoton/numaker-m2354"
- RTT_BSP: "gd32_n32_apm32"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "gd32/arm/gd32103c-eval"
- "gd32/arm/gd32105c-eval"
Expand Down Expand Up @@ -311,6 +321,7 @@ jobs:
- "apm32/apm32s103vb-miniboard"
- RTT_BSP: "Infineon_TI_microchip"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "Infineon/psoc6-cy8ckit-062S2-43012"
- "Infineon/psoc6-cy8ckit-062-BLE"
Expand Down Expand Up @@ -338,12 +349,14 @@ jobs:
- "maxim/max32660-evsys"
- RTT_BSP: "mips"
RTT_TOOL_CHAIN: "sourcery-mips"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "loongson/ls1bdev"
- "loongson/ls2kdev"
- "loongson/ls1cdev"
- RTT_BSP: "aarch64"
RTT_TOOL_CHAIN: "sourcery-aarch64"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "qemu-virt64-aarch64"
- "raspberry-pi/raspi3-64"
Expand All @@ -352,18 +365,21 @@ jobs:
- "phytium/aarch64"
- RTT_BSP: "riscv-none"
RTT_TOOL_CHAIN: "sourcery-riscv-none-embed"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "k210"
- "wch/risc-v/ch32v307v-r1"
- "wch/risc-v/yd-ch32v307vct6"
- RTT_BSP: "riscv64-unknown"
RTT_TOOL_CHAIN: "sourcery-riscv64-unknown-elf"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "bluetrum/ab32vg1-ab-prougen"
- "bouffalo_lab/bl60x"
- "bouffalo_lab/bl70x"
- RTT_BSP: "hpmicro"
RTT_TOOL_CHAIN: "RISC-V-GCC-RV32"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "hpmicro/hpm6750evkmini"
- "hpmicro/hpm6750evk"
Expand All @@ -376,22 +392,27 @@ jobs:
- "hpmicro/hpm6e00evk"
- RTT_BSP: "llvm-arm"
RTT_TOOL_CHAIN: "llvm-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "stm32/stm32l475-atk-pandora"
- RTT_BSP: "simulator"
RTT_TOOL_CHAIN: "gcc"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "simulator"
- RTT_BSP: "ESP32C3"
RTT_TOOL_CHAIN: "sourcery-riscv32-esp32"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "ESP32_C3"
- RTT_BSP: "i386-unknown"
RTT_TOOL_CHAIN: "sourcery-i386-unknown-elf"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "x86"
- RTT_BSP: "nordic(yml)"
RTT_TOOL_CHAIN: "sourcery-arm"
RTT_BUILD_TOOL: "scons"
SUB_RTT_BSP:
- "nrf5x/nrf51822"
- "nrf5x/nrf52832"
Expand All @@ -406,7 +427,6 @@ jobs:
python-version: 3.8

- name: Install Tools
shell: bash
run: |
wget https://raw.githubusercontent.com/RT-Thread/env/master/install_ubuntu.sh
chmod 777 install_ubuntu.sh
Expand All @@ -417,9 +437,13 @@ jobs:
echo "RTT_CC=gcc" >> $GITHUB_ENV
echo "export PATH=~/.env/tools/scripts:$PATH" > ~/.env/env.sh

- name: Install Cmake build Tools
if: ${{ matrix.legs.RTT_BUILD_TOOL == 'cmake' && success() }}
run: |
sudo apt install cmake ninja-build

- name: Install Arm ToolChains
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'sourcery-arm' && success() }}
shell: bash
run: |
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.3/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
sudo tar xjf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -C /opt
Expand Down Expand Up @@ -503,10 +527,10 @@ jobs:

- name: Bsp Scons Compile
if: ${{ success() }}
shell: bash
env:
RTT_BSP: ${{ matrix.legs.RTT_BSP }}
RTT_TOOL_CHAIN: ${{ matrix.legs.RTT_TOOL_CHAIN }}
RTT_BUILD_TOOL: ${{ matrix.legs.RTT_BUILD_TOOL }}
SRTT_BSP: ${{ join(matrix.legs.SUB_RTT_BSP, ',') }}
run: |
source ~/.env/env.sh
Expand Down
72 changes: 71 additions & 1 deletion tools/ci/bsp_buildings.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,18 @@ def run_cmd(cmd, output_info=True):
return output_str_list, res


def build_bsp(bsp, scons_args=''):
def build_bsp(bsp, scons_args='', build_tool=None):
if build_tool is None:
build_tool = os.getenv('RTT_BUILD_TOOL')
if build_tool == 'scons':
return build_bsp_scons(bsp, scons_args)
elif build_tool =='cmake':
return build_bsp_cmake(bsp, scons_args)
else:
print(f"::error::build tool {build_tool} is not supported")
return False

def build_bsp_scons(bsp, scons_args=''):
"""
build bsp.

Expand Down Expand Up @@ -81,6 +92,65 @@ def build_bsp(bsp, scons_args=''):

return success

def build_bsp_cmake(bsp, scons_args=''):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changelog license 加一下

"""
build bsp using cmake generater.

cd {rtt_root}
scons -C bsp/{bsp} --pyconfig-silent > /dev/null

cd {rtt_root}/bsp/{bsp}
pkgs --update > /dev/null
pkgs --list

scons --target=cmake
mkdir build
cd build
cmake .. -G Ninja
ninja -j{nproc}

cd ..
rm -rf build
rm -rf packages

"""
ext_flags = ''
scons_args = scons_args.strip()
if scons_args == "--strict":
print("scons using strict mode, build it with `-Werror` flag")
ext_flags += '-DCMAKE_COMPILE_WARNING_AS_ERROR=1'
elif scons_args != '':
print(f"this project would be built regularly because `scons_args` is `{scons_args}`")
return build_bsp_scons(bsp, scons_args)
success = True
os.chdir(rtt_root)
if os.path.exists(f"{rtt_root}/bsp/{bsp}/Kconfig"):
os.chdir(rtt_root)
run_cmd(f'scons -C bsp/{bsp} --pyconfig-silent', output_info=False)

os.chdir(f'{rtt_root}/bsp/{bsp}')
run_cmd('pkgs --update', output_info=False)
run_cmd('pkgs --list')

nproc = multiprocessing.cpu_count()

run_cmd('scons --target=cmake')
os.mkdir(f'{rtt_root}/bsp/{bsp}/cmake-build')
os.chdir(f'{rtt_root}/bsp/{bsp}/cmake-build')
run_cmd(f'cmake {ext_flags} .. -G Ninja')
_, res = run_cmd(f'ninja -j{nproc}')

if res != 0:
success = False

os.chdir(f'{rtt_root}/bsp/{bsp}')

build_dir = os.path.join(rtt_root, 'bsp', bsp, 'cmake-build')
shutil.rmtree(build_dir, ignore_errors=True)
pkg_dir = os.path.join(rtt_root, 'bsp', bsp, 'packages')
shutil.rmtree(pkg_dir, ignore_errors=True)

return success

def append_file(source_file, destination_file):
"""
Expand Down