From cc54ad3f9297fe92d057d977c489c81d7e850009 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Thu, 23 Jan 2025 12:15:22 +0300 Subject: [PATCH 1/3] Update ci.yml --- .github/workflows/ci.yml | 90 +++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d04a6bd..bd3e458 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -268,47 +268,61 @@ jobs: - name: Install meson run: python3 -m pip install meson ninja - - name: Set SIMD flags + - name: Set SIMD flags (Windows) + if: runner.os == 'Windows' + shell: pwsh run: | - if ($Env:RUNNER_OS -eq 'Windows') { - if ($Env:SIMD -eq 'none') { - $Env:CFLAGS="" - } elseif ($Env:SIMD -eq 'sse') { - $Env:CFLAGS="-arch:SSE" - } elseif ($Env:SIMD -eq 'sse2') { - $Env:CFLAGS="-arch:SSE2" - } elseif ($Env:SIMD -eq 'sse3') { - $Env:CFLAGS="-arch:SSE3" - } elseif ($Env:SIMD -eq 'sse4') { - $Env:CFLAGS="-arch:SSE4" - } elseif ($Env:SIMD -eq 'avx') { - $Env:CFLAGS="-arch:AVX" - } elseif ($Env:SIMD -eq 'avx2') { - $Env:CFLAGS="-arch:AVX2" - } elseif ($Env:SIMD -eq 'neon') { - $Env:CFLAGS="-arch:NEON" - } - } else { - if [ "${{ matrix.simd }}" == "none" ]; then - export CFLAGS="" - elif [ "${{ matrix.simd }}" == "sse" ]; then - export CFLAGS="-msse" - elif [ "${{ matrix.simd }}" == "sse2" ]; then - export CFLAGS="-msse2" - elif [ "${{ matrix.simd }}" == "sse3" ]; then - export CFLAGS="-msse3" - elif [ "${{ matrix.simd }}" == "sse4" ]; then - export CFLAGS="-msse4" - elif [ "${{ matrix.simd }}" == "avx" ]; then - export CFLAGS="-mavx" - elif [ "${{ matrix.simd }}" == "avx2" ]; then - export CFLAGS="-mavx2" - elif [ "${{ matrix.simd }}" == "neon" ]; then - export CFLAGS="-mfpu=neon" - fi + $simd = "${{ matrix.simd }}" + if ($simd -eq "none") { + $env:CFLAGS = "" + } elseif ($simd -eq "sse") { + $env:CFLAGS = "-arch:SSE" + } elseif ($simd -eq "sse2") { + $env:CFLAGS = "-arch:SSE2" + } elseif ($simd -eq "sse3") { + $env:CFLAGS = "-arch:SSE3" + } elseif ($simd -eq "sse4") { + $env:CFLAGS = "-arch:SSE4" + } elseif ($simd -eq "avx") { + $env:CFLAGS = "-arch:AVX" + } elseif ($simd -eq "avx2") { + $env:CFLAGS = "-arch:AVX2" + } elseif ($simd -eq "neon") { + $env:CFLAGS = "-arch:NEON" } - - name: Build with meson + - name: Set SIMD flags (Unix) + if: runner.os != 'Windows' + shell: bash + run: | + if [ "${{ matrix.simd }}" == "none" ]; then + export CFLAGS="" + elif [ "${{ matrix.simd }}" == "sse" ]; then + export CFLAGS="-msse" + elif [ "${{ matrix.simd }}" == "sse2" ]; then + export CFLAGS="-msse2" + elif [ "${{ matrix.simd }}" == "sse3" ]; then + export CFLAGS="-msse3" + elif [ "${{ matrix.simd }}" == "sse4" ]; then + export CFLAGS="-msse4" + elif [ "${{ matrix.simd }}" == "avx" ]; then + export CFLAGS="-mavx" + elif [ "${{ matrix.simd }}" == "avx2" ]; then + export CFLAGS="-mavx2" + elif [ "${{ matrix.simd }}" == "neon" ]; then + export CFLAGS="-mfpu=neon" + fi + + - name: Build with meson (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + meson setup build -Dbuildtype=release --default-library=static -Dbuild_tests=true -Dc_args="$env:CFLAGS" + meson test -C build + + - name: Build with meson (Unix) + if: runner.os != 'Windows' + shell: bash run: | meson setup build -Dbuildtype=release --default-library=static -Dbuild_tests=true -Dc_args="$CFLAGS" meson test -C build From 1ad56f0e943abd9e92bc3d4d3699ed5cba1c3321 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Thu, 23 Jan 2025 12:16:07 +0300 Subject: [PATCH 2/3] Update ci.yml --- .github/workflows/ci.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bd3e458..3e2e421 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -130,7 +130,7 @@ jobs: fi - name: Configure CMake - run: cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=${{ matrix.target.cc }} -DCMAKE_C_FLAGS="$CFLAGS" -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON + run: cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=${{ matrix.target.cc }} -DCMAKE_C_FLAGS="$CFLAGS" -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON -DCGLM_USE_C99=OFF -DCGLM_SHARED=OFF - name: Build run: cmake --build build @@ -161,7 +161,9 @@ jobs: -GNinja \ -DCMAKE_BUILD_TYPE=Release \ -DCGLM_STATIC=ON \ - -DCGLM_USE_TEST=ON + -DCGLM_USE_TEST=ON \ + -DCGLM_USE_C99=OFF \ + -DCGLM_SHARED=OFF - name: Build run: cmake --build build @@ -234,19 +236,20 @@ jobs: - name: Configure CMake (Windows) if: runner.os == 'Windows' shell: pwsh - run: cmake -B build -G "Visual Studio 17 2022" -A x64 -T host=x64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="$env:CFLAGS" -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON + run: cmake -B build -G "Visual Studio 17 2022" -A x64 -T host=x64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="$env:CFLAGS" -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON -DCGLM_USE_C99=OFF -DCGLM_SHARED=OFF - name: Configure CMake (Unix) if: runner.os != 'Windows' shell: bash - run: cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="$CFLAGS" -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON + run: cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="$CFLAGS" -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON -DCGLM_USE_C99=OFF -DCGLM_SHARED=OFF - name: Build - run: cmake --build build + run: cmake --build build --config Release - name: Test working-directory: build - run: ./tests + shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }} + run: ${{ runner.os == 'Windows' && '.\Release\tests.exe' || './tests' }} build_meson: name: Meson / ${{ matrix.os }} / ${{ matrix.simd }} From 814c3543377a9cb6fdc45b11e77ad093232282d0 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Thu, 23 Jan 2025 12:18:12 +0300 Subject: [PATCH 3/3] Update ci.yml --- .github/workflows/ci.yml | 60 +++++++++++++++------------------------- 1 file changed, 23 insertions(+), 37 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e2e421..923eba9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -188,33 +188,24 @@ jobs: if: runner.os == 'macOS' run: brew upgrade && brew install ninja - - name: Set SIMD flags (Windows) - if: runner.os == 'Windows' - shell: pwsh + - name: Set SIMD flags + shell: ${{ (runner.os == 'Windows' && 'pwsh') || 'bash' }} run: | - $simd = "${{ matrix.simd }}" - if ($simd -eq "none") { - $env:CFLAGS = "" - } elseif ($simd -eq "sse") { - $env:CFLAGS = "-arch:SSE" - } elseif ($simd -eq "sse2") { - $env:CFLAGS = "-arch:SSE2" - } elseif ($simd -eq "sse3") { - $env:CFLAGS = "-arch:SSE3" - } elseif ($simd -eq "sse4") { - $env:CFLAGS = "-arch:SSE4" - } elseif ($simd -eq "avx") { - $env:CFLAGS = "-arch:AVX" - } elseif ($simd -eq "avx2") { - $env:CFLAGS = "-arch:AVX2" - } elseif ($simd -eq "neon") { - $env:CFLAGS = "-arch:NEON" + ${{ (runner.os == 'Windows' && 'function Set-Flags { + $simd = $env:MATRIX_SIMD + switch ($simd) { + "none" { $env:CFLAGS = "" } + "sse" { $env:CFLAGS = "-arch:SSE" } + "sse2" { $env:CFLAGS = "-arch:SSE2" } + "sse3" { $env:CFLAGS = "-arch:SSE3" } + "sse4" { $env:CFLAGS = "-arch:SSE4" } + "avx" { $env:CFLAGS = "-arch:AVX" } + "avx2" { $env:CFLAGS = "-arch:AVX2" } + "neon" { $env:CFLAGS = "-arch:NEON" } + } } - - - name: Set SIMD flags (Unix) - if: runner.os != 'Windows' - shell: bash - run: | + $env:MATRIX_SIMD = "' + matrix.simd + '" + Set-Flags') || ' if [ "${{ matrix.simd }}" == "none" ]; then export CFLAGS="" elif [ "${{ matrix.simd }}" == "sse" ]; then @@ -231,25 +222,20 @@ jobs: export CFLAGS="-mavx2" elif [ "${{ matrix.simd }}" == "neon" ]; then export CFLAGS="-mfpu=neon" - fi + fi' }} - - name: Configure CMake (Windows) - if: runner.os == 'Windows' - shell: pwsh - run: cmake -B build -G "Visual Studio 17 2022" -A x64 -T host=x64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="$env:CFLAGS" -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON -DCGLM_USE_C99=OFF -DCGLM_SHARED=OFF - - - name: Configure CMake (Unix) - if: runner.os != 'Windows' - shell: bash - run: cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="$CFLAGS" -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON -DCGLM_USE_C99=OFF -DCGLM_SHARED=OFF + - name: Configure CMake + shell: ${{ (runner.os == 'Windows' && 'pwsh') || 'bash' }} + run: | + ${{ (runner.os == 'Windows' && 'cmake -B build -G "Visual Studio 17 2022" -A x64 -T host=x64 -DCMAKE_BUILD_TYPE=Release -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON -DCGLM_USE_C99=OFF -DCGLM_SHARED=OFF -DCMAKE_C_FLAGS="$env:CFLAGS"') || 'cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON -DCGLM_USE_C99=OFF -DCGLM_SHARED=OFF -DCMAKE_C_FLAGS="$CFLAGS"' }} - name: Build run: cmake --build build --config Release - name: Test working-directory: build - shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }} - run: ${{ runner.os == 'Windows' && '.\Release\tests.exe' || './tests' }} + shell: ${{ (runner.os == 'Windows' && 'pwsh') || 'bash' }} + run: ${{ (runner.os == 'Windows' && '.\Release\tests.exe') || './tests' }} build_meson: name: Meson / ${{ matrix.os }} / ${{ matrix.simd }}