diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 2cd1ee1d..5369048f 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -18,13 +18,13 @@ jobs: steps: - name: Setup NASM - uses: ilammy/setup-nasm@13cbeb366c45c4379d3478cdcbadd8295feb5028 # v1.5.1 + uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b # v1.5.2 - name: Checkout repo - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Add MSBuild to PATH - uses: microsoft/setup-msbuild@c26a08ba26249b81327e26f6ef381897b6a8754d # v1.0.2 + uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3.0.0 - name: Setup environment run: | @@ -51,13 +51,76 @@ jobs: steps: - name: Setup NASM - uses: ilammy/setup-nasm@13cbeb366c45c4379d3478cdcbadd8295feb5028 # v1.5.1 + uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b # v1.5.2 - name: Checkout repo - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Add MSBuild to PATH - uses: microsoft/setup-msbuild@c26a08ba26249b81327e26f6ef381897b6a8754d # v1.0.2 + uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3.0.0 + + - name: Setup environment + run: | + New-Item -ItemType Directory -Path "$pwd\build" + New-Item -ItemType Directory -Path "$pwd\build\bin" + "BUILD_DIR=$pwd\build" >> $env:GITHUB_ENV + "BINARY_DIR=$pwd\build\bin" >> $env:GITHUB_ENV + $env:PATH += "$pwd\build\bin;" + + - name: Configure CMake + run: cmake -A x64 -DIMB_BIN_DIR=${{env.BINARY_DIR}} -B ${{env.BUILD_DIR}} + + - name: Build + run: cmake --build ${{env.BUILD_DIR}} --config ${{env.BUILD_TYPE}} + + # CMake release build with shared library (msbuild) on VS2022 + release-cmake-msvc-msbuild-vs2022: + env: + BUILD_TYPE: Release + runs-on: windows-2022 + + steps: + - name: Setup NASM + uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b # v1.5.2 + + - name: Checkout repo + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3.0.0 + + - name: Setup environment + run: | + New-Item -ItemType Directory -Path "$pwd\build" + New-Item -ItemType Directory -Path "$pwd\build\bin" + "BUILD_DIR=$pwd\build" >> $env:GITHUB_ENV + "BINARY_DIR=$pwd\build\bin" >> $env:GITHUB_ENV + $env:PATH += "$pwd\build\bin;" + + - name: Configure CMake + run: cmake -A x64 -DIMB_BIN_DIR=${{env.BINARY_DIR}} -B ${{env.BUILD_DIR}} + + - name: Build + run: cmake --build ${{env.BUILD_DIR}} --config ${{env.BUILD_TYPE}} + + - name: Test + run: ctest -j 5 -C ${{env.BUILD_TYPE}} --test-dir ${{env.BUILD_DIR}} + + # CMake debug build with shared library (msbuild) on VS2022 + debug-cmake-msvc-msbuild-vs2022: + env: + BUILD_TYPE: Debug + runs-on: windows-2022 + + steps: + - name: Setup NASM + uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b # v1.5.2 + + - name: Checkout repo + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3.0.0 - name: Setup environment run: | @@ -75,3 +138,36 @@ jobs: - name: Test run: ctest -j 5 -C ${{env.BUILD_TYPE}} --test-dir ${{env.BUILD_DIR}} + + # CMake release build with shared library (ninja) on VS2022 + release-cmake-ninja-vs2022: + runs-on: windows-2022 + + steps: + - name: Setup NASM + uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b # v1.5.2 + + - name: Setup MSVC dev environment + uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 + with: + arch: x64 + + - name: Checkout repo + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Setup environment + run: | + New-Item -ItemType Directory -Path "$pwd\build" + New-Item -ItemType Directory -Path "$pwd\build\bin" + "BUILD_DIR=$pwd\build" >> $env:GITHUB_ENV + "BINARY_DIR=$pwd\build\bin" >> $env:GITHUB_ENV + $env:PATH += "$pwd\build\bin;" + + - name: Configure CMake + run: cmake -G Ninja -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DIMB_BIN_DIR=${{env.BINARY_DIR}} -B ${{env.BUILD_DIR}} + + - name: Build + run: cmake --build ${{env.BUILD_DIR}} + + - name: Test + run: ctest -j 5 --test-dir ${{env.BUILD_DIR}}