blob: 9a5430cf1760096d225865940e43cb7b537fffc5 [file] [log] [blame]
name: C/C++ CI
on:
push:
branches:
- master
- github_actions
pull_request:
branches:
- master
- github_actions
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
build_w_mipp_ubuntu-amd64:
runs-on: ubuntu-latest
steps:
- name: check out MIPP
uses: actions/checkout@master
with:
repository: hayguen/MIPP
path: ./MIPP
- name: cmake configure MIPP
run: cmake -S MIPP -B MIPP_build -DCMAKE_INSTALL_PREFIX=$HOME/.local
- name: cmake install MIPP headers
run: cmake --build MIPP_build --target install && ls -alh $HOME/.local/ && ls -alh $HOME/.local/include/
- uses: actions/checkout@v2
- name: cmake_make_simd_float_double
run: mkdir build_simd_full && cmake -S . -B build_simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_full
- name: cmake_make_simd_float
run: mkdir build_simd_float && cmake -S . -B build_simd_float -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_TYPE_DOUBLE=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_float
- name: cmake_make_simd_double
run: mkdir build_simd_double && cmake -S . -B build_simd_double -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_TYPE_FLOAT=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_double
- name: cmake_make_no-simd_float_double
run: mkdir build_no-simd_full && cmake -S . -B build_no-simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_no-simd_full
- name: cmake_make_no-simd_scalar_float_double
run: mkdir build_no-simd_scalar_full && cmake -S . -B build_no-simd_scalar_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_SCALAR_VECT=ON -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_no-simd_scalar_full
- name: compress
run: tar zcvf pffft_w_mipp_ubuntu-amd64.tar.gz --exclude=CMakeFiles --exclude=*.cmake --exclude=Makefile --exclude=CMakeCache.txt build_simd_full build_simd_float build_simd_double build_no-simd_full build_no-simd_scalar_full
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
with:
name: pffft_ubuntu_builds
path: pffft_w_mipp_ubuntu-amd64.tar.gz
build_ubuntu-amd64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: cmake_make_simd_float_double
run: mkdir build_simd_full && cmake -S . -B build_simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_full
- name: cmake_make_simd_float
run: mkdir build_simd_float && cmake -S . -B build_simd_float -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_TYPE_DOUBLE=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_float
- name: cmake_make_simd_double
run: mkdir build_simd_double && cmake -S . -B build_simd_double -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_TYPE_FLOAT=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_double
- name: cmake_make_no-simd_float_double
run: mkdir build_no-simd_full && cmake -S . -B build_no-simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_no-simd_full
- name: cmake_make_no-simd_scalar_float_double
run: mkdir build_no-simd_scalar_full && cmake -S . -B build_no-simd_scalar_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_SCALAR_VECT=ON -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_no-simd_scalar_full
- name: compress
run: tar zcvf pffft_ubuntu-amd64.tar.gz --exclude=CMakeFiles --exclude=*.cmake --exclude=Makefile --exclude=CMakeCache.txt build_simd_full build_simd_float build_simd_double build_no-simd_full build_no-simd_scalar_full
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
with:
name: pffft_ubuntu_builds
path: pffft_ubuntu-amd64.tar.gz
cross_build_win_from_linux:
runs-on: ubuntu-20.04
steps:
- name: prerequisites
run: sudo apt -qq update && sudo apt -yqq install gcc-mingw-w64 g++-mingw-w64
- name: check out MIPP
uses: actions/checkout@master
with:
repository: hayguen/MIPP
path: ./MIPP
- name: cmake configure MIPP
working-directory: ${{runner.workspace}}
run: cmake -S pffft/MIPP -B MIPP_build -DCMAKE_INSTALL_PREFIX=$(pwd)
- name: cmake install MIPP headers
working-directory: ${{runner.workspace}}
run: cmake --build MIPP_build --target install
- uses: actions/checkout@v2
- name: build_w32_no-simd
working-directory: ${{runner.workspace}}
run: cd $GITHUB_WORKSPACE && bash ./cross_build_mingw32.sh no-simd -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF
- name: build_w32_simd_full
working-directory: ${{runner.workspace}}
run: X=$(pwd) && cd $GITHUB_WORKSPACE && bash ./cross_build_mingw32.sh simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=pentium4 -DTARGET_C_ARCH=pentium4 -DMIPP_INCLUDE_DIRS=$X/include/mipp
- name: build_w64_no-simd
working-directory: ${{runner.workspace}}
run: cd $GITHUB_WORKSPACE && bash ./cross_build_mingw64.sh no-simd -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF
- name: build_w64_simd_full
working-directory: ${{runner.workspace}}
run: X=$(pwd) && cd $GITHUB_WORKSPACE && bash ./cross_build_mingw64.sh simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=sandybridge -DTARGET_C_ARCH=sandybridge -DMIPP_INCLUDE_DIRS=$X/include/mipp
- name: compress
run: tar zcvf pffft_cross-build-windows-from-linux-amd64.tar.gz --exclude=CMakeFiles --exclude=*.cmake --exclude=Makefile --exclude=CMakeCache.txt build_w32_no-simd build_w32_simd_full build_w64_no-simd build_w64_simd_full
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
with:
name: pffft_windows_from_cross_builds
path: pffft_cross-build-windows-from-linux-amd64.tar.gz
build_win_msvc:
# 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: windows-2019
steps:
- name: check out MIPP
uses: actions/checkout@master
with:
repository: hayguen/MIPP
path: ./MIPP
- name: cmake configure MIPP
shell: bash
working-directory: ${{runner.workspace}}
run: cmake -S pffft/MIPP -B MIPP_build -DCMAKE_INSTALL_PREFIX=$(pwd)
- name: cmake install MIPP headers
working-directory: ${{runner.workspace}}
run: cmake --build MIPP_build --target install
- uses: actions/checkout@v2
- name: Configure CMake No-SIMD
shell: bash
working-directory: ${{runner.workspace}}
run: cmake -S $GITHUB_WORKSPACE -B build_no-simd -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DENABLE_PFDSP=ON -DUSE_SIMD=OFF -DTARGET_CXX_ARCH=none -DTARGET_C_ARCH=none
- name: Build No-SIMD
shell: bash
working-directory: ${{runner.workspace}}
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build build_no-simd --config $BUILD_TYPE
- name: Configure CMake SSE2
shell: bash
working-directory: ${{runner.workspace}}
run: cmake -S $GITHUB_WORKSPACE -B build_sse2 -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DENABLE_PFDSP=ON -DTARGET_CXX_ARCH=SSE2 -DTARGET_C_ARCH=SSE2 -DMIPP_INCLUDE_DIRS=$(pwd)/include/mipp
- name: Build SSE2
shell: bash
working-directory: ${{runner.workspace}}
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build build_sse2 --config $BUILD_TYPE
- name: Configure CMake AVX
# 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: ${{runner.workspace}}
run: cmake -S $GITHUB_WORKSPACE -B build_avx -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DENABLE_PFDSP=ON -DTARGET_CXX_ARCH=AVX -DTARGET_C_ARCH=AVX -DMIPP_INCLUDE_DIRS=$(pwd)/include/mipp
- name: Build AVX
working-directory: ${{runner.workspace}}
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build build_avx --config $BUILD_TYPE
- name: Configure CMake AVX2
# 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: ${{runner.workspace}}
run: cmake -S $GITHUB_WORKSPACE -B build_avx2 -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DENABLE_PFDSP=ON -DTARGET_CXX_ARCH=AVX2 -DTARGET_C_ARCH=AVX2 -DMIPP_INCLUDE_DIRS=$(pwd)/include/mipp
- name: Build AVX2
working-directory: ${{runner.workspace}}
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build build_avx2 --config $BUILD_TYPE
- name: compress
working-directory: ${{runner.workspace}}
run: tar zcvf pffft_windows-msvc-amd64.tar.gz --exclude=CMakeFiles --exclude=*.cmake --exclude=Makefile --exclude=CMakeCache.txt build_no-simd build_sse2 build_avx build_avx2
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
with:
name: pffft_windows_msvc_builds
path: ${{runner.workspace}}/pffft_windows-msvc-amd64.tar.gz
build_win_mingw:
runs-on: windows-2019
strategy:
matrix:
compiler: [gcc]
msystem: [MINGW64]
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
install: gcc cmake make
- name: Configure cmake
run: CC=gcc cmake -DMINGW=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native -S . -B build_mgw64
- name: Build
run: cmake --build build_mgw64
- name: compress
run: tar zcvf pffft_windows-mingw-amd64.tar.gz --exclude=CMakeFiles --exclude=*.cmake --exclude=Makefile --exclude=CMakeCache.txt build_mgw64
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
with:
name: pffft_windows_mingw_builds
path: pffft_windows-mingw-amd64.tar.gz
build_macos11:
# copied from build_ubuntu-amd64 with minor renaming
runs-on: macos-11
steps:
- uses: actions/checkout@v2
- name: cmake_make_simd_float_double
run: mkdir build_simd_full && cmake -S . -B build_simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_full
- name: cmake_make_simd_float
run: mkdir build_simd_float && cmake -S . -B build_simd_float -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_TYPE_DOUBLE=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_float
- name: cmake_make_simd_double
run: mkdir build_simd_double && cmake -S . -B build_simd_double -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_TYPE_FLOAT=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_double
- name: cmake_make_no-simd_float_double
run: mkdir build_no-simd_full && cmake -S . -B build_no-simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_no-simd_full
- name: cmake_make_no-simd_scalar_float_double
run: mkdir build_no-simd_scalar_full && cmake -S . -B build_no-simd_scalar_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_SCALAR_VECT=ON -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_no-simd_scalar_full
- name: compress
run: tar zcvf pffft_macos-11.tar.gz --exclude=CMakeFiles --exclude=*.cmake --exclude=Makefile --exclude=CMakeCache.txt build_simd_full build_simd_float build_simd_double build_no-simd_full build_no-simd_scalar_full
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
with:
name: pffft_macos_builds
path: pffft_macos-11.tar.gz
build_w_mipp_macos11:
# copied from build_w_mipp_ubuntu-amd64 with minor renaming
runs-on: macos-11
steps:
- name: check out MIPP
uses: actions/checkout@master
with:
repository: hayguen/MIPP
path: ./MIPP
- name: cmake configure MIPP
run: cmake -S MIPP -B MIPP_build -DCMAKE_INSTALL_PREFIX=$HOME/.local
- name: cmake install MIPP headers
run: cmake --build MIPP_build --target install && ls -alh $HOME/.local/ && ls -alh $HOME/.local/include/
- uses: actions/checkout@v2
- name: cmake_make_simd_float_double
run: mkdir build_simd_full && cmake -S . -B build_simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_full
- name: cmake_make_simd_float
run: mkdir build_simd_float && cmake -S . -B build_simd_float -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_TYPE_DOUBLE=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_float
- name: cmake_make_simd_double
run: mkdir build_simd_double && cmake -S . -B build_simd_double -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_TYPE_FLOAT=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_simd_double
- name: cmake_make_no-simd_float_double
run: mkdir build_no-simd_full && cmake -S . -B build_no-simd_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_no-simd_full
- name: cmake_make_no-simd_scalar_float_double
run: mkdir build_no-simd_scalar_full && cmake -S . -B build_no-simd_scalar_full -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_SIMD=OFF -DUSE_SCALAR_VECT=ON -DUSE_BENCH_GREEN=OFF -DUSE_BENCH_KISS=OFF -DUSE_BENCH_POCKET=OFF -DTARGET_CXX_ARCH=native -DTARGET_C_ARCH=native && cmake --build build_no-simd_scalar_full
- name: compress
run: tar zcvf pffft_w_mipp_macos-11.tar.gz --exclude=CMakeFiles --exclude=*.cmake --exclude=Makefile --exclude=CMakeCache.txt build_simd_full build_simd_float build_simd_double build_no-simd_full build_no-simd_scalar_full
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
with:
name: pffft_macos_builds
path: pffft_w_mipp_macos-11.tar.gz