Skip to content

Commit 576ae20

Browse files
Merge branch 'COVESA:master' into Feature-HighLightAndJumpToMissingMessages
2 parents 3bfab38 + 524c71d commit 576ae20

File tree

12 files changed

+309
-68
lines changed

12 files changed

+309
-68
lines changed

.github/workflows/BuildPR.yml

Lines changed: 103 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88

99
jobs:
1010
buildMac:
11-
name: Build macOS
11+
name: Build ${{ matrix.macos }} (${{ matrix.abi }}) with Qt${{ matrix.qt }}
1212
runs-on: ${{ matrix.macos }}
1313
strategy:
1414
fail-fast: false
@@ -17,15 +17,6 @@ jobs:
1717
abi: [ x86 ]
1818
xcode: [ Xcode_15.2 ]
1919
qt: [ 5 ]
20-
include:
21-
- macos: macos-14
22-
abi: arm64
23-
xcode: Xcode
24-
qt: 5
25-
- macos: macos-15
26-
abi: arm64
27-
xcode: Xcode
28-
qt: 5
2920
steps:
3021
- name: Checkout
3122
uses: actions/checkout@v4
@@ -53,53 +44,16 @@ jobs:
5344
MACOS_CERTIFICATE_PWD: ${{ secrets.P12_PASSWORD }}
5445
MACOS_CERTIFICATE_NAME: ${{ secrets.APPLE_CERTIFICATE_NAME }}
5546
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.KEYCHAIN_PASSWORD }}
56-
run: |
57-
# Turn our base64-encoded certificate back to a regular .p12 file
58-
59-
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
60-
# We need to create a new keychain, otherwise using the certificate will prompt
61-
# with a UI dialog asking for the certificate password, which we can't
62-
# use in a headless CI environment
63-
64-
security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain
65-
security default-keychain -s build.keychain
66-
security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain
67-
security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
68-
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain
69-
70-
# We finally codesign our app bundle, specifying the Hardened runtime option
71-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/Frameworks/*
72-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/Resources/*
73-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/PlugIns/bearer/*
74-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents//PlugIns/iconengines/*
75-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/PlugIns/imageformats/*
76-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/PlugIns/platforminputcontexts/*
77-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/PlugIns/platforms/*
78-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/PlugIns/printsupport/*
79-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/PlugIns/styles/*
80-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/PlugIns/virtualkeyboard/*
81-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/MacOS/plugins/*
82-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/MacOS/dlt-commander
83-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app/Contents/MacOS/dlt-viewer
84-
/usr/bin/codesign --timestamp --options=runtime -s "$MACOS_CERTIFICATE_NAME" -f -v /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app
47+
run: scripts/darwin/codesign.sh
48+
8549
- name: Notarize app bundle
8650
if: "! github.event.pull_request.head.repo.fork " # not running on a fork
8751
env:
8852
PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.APPLE_ID }}
8953
PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.TEAM_ID }}
9054
PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.APP_PASSWORD }}
91-
run: |
92-
echo "Create keychain profile"
93-
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD"
94-
echo "Creating temp notarization archive"
95-
ditto -c -k --keepParent "/Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app" "/Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.zip"
96-
97-
echo "Notarize app"
98-
xcrun notarytool submit "/Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.zip" --keychain-profile "notarytool-profile" --wait
99-
100-
echo "Attach staple"
101-
xcrun stapler staple "/Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.app"
102-
rm -r /Users/runner/work/dlt-viewer/dlt-viewer/build/install/DLTViewer.zip
55+
run: scripts/darwin/notarize.sh
56+
10357
- name: Artifact Creation
10458
run: |
10559
cd /Users/runner/work/dlt-viewer/dlt-viewer/build
@@ -132,13 +86,23 @@ jobs:
13286
run: scripts/linux/buildUbuntu22and24.sh
13387
- name: Run tests
13488
run: ctest --test-dir build/qdlt
89+
- name: Create package
90+
if: ${{ matrix.ubuntu == 'ubuntu-24.04' }}
91+
run: ./build_viewer_debs_noble.sh
92+
- name: Archive artifact
93+
if: ${{ matrix.ubuntu == 'ubuntu-24.04' && success() }}
94+
uses: actions/upload-artifact@v4
95+
with:
96+
name: DLTViewer-Ubuntu-24.04
97+
path: debtmp/covesa-dlt-viewer_*.deb
98+
13599

136100
buildWindows:
137101
name: Build Windows
138102
strategy:
139103
matrix:
140104
task: [ sdk ]
141-
qt: [ 5 ]
105+
qt: [ 6 ]
142106
runs-on: windows-2022
143107
steps:
144108
- name: Checkout
@@ -149,11 +113,10 @@ jobs:
149113
- name: Install qt
150114
uses: jurplel/install-qt-action@v4
151115
with:
152-
version: 5.15.2
116+
modules: qtserialport
153117
- name: Build with CMake ${{ matrix.task }}
154118
run: >
155119
$env:WORKSPACE=$env:GITHUB_WORKSPACE;
156-
$env:QTDIR=$env:Qt5_DIR.Replace('/','\');
157120
$env:CPACK_7Z="true";
158121
$env:CPACK_NSIS="true";
159122
./build_sdk_windows_qt${{ matrix.qt }}_MSVC_cmake.bat
@@ -166,3 +129,89 @@ jobs:
166129
build/dist/DLTViewer*.7z
167130
build/dist/DLTViewer*.exe
168131
build/dist/*.md
132+
133+
buildMacOSQt6:
134+
name: "Build MacOS ${{ matrix.osversion }} with Qt 6"
135+
runs-on: macos-${{ matrix.osversion }}
136+
strategy:
137+
fail-fast: false
138+
matrix:
139+
osversion: [ 14, 15 ]
140+
141+
steps:
142+
- name: Checkout source
143+
uses: actions/checkout@v4
144+
145+
- name: Install Qt 6 (Framework build)
146+
uses: jurplel/install-qt-action@v4
147+
with:
148+
host: 'mac'
149+
target: 'desktop'
150+
arch: 'clang_64'
151+
modules: 'qtserialport'
152+
153+
- name: Configure project with CMake
154+
run: |
155+
mkdir build
156+
cd build
157+
echo "QT_ROOT_DIR=$QT_ROOT_DIR"
158+
APP_DIR_NAME="DLTViewer.app"
159+
cmake -G Ninja -DCMAKE_PREFIX_PATH=$QT_ROOT_DIR/lib/cmake \
160+
-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0 \
161+
-DCMAKE_BUILD_TYPE=Release \
162+
-DDLT_USE_QT_RPATH=OFF \
163+
-DDLT_PARSER=OFF \
164+
-DDLT_APP_DIR_NAME=${APP_DIR_NAME} \
165+
-DDLT_LIBRARY_INSTALLATION_PATH="${APP_DIR_NAME}/Contents/Frameworks" \
166+
-DDLT_EXECUTABLE_INSTALLATION_PATH="${APP_DIR_NAME}/Contents/MacOS" \
167+
-DDLT_RESOURCE_INSTALLATION_PATH="${APP_DIR_NAME}/Contents/Resources" \
168+
-DDLT_PLUGIN_INSTALLATION_PATH="${APP_DIR_NAME}/Contents/MacOS/plugins" \
169+
..
170+
171+
- name: Build project
172+
run: |
173+
cmake --build build --parallel 4
174+
175+
- name: Install and deploy with macdeployqt
176+
run: |
177+
cmake --install build --prefix $(pwd)/build/install
178+
ls -l build/install/DLTViewer.app
179+
otool -L build/install/DLTViewer.app/Contents/MacOS/dlt-viewer
180+
otool -l build/install/DLTViewer.app/Contents/MacOS/dlt-viewer | grep -A2 LC_RPATH
181+
echo "Deploying DLTViewer.app with macdeployqt"
182+
$QT_ROOT_DIR/bin/macdeployqt build/install/DLTViewer.app -verbose=2 -dmg \
183+
-libpath=$(pwd)/build/install/DLTViewer.app/Contents/Frameworks \
184+
-executable=$(pwd)/build/install/DLTViewer.app/Contents/MacOS/dlt-viewer
185+
186+
- name: Codesign app bundle
187+
if: "! github.event.pull_request.head.repo.fork " # not running on a fork
188+
# Extract the secrets we defined earlier as environment variables
189+
env:
190+
MACOS_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
191+
MACOS_CERTIFICATE_PWD: ${{ secrets.P12_PASSWORD }}
192+
MACOS_CERTIFICATE_NAME: ${{ secrets.APPLE_CERTIFICATE_NAME }}
193+
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.KEYCHAIN_PASSWORD }}
194+
run: scripts/darwin/codesign.sh
195+
196+
- name: Notarize app bundle
197+
if: "! github.event.pull_request.head.repo.fork " # not running on a fork
198+
env:
199+
PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.APPLE_ID }}
200+
PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.TEAM_ID }}
201+
PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.APP_PASSWORD }}
202+
run: scripts/darwin/notarize.sh
203+
204+
- name: Compress artifacts
205+
run: |
206+
cd $(pwd)/build
207+
mkdir -p dist
208+
tar -czvf "dist/DLTViewer-qt6-macos${{ matrix.osversion }}.tgz" -C $(pwd)/install .
209+
210+
- name: Upload artifacts
211+
uses: actions/upload-artifact@v4
212+
if: ${{ success() }}
213+
with:
214+
name: DLTViewer-macos${{ matrix.osversion }}-qt6
215+
path: build/dist/DLTViewer*.tgz
216+
217+

ReleaseNotes_Viewer.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ Changes
1717

1818
2.28.0
1919

20+
* Fix marker when changing filter (#691)
21+
* add cmake presets and update gitignore
22+
* Fix regexp replace functionality in commander (#690)
23+
* Additionally fix the SimpleWriter by opening a file
2024
* Configure Keyboard Shortcuts (#637)
2125
* Add StartupWMClass to .desktop launcher (#686)
2226
* Restore string arg encoding (#684)
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
REM @echo off
2+
3+
REM Date Version Author Changes
4+
REM 4.7.19 1.0 Alexander Wenzel Update to Qt 5.12.4 and Visual Studio 2015
5+
REM 25.11.20 1.1 Alexander Wenzel Update to Qt 5.12.10
6+
REM 11.1.21 1.2 Alexander Wenzel Update to Qt 5.12.12, Visual Studio 2017 Build Tools, simplify and cmake
7+
REM 27.1.21 1.2 Alexander Wenzel Update using cmake install
8+
9+
echo ************************************
10+
echo *** DLT Viewer SDK (cmake) ***
11+
echo ************************************
12+
13+
call build_config.bat
14+
15+
REM https://stackoverflow.com/questions/4983508/can-i-have-an-if-block-in-dos-batch-file
16+
if "%WORKSPACE%"=="" (goto NO_WORKSPACE) else (goto WITH_WORKSPACE)
17+
:NO_WORKSPACE
18+
echo WORKSPACE variable is not defined
19+
set SOURCE_DIR=%CD%
20+
set BUILD_DIR=%SOURCE_DIR%\build\release
21+
set DIST_DIR=%SOURCE_DIR%\build\dist
22+
23+
if "%DLT_VIEWER_SDK_DIR%"=="" (
24+
set DLT_VIEWER_SDK_DIR=c:\DltViewerSDKQt%QTNO%
25+
)
26+
27+
goto Continue1
28+
:WITH_WORKSPACE
29+
set SOURCE_DIR=%WORKSPACE%
30+
set BUILD_DIR=%SOURCE_DIR%\build\release
31+
set DIST_DIR=%SOURCE_DIR%\build\dist
32+
33+
if "%DLT_VIEWER_SDK_DIR%"=="" (
34+
set DLT_VIEWER_SDK_DIR=%DIST_DIR%\DltViewerSDKQt%QTNO%
35+
)
36+
:Continue1
37+
38+
echo ************************************
39+
echo * QTDIR = %QTDIR%
40+
echo * MSVC_DIR = %MSVC_DIR%
41+
echo * PATH = %PATH%
42+
echo * DLT_VIEWER_SDK_DIR = %DLT_VIEWER_SDK_DIR%
43+
echo * SOURCE_DIR = %SOURCE_DIR%
44+
echo * BUILD_DIR = %BUILD_DIR%
45+
echo * DIST_DIR = %DIST_DIR%
46+
echo ************************************
47+
48+
if exist build (
49+
echo ************************************
50+
echo *** Delete old build Directory ***
51+
echo ************************************
52+
53+
rmdir /s /q build || rem
54+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
55+
56+
)
57+
58+
echo ************************************
59+
echo *** Configure MSVC environment ***
60+
echo ************************************
61+
62+
call vcvarsall.bat x86_amd64
63+
if %ERRORLEVEL% NEQ 0 goto ERROR_HANDLER
64+
echo configuring was successful
65+
66+
if exist %DLT_VIEWER_SDK_DIR% (
67+
echo ************************************
68+
echo *** Delete old SDK Directory ***
69+
echo ************************************
70+
71+
rmdir /s /q %DLT_VIEWER_SDK_DIR% || rem
72+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
73+
)
74+
75+
echo ************************************
76+
echo *** Build DLT Viewer ***
77+
echo ************************************
78+
79+
mkdir build
80+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
81+
82+
cd build
83+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
84+
85+
mkdir Release
86+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
87+
88+
cd Release
89+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
90+
91+
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DDLT_PARSER=ON -DCMAKE_INSTALL_PREFIX=%DLT_VIEWER_SDK_DIR% ..\..
92+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
93+
94+
for /f "skip=2 tokens=2 delims== " %%C in ('wmic cpu get NumberOfLogicalProcessors /value') do set /a PARALLEL=%%C-1
95+
if %PARALLEL% LSS 1 set PARALLEL=1
96+
97+
echo * PARALLEL = %PARALLEL%
98+
99+
cmake --build . --parallel %PARALLEL%
100+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
101+
102+
echo ************************************
103+
echo *** Create SDK ***
104+
echo ************************************
105+
106+
cmake --install .
107+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
108+
109+
if "%CPACK_7Z%" NEQ "" (
110+
echo CPack 7Z
111+
"C:\Program Files\CMake\bin\cpack" -G 7Z
112+
cp DLTViewer*.7z %DIST_DIR%\
113+
)
114+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
115+
116+
if "%CPACK_NSIS%" NEQ "" (
117+
echo CPack NSIS
118+
"C:\Program Files\CMake\bin\cpack" -G NSIS
119+
cp DLTViewer*.exe %DIST_DIR%\
120+
)
121+
if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER
122+
123+
GOTO QUIT
124+
125+
:ERROR_HANDLER
126+
echo ####################################
127+
echo ### ERROR occured ###
128+
echo ####################################
129+
exit /b 1
130+
131+
:QUIT
132+
echo ************************************
133+
echo *** SUCCESS finish ***
134+
echo ************************************
135+
echo SDK installed in: %DLT_VIEWER_SDK_DIR%
136+
exit /b 0

build_viewer_debs_noble.sh

100644100755
File mode changed.

noble/debian/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Source: covesa-dlt-viewer
22
Section: Development
33
Priority: optional
44
Maintainer: AlexanderWenzel <[email protected]>
5-
Build-Depends: debhelper (>= 9), qtbase5-dev, libqt5serialport5-dev
5+
Build-Depends: debhelper (>= 9), qt6-base-dev, qt6-serialport-dev
66

77
Package: covesa-dlt-viewer
88
Architecture: any

noble/debian/rules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ build-stamp:
2020
dh_testdir
2121

2222
# Add here commands to compile the package.
23-
qmake BuildDltViewer.pro
23+
qmake6 BuildDltViewer.pro
2424
make -j $(shell grep -c processor /proc/cpuinfo)
2525
# --- end custom part for compiling
2626

plugin/plugin.pri

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ QT_VER_MIN = $$member(QT_VERSION, 1)
1818
}
1919

2020
*-g++* {
21-
QMAKE_CXXFLAGS += -std=gnu++0x
2221
QMAKE_CXXFLAGS += -Wall
2322
QMAKE_CXXFLAGS += -Wextra
2423
# Limit symbol visibility to avoid symbol clashes between different

0 commit comments

Comments
 (0)