Skip to content

Commit ab0de12

Browse files
authored
Merge pull request #91 from labstreaminglayer/cboulay/build_update
Build Update -- Simpler Qt version management and new target Ubuntu jammy
2 parents 2647f05 + d0d4a9a commit ab0de12

File tree

3 files changed

+51
-38
lines changed

3 files changed

+51
-38
lines changed

.github/workflows/cppcmake.yml

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@ jobs:
2929
fail-fast: false
3030
matrix:
3131
config:
32+
- name: "ubuntu-22.04"
33+
os: "ubuntu-latest"
3234
- name: "ubuntu-20.04"
3335
os: "ubuntu-20.04"
34-
qt_ver: "6.3.0"
3536
- name: "ubuntu-18.04"
3637
os: "ubuntu-18.04"
3738
qt_ver: "5.12.12"
@@ -40,7 +41,7 @@ jobs:
4041
cmake_extra: "-T v142,host=x86"
4142
arch: "amd64"
4243
qt_arch: "win64_msvc2019_64"
43-
qt_ver: "6.3.0"
44+
qt_ver: "6.4.0"
4445
- name: "windows-x86"
4546
os: "windows-latest"
4647
cmake_extra: "-T v142,host=x86 -A Win32"
@@ -49,7 +50,6 @@ jobs:
4950
qt_ver: "5.15.2"
5051
- name: "macOS-10"
5152
os: "macos-10.15"
52-
qt_ver: "6.3.0"
5353
steps:
5454
- uses: actions/checkout@v2
5555

@@ -70,12 +70,25 @@ jobs:
7070
if: startsWith(matrix.config.os, 'macos-')
7171
run: brew install labstreaminglayer/tap/lsl
7272

73-
- name: Install Qt
73+
- name: Install Qt (Window and Ubuntu bionic)
74+
if: (matrix.config.os == 'windows-latest') || (matrix.config.os == 'ubuntu-18.04')
7475
uses: jurplel/[email protected]
7576
with:
7677
version: ${{ matrix.config.qt_ver }}
7778
arch: ${{ matrix.config.qt_arch }}
7879

80+
- name: Install Qt (Ubuntu focal)
81+
if: matrix.config.os == 'ubuntu-20.04'
82+
run: sudo apt install qtbase5-dev
83+
84+
- name: Install Qt (Ubuntu jammy)
85+
if: matrix.config.os == 'ubuntu-latest'
86+
run: sudo apt install qt6-base-dev freeglut3-dev
87+
88+
- name: Install Qt (MacOS)
89+
if: startsWith(matrix.config.os, 'macos-')
90+
run: brew install qt
91+
7992
- name: Configure CMake
8093
run: |
8194
cmake --version

CMakeLists.txt

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ project(LabRecorder
55
DESCRIPTION "Record and write LabStreamingLayer streams to an XDF file"
66
HOMEPAGE_URL "https://github.com/labstreaminglayer/App-LabRecorder/"
77
LANGUAGES C CXX
8-
VERSION 1.16.2)
8+
VERSION 1.16.3)
99

1010
# Needed for customized MacOSXBundleInfo.plist.in
1111
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake" ${CMAKE_MODULE_PATH})
@@ -44,22 +44,15 @@ if (BUILD_GUI)
4444
set(CMAKE_AUTOMOC ON) # The later version of this in LSLCMake is somehow not enough.
4545
set(CMAKE_AUTORCC ON)
4646
set(CMAKE_AUTOUIC ON)
47-
find_package(Qt6 COMPONENTS Core Widgets Network DBus)
48-
if(NOT Qt6_FOUND)
49-
# If we require 5.15 then we can use version-agnostic linking, but 5.15 not easily available on Ubuntu.
50-
find_package(Qt5 COMPONENTS Core Widgets Network DBus REQUIRED)
51-
add_executable(${PROJECT_NAME} MACOSX_BUNDLE)
52-
set(LSLAPP_QT_VER Qt5)
53-
else()
54-
qt_add_executable(${PROJECT_NAME} MACOSX_BUNDLE MANUAL_FINALIZATION)
55-
set(LSLAPP_QT_VER Qt)
56-
endif()
47+
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
48+
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Widgets Network DBus)
5749
endif(BUILD_GUI)
5850

5951
## Threads
6052
find_package(Threads REQUIRED)
6153

6254
# Targets
55+
add_executable(${PROJECT_NAME} MACOSX_BUNDLE)
6356

6457
## xdfwriter - stand alone library
6558
add_subdirectory(xdfwriter)
@@ -79,9 +72,10 @@ if (BUILD_GUI)
7972
target_link_libraries(${PROJECT_NAME}
8073
PRIVATE
8174
xdfwriter
82-
${LSLAPP_QT_VER}::Widgets
83-
${LSLAPP_QT_VER}::Network
84-
${LSLAPP_QT_VER}::DBus
75+
Qt${QT_VERSION_MAJOR}::Core
76+
Qt${QT_VERSION_MAJOR}::Widgets
77+
Qt${QT_VERSION_MAJOR}::Network
78+
Qt${QT_VERSION_MAJOR}::DBus
8579
Threads::Threads
8680
LSL::lsl
8781
)

README.md

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,44 +11,50 @@ The file format used by the LabRecorder is XDF. This is an open general-purpose
1111

1212
# Getting LabRecorder
1313

