Skip to content

Refactor binding build #16

Refactor binding build

Refactor binding build #16

Workflow file for this run

name: Build (Windows)
on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build_win:
name: Build on Windows ${{ matrix.platform.bitness }} as ${{ matrix.config }}
runs-on: windows-latest
strategy:
matrix:
config: [Debug, Release, ReleaseDLL]
platform:
- { bitness: x32, ms: Win32, name: windows-ix86 }
- { bitness: x64, ms: x64, name: window-x86_64 }
env:
CONFIG: ${{ matrix.config }}
BITNESS: ${{ matrix.platform.bitness }}
PLATFORM: ${{ matrix.platform.ms }}
PTS: v142
steps:
- uses: actions/checkout@v4
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Build with MSBuild
run: |
MSBuild.exe libcpuid_vc10.sln `
/property:Platform=$Env:PLATFORM `
/property:Configuration=$Env:CONFIG `
/property:PlatformToolset=$Env:PTS `
/verbosity:normal
- name: Prepate artifacts
run: |
mkdir -pv "$DESTDIR/"{bin,include,lib}
cat <<EOF > "$DESTDIR/Readme.win"
The binaries here are compiled with Microsoft Visual C++. The following configurations are built:
Debug\ - no optimizations, using the static debug C runtime (/MTd)
Release\ - optimizations on, using the static C runtime (/MT)
ReleaseDLL\ - the library is compiled in a .dll (libcpuid.dll), which you'd need to ship alongside your executable. Static C runtime.
Operating system and compiler version:
$(wmic os get caption,version -value | sed '/^[[:space:]]*$/d')\n$(MSBuild.exe -version | sed '/^[[:space:]]*$/d')
EOF
install -v AUTHORS ChangeLog COPYING Readme.md "$DESTDIR/"
install -v libcpuid/{libcpuid_constants.h,libcpuid.h,libcpuid_types.h} "$DESTDIR/include/"
cd "$GITHUB_WORKSPACE/cpuid_tool/$BITNESS" && find * -type f -name '*.exe' -exec install -Dv "{}" "$DESTDIR/bin/{}" \;
cd "$GITHUB_WORKSPACE/libcpuid/$BITNESS" && find * -type f \( -name '*.lib' -o -name '*.dll' -o -name '*.exp' \) -exec install -Dv "{}" "$DESTDIR/lib/{}" \;
shell: bash
env:
DESTDIR: ${{ github.workspace }}/installdir
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform.name }}-${{ matrix.config }}
path: installdir/*
merge_win_artifacts:
name: Merge artifacts
runs-on: windows-latest
needs: build_win
strategy:
matrix:
platform:
- windows-ix86
- window-x86_64
steps:
- name: Merge artifacts for ${{ matrix.platform }}
uses: actions/upload-artifact/merge@v4
with:
name: ${{ matrix.platform }}
pattern: ${{ matrix.platform }}-*
delete-merged: true