From 23fb54ebfb0526459e54f178c8f20e77046404ec Mon Sep 17 00:00:00 2001 From: Brendan Bartels <bbartels@iastate.edu> Date: Sat, 25 Feb 2017 12:58:05 -0600 Subject: [PATCH] quad: add script to build Xilinx project from command line This makes building the project on CI trivial, so also added to CI. --- .gitlab-ci.yml | 4 +-- ci-build.sh | 7 +++++ test-ci.sh => ci-test.sh | 2 +- quad/ci-build.sh | 8 +++++ quad/{test-ci.sh => ci-test.sh} | 2 ++ quad/sw/modular_quad_pid/.build_app.tcl | 3 ++ quad/sw/modular_quad_pid/.build_bsp.tcl | 3 ++ quad/sw/modular_quad_pid/.create_bsp.tcl | 3 ++ quad/sw/modular_quad_pid/build.sh | 40 ++++++++++++++++++++++++ 9 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 ci-build.sh rename test-ci.sh => ci-test.sh (66%) create mode 100644 quad/ci-build.sh rename quad/{test-ci.sh => ci-test.sh} (81%) create mode 100644 quad/sw/modular_quad_pid/.build_app.tcl create mode 100644 quad/sw/modular_quad_pid/.build_bsp.tcl create mode 100644 quad/sw/modular_quad_pid/.create_bsp.tcl create mode 100644 quad/sw/modular_quad_pid/build.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e53db85b..13bc283c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,10 @@ build: stage: build script: - - echo "It works." + - bash ci-build.sh # run tests using the binary built before test: stage: test script: - - bash test-ci.sh + - bash ci-test.sh diff --git a/ci-build.sh b/ci-build.sh new file mode 100644 index 000000000..af6f06ee2 --- /dev/null +++ b/ci-build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +PROJECT_ROOT=$(pwd) +export PROJECT_ROOT + +# Quad +bash quad/ci-build.sh || exit 1 diff --git a/test-ci.sh b/ci-test.sh similarity index 66% rename from test-ci.sh rename to ci-test.sh index 8278c9352..5542a1b99 100644 --- a/test-ci.sh +++ b/ci-test.sh @@ -4,4 +4,4 @@ PROJECT_ROOT=$(pwd) export PROJECT_ROOT # Quad -bash quad/test-ci.sh || exit 1 +bash quad/ci-test.sh || exit 1 diff --git a/quad/ci-build.sh b/quad/ci-build.sh new file mode 100644 index 000000000..36ff958b1 --- /dev/null +++ b/quad/ci-build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +QUAD_ROOT=$PROJECT_ROOT/quad +export QUAD_ROOT + +# Build Quad code +cd $QUAD_ROOT/sw/modular_quad_pid/ +bash build.sh || exit 1 diff --git a/quad/test-ci.sh b/quad/ci-test.sh similarity index 81% rename from quad/test-ci.sh rename to quad/ci-test.sh index c35802b39..bb2cc1666 100644 --- a/quad/test-ci.sh +++ b/quad/ci-test.sh @@ -3,9 +3,11 @@ QUAD_ROOT=$PROJECT_ROOT/quad export QUAD_ROOT +# Build Test Library cd $QUAD_ROOT/lib/test make || exit 1 +# Test UART buffer cd $QUAD_ROOT/sw/modular_quad_pid/test make || exit 1 ./test_uart_buff || exit 1 diff --git a/quad/sw/modular_quad_pid/.build_app.tcl b/quad/sw/modular_quad_pid/.build_app.tcl new file mode 100644 index 000000000..ae51135bb --- /dev/null +++ b/quad/sw/modular_quad_pid/.build_app.tcl @@ -0,0 +1,3 @@ +cd .. +sdk set_workspace . +sdk build_project -type app -name modular_quad_pid diff --git a/quad/sw/modular_quad_pid/.build_bsp.tcl b/quad/sw/modular_quad_pid/.build_bsp.tcl new file mode 100644 index 000000000..6188f060a --- /dev/null +++ b/quad/sw/modular_quad_pid/.build_bsp.tcl @@ -0,0 +1,3 @@ +cd .. +sdk set_workspace . +sdk build_project -type bsp -name system_bsp diff --git a/quad/sw/modular_quad_pid/.create_bsp.tcl b/quad/sw/modular_quad_pid/.create_bsp.tcl new file mode 100644 index 000000000..48668ef35 --- /dev/null +++ b/quad/sw/modular_quad_pid/.create_bsp.tcl @@ -0,0 +1,3 @@ +cd .. +sdk set_workspace . +sdk create_bsp_project -name system_bsp -hwproject system_hw_platform -proc ps7_cortexa9_0 -os standalone diff --git a/quad/sw/modular_quad_pid/build.sh b/quad/sw/modular_quad_pid/build.sh new file mode 100644 index 000000000..16f728e1c --- /dev/null +++ b/quad/sw/modular_quad_pid/build.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +source /remote/Xilinx/2015.4/SDK/2015.4/settings64.sh + +echo "Building modular_quad_pid" + +if [ ! -d ../.metadata ]; then + # Haven't configured XSDK environment yet. Do that now + + ECLIPSE=/remote/Xilinx/2015.4/SDK/2015.4/eclipse/lnx64.o/eclipse + VM=/remote/Xilinx/2015.4/SDK/2015.4/tps/lnx64/jre/bin + WSPACE=$(dirname $0)/.. + HW=$WSPACE/system_hw_platform + BSP=$WSPACE/system_bsp + APP=$WSPACE/modular_quad_pid + + echo "Setting up dependencies for modular_quad_pid" + + # Import the system_hw_platform into the workspace + $ECLIPSE -vm $VM -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild \ + -import $HW \ + -data $WSPACE \ + -vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole || exit 1 + + # Create the BSP + xsct .create_bsp.tcl || exit 1 + + # Import the system_bsp and modular_quad_pid into workspace + $ECLIPSE -vm $VM -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild \ + -import $BSP \ + -import $APP \ + -data $WSPACE \ + -vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole || exit 1 + + # Build the BSP + xsct .build_bsp.tcl || exit 1 + +fi + +xsct .build_app.tcl || exit 1 -- GitLab