name: ARM none GCC 10.2.1

on: [push]

env:
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
  BUILD_TYPE: Release

jobs:
  Build-All-ARM-none-GCC10:
    # The CMake configure and build commands are platform agnostic and should work equally
    # well on Windows or Mac.  You can convert this to a matrix build if you need
    # cross-platform coverage.
    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Install ARM none GCC 10.2.1
      shell: bash
      run: | 
       wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
       echo "-----Unpack gcc tarball----"
       tar -xf gcc-arm*
       echo "Done"
       echo ""
       ls -la
       
       echo "${{github.workspace}}/gcc-arm-none-eabi-10-2020-q4-major/bin" >> $GITHUB_PATH
       echo "${{github.workspace}}/gcc-arm-none-eabi-10-2020-q4-major/arm-none-eabi/lib" >> $GITHUB_PATH
       echo "${{github.workspace}}/gcc-arm-none-eabi-10-2020-q4-major/arm-none-eabi/include" >> $GITHUB_PATH
       echo "${{github.workspace}}/gcc-arm-none-eabi-10-2020-q4-major/arm-none-eabi/include/c++/10.2.1" >> $GITHUB_PATH
       echo "${{github.workspace}}/gcc-arm-none-eabi-10-2020-q4-major/arm-none-eabi/include/c++/10.2.1/arm-none-eabi" >> $GITHUB_PATH
       echo "${{github.workspace}}/gcc-arm-none-eabi-10-2020-q4-major/arm-none-eabi/include/c++/10.2.1/backward" >> $GITHUB_PATH
       echo "${{github.workspace}}/gcc-arm-none-eabi-10-2020-q4-major/lib/gcc/arm-none-eabi/10.2.1/include" >> $GITHUB_PATH
       echo "${{github.workspace}}/gcc-arm-none-eabi-10-2020-q4-major/lib/gcc/arm-none-eabi/10.2.1/include-fixed"       >> $GITHUB_PATH
       echo "$PATH"

    #
    #  Cortex A9
    #

    - name: Create Build Environment ARM CA9
      # Some projects don't allow in-source building, so create a separate build directory
      # We'll use this as our working directory for all subsequent commands
      run: cmake -E make_directory ${{github.workspace}}/build_ca9

    - name: Configure CMake
      # Use a bash shell so we can use the same syntax for environment variable
      # access regardless of the host operating system
      shell: bash
      working-directory: ${{github.workspace}}/build_ca9
      # Note the current convention is to use the -S and -B options here to specify source 
      # and build directories, but this is only available with CMake 3.13 and higher.  
      # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
      run: |
       arm-none-eabi-gcc --version
       cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -Darmca9=1

    - name: Build ARM CA9
      working-directory: ${{github.workspace}}/build_ca9
      shell: bash
      # Execute the build.  You can specify a specific target with "--target <NAME>"
      run: cmake --build . --config $BUILD_TYPE -j

    #
    #  Cortex M4
    #

    - name: Create Build Environment ARM CM4
      working-directory: ${{github.workspace}}
      run: cmake -E make_directory ${{github.workspace}}/build_cm4

    - name: Configure CMake
      # Use a bash shell so we can use the same syntax for environment variable
      # access regardless of the host operating system
      shell: bash
      working-directory: ${{github.workspace}}/build_cm4
      # Note the current convention is to use the -S and -B options here to specify source 
      # and build directories, but this is only available with CMake 3.13 and higher.  
      # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
      run: |
       arm-none-eabi-gcc --version
       cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -Dk64frdmevk=1

    - name: Build ARM CM4
      working-directory: ${{github.workspace}}/build_cm4
      shell: bash
      # Execute the build.  You can specify a specific target with "--target <NAME>"
      run: cmake --build . --config $BUILD_TYPE -j