14-
## Dependencies
14+
The [releases page](https://github.com/labstreaminglayer/App-LabRecorder/releases) contains archives of past LabRecorder builds. Try downloading and running an archive that matches your platform.
1515

16-
For LabRecorder to work on your system, you might need to first install some dependencies.
16+
If there are no archives matching your target platform, or the ones available don't run, then continue reading below. If the instructions don't help then please post an issue to the [repo's issues page](https://github.com/labstreaminglayer/App-LabRecorder/issues).
1717

18-
### MacOS
18+
## Dependencies
1919

20-
In the near future it will be necessary to use [homebrew](https://brew.sh/) to manage LSL Apps and their dependencies:
21-
* Install homebrew: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
20+
For LabRecorder to work on your system, you might need to first install some dependencies, specifically liblsl and optionally Qt.
2221

23-
### Linux Ubuntu
22+
### Windows
2423

25-
The Ubuntu releases do not typically ship with their dependencies so you will also have to download and install those:
26-
* Download and install the latest [liblsl-{version}-bionic_amd64.deb from its release page](https://github.com/sccn/liblsl/releases)
27-
* We hope to make this available via a package manager soon.
28-
* You can install liblsl directly by double clicking on it, or with with `sudo dpkg -i {filename}.deb`
29-
* See the bottom of the [lsl build env docs](https://labstreaminglayer.readthedocs.io/dev/build_env.html).
30-
* For most cases, this will amount to `sudo apt-get install qtbase5-dev`
31-
32-
## Downloading LabRecorder
24+
The Windows archives ship with all required dependencies. If you suspect you are missing a dependency, try running [Dependencies.exe](https://github.com/lucasg/Dependencies/releases) then navigating to the LabRecorder.exe. It's important to launch Dependencies.exe from the same environment that you would use to launch this application: if you launch this application by double-clicking the executable in Windows' finder then do the same on the Dependencies.exe icon; if you launch this application in a Terminal window, then use that same Terminal to launch Dependencies.
3325

3426
### MacOS
3527

36-
* `brew install labstreaminglayer/tap/labrecorder`
28+
In the near future, many LSL Apps (especially LabRecorder) will not ship with their dependencies and will look for the dependencies to be installed on the system. The easiest way to manage the dependencies is by using [homebrew](https://brew.sh/):
29+
* Install homebrew: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
30+
* `brew install labstreaminglayer/tap/lsl`
31+
* `brew install qt`
32+
33+
You can then install LabRecorder directly from homebrew: `brew install labrecorder`
3734

38-
* Run it with `open /usr/local/opt/labrecorder/LabRecorder/LabRecorder.app`
35+
Run it with `open /usr/local/opt/labrecorder/LabRecorder/LabRecorder.app`
3936

40-
### Others
37+
### Linux Ubuntu
4138

42-
Navigate to the [`releases` page](https://github.com/labstreaminglayer/App-LabRecorder/releases) and download the latest release for your platform.
39+
The Ubuntu releases do not typically ship with their dependencies, so you must download and install those:
40+
* Download, extract, and install the latest [liblsl-{version}-{target}_amd64.deb from its release page](https://github.com/sccn/liblsl/releases)
41+
* We hope to make this available via a package manager soon.
42+
* Quick ref Ubuntu 20.04: `curl -L https://github.com/sccn/liblsl/releases/download/v1.16.0/liblsl-1.16.0-bionic_amd64.deb -o liblsl.deb`
43+
* Quick ref Ubuntu 22.04: `curl -L https://github.com/sccn/liblsl/releases/download/v1.16.0/liblsl-1.16.0-jammy_amd64.deb -o liblsl.deb`
44+
* You can install liblsl directly by double-clicking on the deb, or with `sudo dpkg -i {filename}.deb` or `sudo apt install {filename}.deb`
45+
* See the bottom of the [lsl build env docs](https://labstreaminglayer.readthedocs.io/dev/build_env.html).
46+
* For most cases, this will amount to installing Qt and its dependencies:
47+
* Ubuntu 18.xx or 20.xx: `sudo apt-get install build-essential qtbase5-dev libpugixml-dev`
48+
* Ubuntu >= 22.04: `sudo apt-get install qt6-base-dev freeglut3-dev`
4349

4450
# Usage
4551

4652
The LabRecorder displays a list of currently present device streams under "Record from Streams". If you have turned on a device after you have already started the recorder, click the "Update" button to update the list (this takes ca. 2 seconds).
47-
> For testing you can use a "dummy" device from the `lslexamples` found in the [liblsl release assets](https://github.com/sccn/liblsl/releases) (for example SendData<!--, SendStringMarkers, and SendDataSimple-->).
53+
> For testing, you can use a "dummy" device from the `lslexamples` found in the [liblsl release assets](https://github.com/sccn/liblsl/releases) (for example SendData<!--, SendStringMarkers, and SendDataSimple-->).
4854
4955
If you cannot see streams that are provided on another computer, read the section Network Troubleshooting on the NetworkConnectivity page.
5056

51-
You can select which streams you want to record from and which not by checking the check boxes next to them.
57+
You can select which streams you want to record from and which not by checking the checkboxes next to them.
5258
> ![labrecorder-default.png](doc/labrecorder-default.png)
5359
5460
Note that if you have multiple streams with the same name and host, it is impossible to check only 1. If any is checked then they will all be recorded.

0 commit comments

Comments
 (0)