Add windows build to ci

This commit is contained in:
Carl Philipp Klemm 2025-09-16 14:14:01 +02:00
parent f9f3756c0c
commit 0d2fac7110
3 changed files with 40 additions and 4 deletions

View file

@ -0,0 +1,33 @@
name: Build eismuliplexer for windows
run-name: Building eismuliplexer for windows
on: [push]
jobs:
Build:
runs-on: ubuntu-latest
steps:
- name: Install dependancies
run: |
apt update
apt install -y cmake mingw-w64-x86-64-dev gcc-mingw-w64 g++-mingw-w64 p7zip-full
wget https://github.com/libusb/libusb/releases/download/v1.0.29/libusb-1.0.29.7z -o ${{ gitea.workspace }}/libusb.7z
mkdir ${{ gitea.workspace }}/libusb
7z x ${{ gitea.workspace }}/libusb.7z -o${{ gitea.workspace }}/libusb
- name: Check out repository code
uses: ischanx/checkout@8c80eac3058d03dc5301629e8f7d59ae255d6cc3
- name: Version
id: version
run: git fetch -a; echo "tag=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT
- name: Build
run: |
mkdir ${{ gitea.workspace }}/build
cd ${{ gitea.workspace }}/build
cmake -DCMAKE_INSTALL_PREFIX=/usr/x86_64-w64-mingw32/ -DCMAKE_TOOLCHAIN_FILE=../crossW64.cmake -DCMAKE_BUILD_TYPE=Release -DLIBUSB_INCLUDE_DIRS=${{ gitea.workspace }}/libusb/include/ -DLIBUSB_LIBRARIES=${{ gitea.workspace }}/libusb/MinGW64/static/libusb-1.0.a -DGIT_TAG=${{ steps.version.outputs.tag }} ..
make
- name: Package
run: cd ${{ gitea.workspace }}/build; make package
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: eismultiplexer-win-x86_64-${{ steps.version.outputs.tag }}
path: ${{ gitea.workspace }}/build/packaged/${{ steps.version.outputs.tag }}/*

View file

@ -4,7 +4,10 @@ project(eismultiplexer C)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
find_package(Doxygen) find_package(Doxygen)
pkg_check_modules(LIBUSB REQUIRED libusb-1.0)
if(NOT LIBUSB_INCLUDE_DIRS OR NOT LIBUSB_LIBRARIES)
pkg_check_modules(LIBUSB REQUIRED libusb-1.0)
endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
include(GitVersion) include(GitVersion)

View file

@ -34,9 +34,9 @@ install -d $RELDIRECTORY
cp libeismultiplexer.dll $RELDIRECTORY cp libeismultiplexer.dll $RELDIRECTORY
cp libeismultiplexer_static.a $RELDIRECTORY cp libeismultiplexer_static.a $RELDIRECTORY
cp libeismultiplexer.dll.a $RELDIRECTORY cp libeismultiplexer.dll.a $RELDIRECTORY
cp $ROOTPATH/bin/libwinpthread-1.dll $RELDIRECTORY #cp $ROOTPATH/bin/libwinpthread-1.dll $RELDIRECTORY
cp $ROOTPATH/bin/libusb-1.0.dll $RELDIRECTORY #cp $ROOTPATH/bin/libusb-1.0.dll $RELDIRECTORY
cp $ROOTPATH/bin/libssp-0.dll $RELDIRECTORY #cp $ROOTPATH/bin/libssp-0.dll $RELDIRECTORY
cp eismultiplexer_cli.exe $RELDIRECTORY cp eismultiplexer_cli.exe $RELDIRECTORY
cp -r $SRCDIR/EisMultiplexerWinDriver $RELDIRECTORY/driver cp -r $SRCDIR/EisMultiplexerWinDriver $RELDIRECTORY/driver
mkdir $RELDIRECTORY/include || true mkdir $RELDIRECTORY/include || true