Refactor binding build #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |