From c3e1b72c7f358986d01b5d754689d47931c267d0 Mon Sep 17 00:00:00 2001 From: Evan Nemerson Date: Fri, 20 Sep 2024 15:44:40 -0400 Subject: [PATCH] ci: add MSVC build on GitHub Actions --- .github/workflows/ci.yml | 850 ++++++++++++++++++++------------------- test/Makefile.msvc | 4 +- 2 files changed, 434 insertions(+), 420 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f38ba0..8b71780 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,442 +13,456 @@ concurrency: cancel-in-progress: true jobs: - check-generated-files: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Regenerate files - working-directory: test - run: make maintainer-clean && make generate ECHO="$(which echo)" - - name: Check for changes - run: git diff --exit-code + # check-generated-files: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: Regenerate files + # working-directory: test + # run: make maintainer-clean && make generate ECHO="$(which echo)" + # - name: Check for changes + # run: git diff --exit-code - armclang: - runs-on: ubuntu-${{ matrix.distro }} - strategy: - matrix: - include: - # https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Linux#Software-Download - - version: "24.04" - distro: "22.04" - steps: - - uses: actions/checkout@v4 - - uses: uraimo/run-on-arch-action@v2 - name: Run commands - with: - arch: aarch64 - distro: ubuntu${{ matrix.distro }} - install: | - apt-get update - apt-get install -y curl python3 libc6-dev make gcc g++ - mkdir /tmp/armclang-installer - cd /tmp/armclang-installer - curl -s "https://developer.arm.com/-/cdn-downloads/permalink/Arm-Compiler-for-Linux/Version_${{ matrix.version }}/arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}_aarch64.tar" | tar xv - ./arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}/arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}.sh --accept - env: | - CC: /opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin/armclang - CXX: /opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin/armclang++ - run: | - cd test - make + # armclang: + # runs-on: ubuntu-${{ matrix.distro }} + # strategy: + # matrix: + # include: + # # https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Linux#Software-Download + # - version: "24.04" + # distro: "22.04" + # steps: + # - uses: actions/checkout@v4 + # - uses: uraimo/run-on-arch-action@v2 + # name: Run commands + # with: + # arch: aarch64 + # distro: ubuntu${{ matrix.distro }} + # install: | + # apt-get update + # apt-get install -y curl python3 libc6-dev make gcc g++ + # mkdir /tmp/armclang-installer + # cd /tmp/armclang-installer + # curl -s "https://developer.arm.com/-/cdn-downloads/permalink/Arm-Compiler-for-Linux/Version_${{ matrix.version }}/arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}_aarch64.tar" | tar xv + # ./arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}/arm-compiler-for-linux_${{ matrix.version }}_Ubuntu-${{ matrix.distro }}.sh --accept + # env: | + # CC: /opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin/armclang + # CXX: /opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin/armclang++ + # run: | + # cd test + # make - clang: - runs-on: ubuntu-${{ matrix.distro }} - strategy: - matrix: - include: - # Previous versions will no longer run on GitHub, but can be - # tested in Docker. Here are the versions which are available: - # - # - Ubuntu 14.04: 3.3 - 3.9 - # - Ubuntu 16.04: 3.5 - 6.0 - # - Ubuntu 18.04: 3.9 - 10 + # clang: + # runs-on: ubuntu-${{ matrix.distro }} + # strategy: + # matrix: + # include: + # # Previous versions will no longer run on GitHub, but can be + # # tested in Docker. Here are the versions which are available: + # # + # # - Ubuntu 14.04: 3.3 - 3.9 + # # - Ubuntu 16.04: 3.5 - 6.0 + # # - Ubuntu 18.04: 3.9 - 10 - - version: "6.0" - distro: "20.04" - - version: "7" - distro: "20.04" - - version: "8" - distro: "20.04" - - version: "9" - distro: "20.04" - - version: "10" - distro: "20.04" - # - version: "11" - # distro: "20.04" - # - version: "12" - # distro: "20.04" + # - version: "6.0" + # distro: "20.04" + # - version: "7" + # distro: "20.04" + # - version: "8" + # distro: "20.04" + # - version: "9" + # distro: "20.04" + # - version: "10" + # distro: "20.04" + # # - version: "11" + # # distro: "20.04" + # # - version: "12" + # # distro: "20.04" - - version: "11" - distro: "22.04" - - version: "12" - distro: "22.04" - - version: "13" - distro: "22.04" - # - version: "14" - # distro: "22.04" - # - version: "15" - # distro: "22.04" + # - version: "11" + # distro: "22.04" + # - version: "12" + # distro: "22.04" + # - version: "13" + # distro: "22.04" + # # - version: "14" + # # distro: "22.04" + # # - version: "15" + # # distro: "22.04" - - version: "14" - distro: "24.04" - - version: "15" - distro: "24.04" - - version: "16" - distro: "24.04" - - version: "17" - distro: "24.04" - - version: "18" - distro: "24.04" - steps: - - uses: actions/checkout@v4 - - name: Install Clang ${{ matrix.version }} - run: | - sudo apt-get update - sudo apt-get -y install clang-${{ matrix.version }} - - name: Compile - env: - CC: clang-${{ matrix.version }} - CXX: clang++-${{ matrix.version }} - run: make - working-directory: test + # - version: "14" + # distro: "24.04" + # - version: "15" + # distro: "24.04" + # - version: "16" + # distro: "24.04" + # - version: "17" + # distro: "24.04" + # - version: "18" + # distro: "24.04" + # steps: + # - uses: actions/checkout@v4 + # - name: Install Clang ${{ matrix.version }} + # run: | + # sudo apt-get update + # sudo apt-get -y install clang-${{ matrix.version }} + # - name: Compile + # env: + # CC: clang-${{ matrix.version }} + # CXX: clang++-${{ matrix.version }} + # run: make + # working-directory: test - dmc: - runs-on: windows-latest - strategy: - matrix: - version: - - "8.26" - - "8.30" - - "8.40" - - "8.50" - - "8.57" - steps: - - uses: actions/checkout@v4 - - name: Install Digital Mars C/C++ Compiler - run: | - $version = "${{ matrix.version }}".Replace(".", "") - $url = "http://ftp.digitalmars.com/Digital_Mars_C++/Patch/dm${version}c.zip" - Invoke-WebRequest -Uri "${url}" -OutFile "dmc.zip" - Expand-Archive -LiteralPath "dmc.zip" -DestinationPath dmc-tmp - Move-Item -Path dmc-tmp\* -Destination dmc - working-directory: test - - name: Compile - env: - CC: dmc\bin\dmc.exe - CXX: dmc\bin\dmc.exe - run: make -f Makefile.dmc - working-directory: test - - emcscripten: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: mymindstorm/setup-emsdk@v14 - - name: Compile - env: - CC: emcc - CXX: emcc - run: make -C test + # dmc: + # runs-on: windows-latest + # strategy: + # matrix: + # version: + # - "8.26" + # - "8.30" + # - "8.40" + # - "8.50" + # - "8.57" + # steps: + # - uses: actions/checkout@v4 + # - name: Install Digital Mars C/C++ Compiler + # run: | + # $version = "${{ matrix.version }}".Replace(".", "") + # $url = "http://ftp.digitalmars.com/Digital_Mars_C++/Patch/dm${version}c.zip" + # Invoke-WebRequest -Uri "${url}" -OutFile "dmc.zip" + # Expand-Archive -LiteralPath "dmc.zip" -DestinationPath dmc-tmp + # Move-Item -Path dmc-tmp\* -Destination dmc + # working-directory: test + # - name: Compile + # env: + # CC: dmc\bin\dmc.exe + # CXX: dmc\bin\dmc.exe + # run: make -f Makefile.dmc + # working-directory: test - gcc: - runs-on: ubuntu-${{ matrix.distro }} - strategy: - fail-fast: false - matrix: - include: - # Previous versions will no longer run on GitHub, but can be - # tested in Docker. Here are the versions which are available: - # - # - Ubuntu 14.04: 4.4 - 4.8 - # - Ubuntu 16.04: 4.6 - 5 - # - Ubuntu 18.04: 5 - 8 + # emcscripten: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - uses: mymindstorm/setup-emsdk@v14 + # - name: Compile + # env: + # CC: emcc + # CXX: emcc + # run: make -C test - - version: "7" - distro: "20.04" - - version: "8" - distro: "20.04" - # - version: "9" - # distro: "20.04" - # - version: "10" - # distro: "20.04" + # gcc: + # runs-on: ubuntu-${{ matrix.distro }} + # strategy: + # fail-fast: false + # matrix: + # include: + # # Previous versions will no longer run on GitHub, but can be + # # tested in Docker. Here are the versions which are available: + # # + # # - Ubuntu 14.04: 4.4 - 4.8 + # # - Ubuntu 16.04: 4.6 - 5 + # # - Ubuntu 18.04: 5 - 8 - # - version: "9" - # distro: "22.04" - # - version: "10" - # distro: "22.04" - # - version: "11" - # distro: "22.04" - # - version: "12" - # distro: "22.04" + # - version: "7" + # distro: "20.04" + # - version: "8" + # distro: "20.04" + # # - version: "9" + # # distro: "20.04" + # # - version: "10" + # # distro: "20.04" - - version: "9" - distro: "24.04" - - version: "10" - distro: "24.04" - - version: "11" - distro: "24.04" - - version: "12" - distro: "24.04" - - version: "13" - distro: "24.04" - - version: "14" - distro: "24.04" - steps: - - uses: actions/checkout@v4 - - name: Install GCC - run: | - sudo apt-get update - sudo apt-get -y install gcc-${{ matrix.version }} g++-${{ matrix.version }} - - name: Compile - env: - CC: gcc-${{ matrix.version }} - CXX: g++-${{ matrix.version }} - run: make - working-directory: test + # # - version: "9" + # # distro: "22.04" + # # - version: "10" + # # distro: "22.04" + # # - version: "11" + # # distro: "22.04" + # # - version: "12" + # # distro: "22.04" - intel: - runs-on: ubuntu-20.04 - strategy: - matrix: - include: - - version: "2021.1.1" - classic: true - # - version: "2021.1.2" - # classic: true - # - version: "2021.2.0" - # classic: true - # - version: "2021.3.0" - # classic: true - # - version: "2021.4.0" - # classic: true - - version: "2022.0.1" - classic: true - # - version: "2022.0.2" - # classic: true - # - version: "2022.1.0" - # classic: true - # - version: "2022.2.0" - # classic: true - # - version: "2022.2.1" - # classic: true - - version: "2023.0.0" - classic: true - # - version: "2023.1.0" - # classic: true - # - version: "2023.2.0" - # classic: true - - version: "2023.2.1" - classic: true - - version: "2023.2.2" - # - version: "2023.2.3" - # - version: "2023.2.4" - # - version: "2024.0" - # - version: "2024.1" - - version: "2024.2" - steps: - - uses: actions/checkout@v4 - - name: Free some disk space - run: sudo rm -rf /usr/local/lib/android /usr/local/.ghcup/ghc - - name: Configure Intel OneAPI Repository - run: | - curl -s https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null - echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list - sudo apt-get update - - name: Install Intel oneAPI DPC++/C++ Compiler - run: | - sudo apt-get install -y "intel-oneapi-compiler-dpcpp-cpp-${{ matrix.version }}" - - name: Install Intel Classic C/C++ Compiler - if: matrix.classic - run: | - sudo apt-get install -y "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${{ matrix.version }}" - - name: Compile with Intel oneAPI DPC++/C++ Compiler - env: - CC: icx - CXX: icpx - working-directory: test - run: | - . /opt/intel/oneapi/setvars.sh - make && make clean - - name: Compile with Intel Classic C/C++ Compiler - if: matrix.classic - env: - CC: icc - CXX: icpc - working-directory: test - run: | - . /opt/intel/oneapi/setvars.sh - make && make clean + # - version: "9" + # distro: "24.04" + # - version: "10" + # distro: "24.04" + # - version: "11" + # distro: "24.04" + # - version: "12" + # distro: "24.04" + # - version: "13" + # distro: "24.04" + # - version: "14" + # distro: "24.04" + # steps: + # - uses: actions/checkout@v4 + # - name: Install GCC + # run: | + # sudo apt-get update + # sudo apt-get -y install gcc-${{ matrix.version }} g++-${{ matrix.version }} + # - name: Compile + # env: + # CC: gcc-${{ matrix.version }} + # CXX: g++-${{ matrix.version }} + # run: make + # working-directory: test - nvhpc: - runs-on: ubuntu-${{ matrix.distro != '' && matrix.distro || 'latest' }} - strategy: - matrix: - include: - # For available versions, see - # https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64/Packages - - version: "20.11" - distro: "20.04" - # - version: "21.1" ## BROKEN. File size mismatch. - # distro: "20.04" - # - version: "21.2" - # distro: "20.04" - # - version: "21.3" - # distro: "20.04" - # - version: "21.5" - # distro: "20.04" - - version: "21.7" - distro: "20.04" - # - version: "21.9" - # distro: "20.04" - # - version: "21.11" - # distro: "22.04" - # - version: "22.1" - # distro: "22.04" - # - version: "22.2" - # distro: "22.04" - - version: "22.3" - distro: "22.04" - # - version: "22.5" - # distro: "22.04" - # - version: "22.7" - # distro: "22.04" - # - version: "22.9" - # distro: "22.04" - # - version: "22.11" - # distro: "22.04" - - version: "23.1" - distro: "22.04" - # - version: "23.3" - # distro: "22.04" - # - version: "23.5" - # distro: "22.04" - # - version: "23.7" - # distro: "22.04" - # - version: "23.9" - # distro: "22.04" - - version: "23.11" - distro: "22.04" - # - version: "24.1" - # distro: "22.04" - # - version: "24.3" - # distro: "22.04" - - version: "24.7" - distro: "24.04" - steps: - - uses: actions/checkout@v4 - - name: Free some disk space - run: sudo rm -rf /usr/local/lib/android /usr/local/.ghcup/ghc - - name: Install NVidia HPC SDK - run: | - curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg - echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list - sudo apt-get update -y - sudo apt-get install -y nvhpc-$(echo "${{ matrix.version }}" | tr '.' '-') - - name: Compile - env: - CC: /opt/nvidia/hpc_sdk/Linux_x86_64/"${{ matrix.version }}"/compilers/bin/nvc - CXX: /opt/nvidia/hpc_sdk/Linux_x86_64/"${{ matrix.version }}"/compilers/bin/nvc++ - working-directory: test - run: make + # intel: + # runs-on: ubuntu-20.04 + # strategy: + # matrix: + # include: + # - version: "2021.1.1" + # classic: true + # # - version: "2021.1.2" + # # classic: true + # # - version: "2021.2.0" + # # classic: true + # # - version: "2021.3.0" + # # classic: true + # # - version: "2021.4.0" + # # classic: true + # - version: "2022.0.1" + # classic: true + # # - version: "2022.0.2" + # # classic: true + # # - version: "2022.1.0" + # # classic: true + # # - version: "2022.2.0" + # # classic: true + # # - version: "2022.2.1" + # # classic: true + # - version: "2023.0.0" + # classic: true + # # - version: "2023.1.0" + # # classic: true + # # - version: "2023.2.0" + # # classic: true + # - version: "2023.2.1" + # classic: true + # - version: "2023.2.2" + # # - version: "2023.2.3" + # # - version: "2023.2.4" + # # - version: "2024.0" + # # - version: "2024.1" + # - version: "2024.2" + # steps: + # - uses: actions/checkout@v4 + # - name: Free some disk space + # run: sudo rm -rf /usr/local/lib/android /usr/local/.ghcup/ghc + # - name: Configure Intel OneAPI Repository + # run: | + # curl -s https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null + # echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + # sudo apt-get update + # - name: Install Intel oneAPI DPC++/C++ Compiler + # run: | + # sudo apt-get install -y "intel-oneapi-compiler-dpcpp-cpp-${{ matrix.version }}" + # - name: Install Intel Classic C/C++ Compiler + # if: matrix.classic + # run: | + # sudo apt-get install -y "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${{ matrix.version }}" + # - name: Compile with Intel oneAPI DPC++/C++ Compiler + # env: + # CC: icx + # CXX: icpx + # working-directory: test + # run: | + # . /opt/intel/oneapi/setvars.sh + # make && make clean + # - name: Compile with Intel Classic C/C++ Compiler + # if: matrix.classic + # env: + # CC: icc + # CXX: icpc + # working-directory: test + # run: | + # . /opt/intel/oneapi/setvars.sh + # make && make clean - pelles-c: + msvc: runs-on: windows-latest - strategy: - matrix: - version: - # https://community.chocolatey.org/packages/pelles-c#versionhistory - - "12.0.2" - - "11.0.2" - - "10.0.6" - - "9.00.0.0" - # - "8.00.0.0" ## Installation times out. - steps: - - uses: actions/checkout@v4 - - name: Install Pelles-C - uses: crazy-max/ghaction-chocolatey@v3 - with: - args: install pelles-c --version "${{ matrix.version }}" --no-progress - - name: Compile - env: - CC: 'C:\Program Files\PellesC\bin\pocc.exe' - LD: 'C:\Program Files\PellesC\bin\polink.exe' - CFLAGS: '/IC:\Progra~1\PellesC\Include' - LDFLAGS: '/LIBPATH:C:\Progra~1\PellesC\lib /LIBPATH:C:\Progra~1\PellesC\Lib\Win64' - working-directory: test - run: make -f Makefile.pelles - - tcc: - runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Install Tiny C Compiler + - uses: ilammy/msvc-dev-cmd@v1 + - name: List Installed Toolsets run: | - sudo apt-get install -y tcc + Install-Module VSSetup -Scope CurrentUser -Force - name: Compile - env: - CC: tcc working-directory: test - run: make - - ti: - runs-on: ubuntu-latest - strategy: - matrix: - include: - - tool: ARM - version: 20.2.7.LTS - compiler: armcl - - tool: MSP - version: 21.6.1.LTS - compiler: cl430 - - tool: C2000 - version: 22.6.1.LTS - compiler: cl2000 - - tool: C6000 - version: 8.3.13 - compiler: cl6x - - tool: C7000 - version: 4.1.0.LTS - compiler: cl7x - - tool: PRU - version: 2.3.3 - compiler: clpru - steps: - - uses: actions/checkout@v4 - - name: Install Compiler run: | - curl -s -o installer.bin "$(curl -s "https://www.ti.com/tool/download/${{ matrix.tool }}-CGT/${{ matrix.version }}" | grep -oP 'https://[a-zA-Z0-9\._\-/]+\.bin')" - chmod u+x installer.bin - ./installer.bin --mode unattended --unattendedmodeui none --prefix ti-compiler - mv ti-compiler/* ti-compiler/compiler - - name: Compile - env: - CC: ../ti-compiler/compiler/bin/${{ matrix.compiler }} - working-directory: test - run: make + cl.exe + make -f Makefile.msvc - xlc: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: uraimo/run-on-arch-action@v2 - name: Run commands - id: runcmd - with: - arch: ppc64le - distro: ubuntu22.04 - install: | - apt-get update - apt-get install -y curl gnupg make libncurses5 - curl -s https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/public.gpg | apt-key add - - echo "deb https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/ trusty main" | tee /etc/apt/sources.list.d/ibm-xl-compiler-eval.list - apt-get update - apt-get install -y xlc.16.1.1 - /opt/ibm/xlC/16.1.1/bin/xlc_configure <<< 1 - env: | - CC: xlc - CXX: xlc++ - run: | - cd test - make + # nvhpc: + # runs-on: ubuntu-${{ matrix.distro != '' && matrix.distro || 'latest' }} + # strategy: + # matrix: + # include: + # # For available versions, see + # # https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64/Packages + # - version: "20.11" + # distro: "20.04" + # # - version: "21.1" ## BROKEN. File size mismatch. + # # distro: "20.04" + # # - version: "21.2" + # # distro: "20.04" + # # - version: "21.3" + # # distro: "20.04" + # # - version: "21.5" + # # distro: "20.04" + # - version: "21.7" + # distro: "20.04" + # # - version: "21.9" + # # distro: "20.04" + # # - version: "21.11" + # # distro: "22.04" + # # - version: "22.1" + # # distro: "22.04" + # # - version: "22.2" + # # distro: "22.04" + # - version: "22.3" + # distro: "22.04" + # # - version: "22.5" + # # distro: "22.04" + # # - version: "22.7" + # # distro: "22.04" + # # - version: "22.9" + # # distro: "22.04" + # # - version: "22.11" + # # distro: "22.04" + # - version: "23.1" + # distro: "22.04" + # # - version: "23.3" + # # distro: "22.04" + # # - version: "23.5" + # # distro: "22.04" + # # - version: "23.7" + # # distro: "22.04" + # # - version: "23.9" + # # distro: "22.04" + # - version: "23.11" + # distro: "22.04" + # # - version: "24.1" + # # distro: "22.04" + # # - version: "24.3" + # # distro: "22.04" + # - version: "24.7" + # distro: "24.04" + # steps: + # - uses: actions/checkout@v4 + # - name: Free some disk space + # run: sudo rm -rf /usr/local/lib/android /usr/local/.ghcup/ghc + # - name: Install NVidia HPC SDK + # run: | + # curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg + # echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list + # sudo apt-get update -y + # sudo apt-get install -y nvhpc-$(echo "${{ matrix.version }}" | tr '.' '-') + # - name: Compile + # env: + # CC: /opt/nvidia/hpc_sdk/Linux_x86_64/"${{ matrix.version }}"/compilers/bin/nvc + # CXX: /opt/nvidia/hpc_sdk/Linux_x86_64/"${{ matrix.version }}"/compilers/bin/nvc++ + # working-directory: test + # run: make + + # pelles-c: + # runs-on: windows-latest + # strategy: + # matrix: + # version: + # # https://community.chocolatey.org/packages/pelles-c#versionhistory + # - "12.0.2" + # - "11.0.2" + # - "10.0.6" + # - "9.00.0.0" + # # - "8.00.0.0" ## Installation times out. + # steps: + # - uses: actions/checkout@v4 + # - name: Install Pelles-C + # uses: crazy-max/ghaction-chocolatey@v3 + # with: + # args: install pelles-c --version "${{ matrix.version }}" --no-progress + # - name: Compile + # env: + # CC: 'C:\Program Files\PellesC\bin\pocc.exe' + # LD: 'C:\Program Files\PellesC\bin\polink.exe' + # CFLAGS: '/IC:\Progra~1\PellesC\Include' + # LDFLAGS: '/LIBPATH:C:\Progra~1\PellesC\lib /LIBPATH:C:\Progra~1\PellesC\Lib\Win64' + # working-directory: test + # run: make -f Makefile.pelles + + # tcc: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: Install Tiny C Compiler + # run: | + # sudo apt-get install -y tcc + # - name: Compile + # env: + # CC: tcc + # working-directory: test + # run: make + + # ti: + # runs-on: ubuntu-latest + # strategy: + # matrix: + # include: + # - tool: ARM + # version: 20.2.7.LTS + # compiler: armcl + # - tool: MSP + # version: 21.6.1.LTS + # compiler: cl430 + # - tool: C2000 + # version: 22.6.1.LTS + # compiler: cl2000 + # - tool: C6000 + # version: 8.3.13 + # compiler: cl6x + # - tool: C7000 + # version: 4.1.0.LTS + # compiler: cl7x + # - tool: PRU + # version: 2.3.3 + # compiler: clpru + # steps: + # - uses: actions/checkout@v4 + # - name: Install Compiler + # run: | + # curl -s -o installer.bin "$(curl -s "https://www.ti.com/tool/download/${{ matrix.tool }}-CGT/${{ matrix.version }}" | grep -oP 'https://[a-zA-Z0-9\._\-/]+\.bin')" + # chmod u+x installer.bin + # ./installer.bin --mode unattended --unattendedmodeui none --prefix ti-compiler + # mv ti-compiler/* ti-compiler/compiler + # - name: Compile + # env: + # CC: ../ti-compiler/compiler/bin/${{ matrix.compiler }} + # working-directory: test + # run: make + + # xlc: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - uses: uraimo/run-on-arch-action@v2 + # name: Run commands + # id: runcmd + # with: + # arch: ppc64le + # distro: ubuntu22.04 + # install: | + # apt-get update + # apt-get install -y curl gnupg make libncurses5 + # curl -s https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/public.gpg | apt-key add - + # echo "deb https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/ trusty main" | tee /etc/apt/sources.list.d/ibm-xl-compiler-eval.list + # apt-get update + # apt-get install -y xlc.16.1.1 + # /opt/ibm/xlC/16.1.1/bin/xlc_configure <<< 1 + # env: | + # CC: xlc + # CXX: xlc++ + # run: | + # cd test + # make diff --git a/test/Makefile.msvc b/test/Makefile.msvc index aff5b17..43e5346 100644 --- a/test/Makefile.msvc +++ b/test/Makefile.msvc @@ -1,6 +1,6 @@ # Generated by Makefile. Do not edit. -CC = cl -CXX = $(CC) +CC ?= cl +CXX ?= cl CFLAGS = /nologo /Wall /wd4464 /wd4514 CXXFLAGS = $(CFLAGS)