From 0d2fac711040031d6a567aa1d8191fdd269565c2 Mon Sep 17 00:00:00 2001 From: Carl Philipp Klemm Date: Tue, 16 Sep 2025 14:14:01 +0200 Subject: [PATCH] Add windows build to ci --- .gitea/workflows/build-win.yml | 33 +++++++++++++++++++++++++++++++++ CMakeLists.txt | 5 ++++- scripts/release-win.sh | 6 +++--- 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 .gitea/workflows/build-win.yml diff --git a/.gitea/workflows/build-win.yml b/.gitea/workflows/build-win.yml new file mode 100644 index 0000000..2a53bb4 --- /dev/null +++ b/.gitea/workflows/build-win.yml @@ -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 }}/* diff --git a/CMakeLists.txt b/CMakeLists.txt index 56263df..551f016 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,10 @@ project(eismultiplexer C) find_package(PkgConfig REQUIRED) 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/") include(GitVersion) diff --git a/scripts/release-win.sh b/scripts/release-win.sh index 2b43e26..7ade7eb 100755 --- a/scripts/release-win.sh +++ b/scripts/release-win.sh @@ -34,9 +34,9 @@ install -d $RELDIRECTORY cp libeismultiplexer.dll $RELDIRECTORY cp libeismultiplexer_static.a $RELDIRECTORY cp libeismultiplexer.dll.a $RELDIRECTORY -cp $ROOTPATH/bin/libwinpthread-1.dll $RELDIRECTORY -cp $ROOTPATH/bin/libusb-1.0.dll $RELDIRECTORY -cp $ROOTPATH/bin/libssp-0.dll $RELDIRECTORY +#cp $ROOTPATH/bin/libwinpthread-1.dll $RELDIRECTORY +#cp $ROOTPATH/bin/libusb-1.0.dll $RELDIRECTORY +#cp $ROOTPATH/bin/libssp-0.dll $RELDIRECTORY cp eismultiplexer_cli.exe $RELDIRECTORY cp -r $SRCDIR/EisMultiplexerWinDriver $RELDIRECTORY/driver mkdir $RELDIRECTORY/include || true