Compare commits
No commits in common. "5c5efb50299c6bd47da700168f7fbb7a4a5786be" and "7a6e6747567f5da0a11acca3d97f77ff89485eaf" have entirely different histories.
5c5efb5029
...
7a6e674756
10 changed files with 227 additions and 27 deletions
45
.gitea/workflows/build-win.yml
Normal file
45
.gitea/workflows/build-win.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
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/*
|
||||||
53
.gitea/workflows/build.yml
Normal file
53
.gitea/workflows/build.yml
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
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
|
||||||
14
.gitignore
vendored
14
.gitignore
vendored
|
|
@ -1,14 +0,0 @@
|
||||||
|
|
||||||
# Build directory
|
|
||||||
build/
|
|
||||||
|
|
||||||
# Qt creator user files
|
|
||||||
*.user
|
|
||||||
*.pro.user
|
|
||||||
*.opensdf
|
|
||||||
*.sdf
|
|
||||||
|
|
||||||
# CMake cache
|
|
||||||
CMakeCache.txt
|
|
||||||
CMakeFiles/
|
|
||||||
cmake_install.cmake
|
|
||||||
|
|
@ -1,28 +1,25 @@
|
||||||
cmake_minimum_required(VERSION 3.14)
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
project(eismuliplexer-qt)
|
project(eismultiplexer-qt)
|
||||||
|
|
||||||
set(CMAKE_PROJECT_VERSION_MAJOR 0)
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
|
||||||
set(CMAKE_PROJECT_VERSION_MINOR 9)
|
include(GitVersion)
|
||||||
set(CMAKE_PROJECT_VERSION_PATCH 0)
|
get_version_from_git()
|
||||||
|
message("Building version ${PROJECT_VERSION}")
|
||||||
|
|
||||||
add_compile_definitions(VERSION_MAJOR=${CMAKE_PROJECT_VERSION_MAJOR})
|
add_compile_definitions(VERSION_MAJOR=${CMAKE_PROJECT_VERSION_MAJOR})
|
||||||
add_compile_definitions(VERSION_MINOR=${CMAKE_PROJECT_VERSION_MINOR})
|
add_compile_definitions(VERSION_MINOR=${CMAKE_PROJECT_VERSION_MINOR})
|
||||||
add_compile_definitions(VERSION_PATCH=${CMAKE_PROJECT_VERSION_PATCH})
|
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})
|
message("Platform " ${CMAKE_SYSTEM_NAME})
|
||||||
if(WIN32)
|
if(WIN32 AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/release-win.sh ${CMAKE_CURRENT_BINARY_DIR}/release.sh @ONLY)
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/release-win.sh ${CMAKE_CURRENT_BINARY_DIR}/release.sh @ONLY)
|
||||||
add_custom_target(package
|
add_custom_target(package
|
||||||
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/release.sh
|
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/release.sh
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
COMMENT "Createing release archive"
|
COMMENT "Createing release archive"
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
endif(WIN32)
|
endif(WIN32 AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
@ -45,6 +42,9 @@ add_executable(${PROJECT_NAME}
|
||||||
multiplexer.h
|
multiplexer.h
|
||||||
multiplexer.cpp
|
multiplexer.cpp
|
||||||
)
|
)
|
||||||
|
set_target_properties(${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE ON)
|
||||||
target_compile_options(${PROJECT_NAME} PUBLIC "-Wall")
|
target_compile_options(${PROJECT_NAME} PUBLIC "-Wall")
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets Qt6::Core ${EISMULIPLEXER_LIBRARIES})
|
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets Qt6::Core ${EISMULIPLEXER_LIBRARIES})
|
||||||
#target_include_directories(${PROJECT_NAME} PUBLIC ${EISMULIPLEXER_INCLUDE_DIRS})
|
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)
|
||||||
|
|
|
||||||
38
cmake/GitVersion.cmake
Normal file
38
cmake/GitVersion.cmake
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
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()
|
||||||
9
crossW64.cmake
Normal file
9
crossW64.cmake
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
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/")
|
||||||
|
|
@ -39,7 +39,8 @@ void MainWindow::enumerateDevices()
|
||||||
{
|
{
|
||||||
uint16_t serial = serials[i];
|
uint16_t serial = serials[i];
|
||||||
std::shared_ptr<struct eismultiplexer> multiplexer(new struct eismultiplexer);
|
std::shared_ptr<struct eismultiplexer> multiplexer(new struct eismultiplexer);
|
||||||
if (eismultiplexer_connect(multiplexer.get(), serial) >= 0)
|
int ret = eismultiplexer_connect(multiplexer.get(), serial);
|
||||||
|
if (ret == 0)
|
||||||
{
|
{
|
||||||
uint16_t channelCount = 0;
|
uint16_t channelCount = 0;
|
||||||
qDebug()<<"Adding channels from device "<<serial;
|
qDebug()<<"Adding channels from device "<<serial;
|
||||||
|
|
@ -58,7 +59,7 @@ void MainWindow::enumerateDevices()
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Connection Failed"),
|
QMessageBox::warning(this, tr("Connection Failed"),
|
||||||
tr("Failed to connect to device with serial %1").arg(serial));
|
tr("Failed to connect to device with serial %1").arg(serial));
|
||||||
qWarning() << "Failed to connect to device with serial" << serial;
|
qWarning()<<"Failed to connect to device with serial"<<serial<<"eismultiplexer_connect returned"<<ret;
|
||||||
}
|
}
|
||||||
ui->channelLayout->addStretch();
|
ui->channelLayout->addStretch();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
7
resources/eismultiplexerqt.desktop
Normal file
7
resources/eismultiplexerqt.desktop
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Categories=Qt;Science
|
||||||
|
Comment=Application to control RHD eismultiplexer devices
|
||||||
|
Icon=eismultiplexerqt
|
||||||
|
Name=EisMultiplexerQT
|
||||||
|
Exec=eismultiplexer-qt
|
||||||
|
Type=Application
|
||||||
BIN
resources/eismultiplexerqt.png
Normal file
BIN
resources/eismultiplexerqt.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
61
scripts/release-win.sh
Executable file
61
scripts/release-win.sh
Executable file
|
|
@ -0,0 +1,61 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
#
|
||||||
|
# libkissinference - an inference libary for kiss networks
|
||||||
|
# Copyright (C) 2024 Carl Philipp Klemm <carl@uvos.xyz>
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue