diff --git a/.gitea/workflows/build-win.yml b/.gitea/workflows/build-win.yml deleted file mode 100644 index 31120dd..0000000 --- a/.gitea/workflows/build-win.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Build eismuliplexer-qt for windows -run-name: Building eismuliplexer-qt for windows -on: [push] - -jobs: - BuildWin: - runs-on: arch-mingw-qt - steps: - - name: Install dependancies - run: pacman -Sy; pacman -S --noconfirm mingw-w64-libusb mingw-w64-pkg-config nodejs zip - - name: Check out repository code - uses: ischanx/checkout@8c80eac3058d03dc5301629e8f7d59ae255d6cc3 - - name: Checkout libeismultiplexer - run: git clone http://192.168.178.27/git/Eismultiplexer/libeismultiplexer.git - - name: libeismultiplexer version - id: libeisversion - run: | - cd ${{ gitea.workspace }}/libeismultiplexer - git fetch -a; - echo "tag=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT - - name: Version - id: version - run: | - cd ${{ gitea.workspace }} - git fetch -a; - echo "tag=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT - - name: Build libeismultiplexer - run: | - mkdir ${{ gitea.workspace }}/libeismultiplexer/build - cd ${{ gitea.workspace }}/libeismultiplexer/build - cmake -DCMAKE_INSTALL_PREFIX=/usr/x86_64-w64-mingw32/ -DCMAKE_TOOLCHAIN_FILE=../crossW64.cmake -DCMAKE_BUILD_TYPE=Release -DGIT_TAG=${{ steps.libeisversion.outputs.tag }} .. - make - make install - - name: Build - run: | - mkdir ${{ gitea.workspace }}/build - cd ${{ gitea.workspace }}/build - cmake -DCMAKE_TOOLCHAIN_FILE=../crossW64.cmake -DCMAKE_BUILD_TYPE=Release -DGIT_TAG=${{ steps.version.outputs.tag }} .. - make -j $(nproc) - make package - - name: Upload Package - uses: actions/upload-artifact@v3 - with: - name: eismuliplexer-qt-${{ steps.version.outputs.tag }}-w64 - path: ${{ gitea.workspace }}/build/packaged/${{ steps.version.outputs.tag }}/release/* diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml deleted file mode 100644 index 340ac90..0000000 --- a/.gitea/workflows/build.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Build eismuliplexer for linux -run-name: Building eismuliplexer for linux -on: [push] - -jobs: - Build: - runs-on: ubuntu-latest - steps: - - name: Install dependancies - run: apt update; apt install -y libusb-1.0-0-dev cmake qt6-base-dev qt6-base-dev-tools qt6-tools-dev-tools libqt6widgets6 wget libglx-dev libgl1-mesa-dev qt6-qpa-plugins - - name: Check out repository code - uses: ischanx/checkout@8c80eac3058d03dc5301629e8f7d59ae255d6cc3 - - name: Checkout libeismultiplexer - run: git clone http://192.168.178.27/git/Eismultiplexer/libeismultiplexer.git - - name: Install Appimagetool - run: | - wget https://github.com/probonopd/go-appimage/releases/download/continuous/appimagetool-904-x86_64.AppImage - chmod +x appimagetool-904-x86_64.AppImage - mv appimagetool-904-x86_64.AppImage /usr/bin/appimagetool - - name: libeismultiplexer version - id: libeisversion - run: | - cd ${{ gitea.workspace }}/libeismultiplexer - git fetch -a; - echo "tag=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT - - name: Version - id: version - run: | - cd ${{ gitea.workspace }} - git fetch -a; - echo "tag=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT - - name: Build and install libeismultiplexer - run: | - mkdir ${{ gitea.workspace }}/libeismultiplexer/build; cd ${{ gitea.workspace }}/libeismultiplexer/build - cmake -DCMAKE_BUILD_TYPE=Release -DGIT_TAG=${{ steps.libeisversion.outputs.tag }} .. - make -j $(nproc) - make install - - name: Build - run: | - mkdir ${{ gitea.workspace }}/build; cd ${{ gitea.workspace }}/build - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install/usr -DGIT_TAG=${{ steps.version.outputs.tag }} .. - make -j $(nproc) - make install - - name: Create Appimage - run: | - cd ${{ gitea.workspace }}/build/ - appimagetool --appimage-extract-and-run -s deploy install/usr/share/applications/eismultiplexerqt.desktop - appimagetool --appimage-extract-and-run -s install - - name: Upload Appimage - uses: actions/upload-artifact@v3 - with: - name: eismultiplexer-qt-appimage - path: ${{ gitea.workspace }}/build/*.AppImage diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1e931b8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ + +# Build directory +build/ + +# Qt creator user files +*.user +*.pro.user +*.opensdf +*.sdf + +# CMake cache +CMakeCache.txt +CMakeFiles/ +cmake_install.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index e3f9565..e86a2c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,25 +1,28 @@ cmake_minimum_required(VERSION 3.14) -project(eismultiplexer-qt) +project(eismuliplexer-qt) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") -include(GitVersion) -get_version_from_git() -message("Building version ${PROJECT_VERSION}") +set(CMAKE_PROJECT_VERSION_MAJOR 0) +set(CMAKE_PROJECT_VERSION_MINOR 9) +set(CMAKE_PROJECT_VERSION_PATCH 0) add_compile_definitions(VERSION_MAJOR=${CMAKE_PROJECT_VERSION_MAJOR}) add_compile_definitions(VERSION_MINOR=${CMAKE_PROJECT_VERSION_MINOR}) add_compile_definitions(VERSION_PATCH=${CMAKE_PROJECT_VERSION_PATCH}) +if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") + message(FATAL_ERROR "Windows builds have to be cross compiled on UNIX") +endif() + message("Platform " ${CMAKE_SYSTEM_NAME}) -if(WIN32 AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") +if(WIN32) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/release-win.sh ${CMAKE_CURRENT_BINARY_DIR}/release.sh @ONLY) add_custom_target(package COMMAND ${CMAKE_CURRENT_BINARY_DIR}/release.sh WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Createing release archive" VERBATIM) -endif(WIN32 AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") +endif(WIN32) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -42,9 +45,6 @@ add_executable(${PROJECT_NAME} multiplexer.h multiplexer.cpp ) -set_target_properties(${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE ON) target_compile_options(${PROJECT_NAME} PUBLIC "-Wall") target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets Qt6::Core ${EISMULIPLEXER_LIBRARIES}) -install(TARGETS ${PROJECT_NAME} DESTINATION bin) -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/eismultiplexerqt.desktop DESTINATION share/applications) -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/eismultiplexerqt.png DESTINATION share/icons/hicolor/256x256/apps) +#target_include_directories(${PROJECT_NAME} PUBLIC ${EISMULIPLEXER_INCLUDE_DIRS}) diff --git a/cmake/GitVersion.cmake b/cmake/GitVersion.cmake deleted file mode 100644 index b147005..0000000 --- a/cmake/GitVersion.cmake +++ /dev/null @@ -1,38 +0,0 @@ -function(get_version_from_git) - find_package(Git REQUIRED) - - if(NOT GIT_TAG) - execute_process( - COMMAND ${GIT_EXECUTABLE} describe --tags --always - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_TAG - OUTPUT_STRIP_TRAILING_WHITESPACE - RESULT_VARIABLE GIT_RESULT - ) - if(NOT GIT_RESULT EQUAL 0) - message(FATAL_ERROR "Failed to get git tag") - endif() - endif() - - string(REGEX REPLACE "^v" "" CLEAN_TAG "${GIT_TAG}") - if(CLEAN_TAG MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-.*)?$") - - set(CMAKE_PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1}) - set(CMAKE_PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1} PARENT_SCOPE) - set(CMAKE_PROJECT_VERSION_MINOR ${CMAKE_MATCH_2}) - set(CMAKE_PROJECT_VERSION_MINOR ${CMAKE_MATCH_2} PARENT_SCOPE) - set(CMAKE_PROJECT_VERSION_PATCH ${CMAKE_MATCH_3}) - set(CMAKE_PROJECT_VERSION_PATCH ${CMAKE_MATCH_3} PARENT_SCOPE) - - set(PROJECT_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}") - set(PROJECT_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}" PARENT_SCOPE) - else() - message(WARNING "Tag '${CLEAN_TAG}' does not match semver format") - set(CMAKE_PROJECT_VERSION_MAJOR 0) - set(CMAKE_PROJECT_VERSION_MAJOR 0 PARENT_SCOPE) - set(CMAKE_PROJECT_VERSION_MINOR 0) - set(CMAKE_PROJECT_VERSION_MINOR 0 PARENT_SCOPE) - set(CMAKE_PROJECT_VERSION_PATCH 0) - set(CMAKE_PROJECT_VERSION_PATCH 0 PARENT_SCOPE) - endif() -endfunction() diff --git a/crossW64.cmake b/crossW64.cmake deleted file mode 100644 index 0fab148..0000000 --- a/crossW64.cmake +++ /dev/null @@ -1,9 +0,0 @@ -set(CMAKE_SYSTEM_NAME Windows) -set(CMAKE_SYSTEM_PROCESSOR AMD64) -set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) -set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) -set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32) -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -set(ENV{PKG_CONFIG_PATH} "/usr/x86_64-w64-mingw32/lib/pkgconfig/") diff --git a/mainwindow.cpp b/mainwindow.cpp index 0b7ae5d..99a5739 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -39,8 +39,7 @@ void MainWindow::enumerateDevices() { uint16_t serial = serials[i]; std::shared_ptr multiplexer(new struct eismultiplexer); - int ret = eismultiplexer_connect(multiplexer.get(), serial); - if (ret == 0) + if (eismultiplexer_connect(multiplexer.get(), serial) >= 0) { uint16_t channelCount = 0; qDebug()<<"Adding channels from device "<channelLayout->addStretch(); } diff --git a/resources/eismultiplexerqt.desktop b/resources/eismultiplexerqt.desktop deleted file mode 100644 index 58f04ce..0000000 --- a/resources/eismultiplexerqt.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Categories=Qt;Science -Comment=Application to control RHD eismultiplexer devices -Icon=eismultiplexerqt -Name=EisMultiplexerQT -Exec=eismultiplexer-qt -Type=Application diff --git a/resources/eismultiplexerqt.png b/resources/eismultiplexerqt.png deleted file mode 100644 index 6408f2e..0000000 Binary files a/resources/eismultiplexerqt.png and /dev/null differ diff --git a/scripts/release-win.sh b/scripts/release-win.sh deleted file mode 100755 index c022117..0000000 --- a/scripts/release-win.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -e -# -# libkissinference - an inference libary for kiss networks -# Copyright (C) 2024 Carl Philipp Klemm -# -# This file is part of libkissinference. -# -# libkissinference is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# libkissinference is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libkissinference. If not, see . -# - -PROJECTNAME=@PROJECT_NAME@ -SYSTEMPROC=@CMAKE_SYSTEM_PROCESSOR@ -ROOTPATH=@CMAKE_FIND_ROOT_PATH@ -VERSION="@CMAKE_PROJECT_VERSION_MAJOR@.@CMAKE_PROJECT_VERSION_MINOR@.@CMAKE_PROJECT_VERSION_PATCH@" -BINARYDIR="@CMAKE_CURRENT_BINARY_DIR@" -SRCDIR="@CMAKE_CURRENT_SOURCE_DIR@" -RELDIRECTORY="$BINARYDIR/packaged/$VERSION/release" -ZIPNAME=$PROJECTNAME-$SYSTEMPROC-$VERSION - -rm $BINARYDIR/packaged/$ZIPNAME.zip || true -cd $BINARYDIR -install -d $RELDIRECTORY -cp eismultiplexer-qt.exe $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/libgcc_s_seh-1.dll $RELDIRECTORY -cp $ROOTPATH/bin/libstdc++-6.dll $RELDIRECTORY -cp $ROOTPATH/bin/Qt6Core.dll $RELDIRECTORY -cp $ROOTPATH/bin/Qt6Gui.dll $RELDIRECTORY -cp $ROOTPATH/bin/Qt6Widgets.dll $RELDIRECTORY -cp -r $ROOTPATH/lib/qt6/plugins/platforms $RELDIRECTORY -cp $ROOTPATH/lib/libeismultiplexer.dll $RELDIRECTORY -cp $ROOTPATH/bin/libpcre2-*-0.dll $RELDIRECTORY -cp $ROOTPATH/bin/zlib1.dll $RELDIRECTORY -cp $ROOTPATH/bin/libfreetype-6.dll $RELDIRECTORY -cp $ROOTPATH/bin/libpng16-16.dll $RELDIRECTORY -cp $ROOTPATH/bin/libzstd.dll $RELDIRECTORY -cp $ROOTPATH/bin/libharfbuzz-0.dll $RELDIRECTORY -cp $ROOTPATH/bin/libintl-8.dll $RELDIRECTORY -cp $ROOTPATH/bin/libgraphite2.dll $RELDIRECTORY -cp $ROOTPATH/bin/libglib-2.0-0.dll $RELDIRECTORY -cp $ROOTPATH/bin/libbz2-1.dll $RELDIRECTORY -cp $ROOTPATH/bin/libbrotlidec.dll $RELDIRECTORY -cp $ROOTPATH/bin/libbrotlicommon.dll $RELDIRECTORY -cp $ROOTPATH/bin/libiconv-2.dll $RELDIRECTORY -#cp $SRCDIR/README.md $RELDIRECTORY -cd $RELDIRECTORY/.. -rm $BINARYDIR/packaged/$ZIPNAME.zip || true -zip -r $BINARYDIR/packaged/$ZIPNAME.zip release