Getting liblsl
There are three ways to get liblsl, in order of how closely they track this repository:
Build it as part of your project with CMake’s
FetchContent. You always get exactly the version you ask for, built with your compiler and settings. See Using liblsl in your project.Download a release from the GitHub releases page. These are built and tested by this repository’s CI for every release (
<arch>isx86_64,arm64,armori386; releases before 1.18 sayamd64instead ofx86_64):Platform
Asset
Contents
Windows (x64, x86, ARM64)
liblsl-<version>-Win_<arch>.ziplsl.dll, import library, headers, CMake packageUbuntu (several releases; x64, arm64, armhf)
liblsl-<version>-<codename>_<arch>.deb/.tar.gzshared library, headers, CMake package, pkg-config file
macOS (universal)
liblsl-<version>-Darwin-universal.pkgsigned, notarized installer that puts
lsl.frameworkin/Library/FrameworksmacOS, iOS, iOS simulator
lsl.xcframework.<version>.zipsigned xcframework for Xcode projects (see iOS)
Windows MinGW (UCRT x64, ARM64), from 1.18
liblsl-<version>-MinGW-<msys>-<DLL|static>.zipMinGW-built library, for MSYS2 toolchains
Install it with a package manager. These are maintained separately from this repository and are sometimes several releases behind; check the version before relying on a recent fix:
conda-forge:
conda install -c conda-forge liblslvcpkg:
vcpkg install liblslHomebrew:
brew install labstreaminglayer/tap/lsl(a shared library with headers, a CMake package and a pkg-config file, like on Linux)
All of these install the same CMake package (find_package(LSL) → target LSL::lsl), so
the linking instructions are the same whichever you choose.
You may not need liblsl directly at all: most LSL users work through an application (for example LabRecorder) or a language binding (Python, MATLAB, C#, …) that bundles it. See the LSL documentation for the wider ecosystem.
Package-manager maintainers: see Maintaining package ports.