AdvancedControllerRemoteCPP/CMakeLists.txt

41 lines
1.4 KiB
CMake

# AdvancedControllerRemoteCPP - remote control of the AdvancedController from Linux (C++ / Qt 6)
#
# Layout:
# lib/ static library AdvancedControllerRemote - protocol client (link it into your software)
# panel/ AdvancedControllerPanel - the virtual front panel (Qt Widgets)
# tools/ remote_test - console test tool
#
# Build and run:
# ./build.sh
# ./run.sh
cmake_minimum_required(VERSION 3.16)
project(AdvancedControllerRemote LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Linux RPATH settings: ensure executables locate libraries in standard/local paths
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "$ORIGIN;$ORIGIN/../lib;$ORIGIN/lib;/usr/lib/x86_64-linux-gnu;$ENV{HOME}/.local/lib/x86_64-linux-gnu;$ENV{HOME}/.local/lib")
# Locate Qt6SerialPort if installed in user local directory or custom prefix
if(NOT DEFINED Qt6SerialPort_DIR)
find_path(Qt6SerialPort_DIR Qt6SerialPortConfig.cmake
PATHS
/usr/lib/x86_64-linux-gnu/cmake/Qt6SerialPort
/usr/lib64/cmake/Qt6SerialPort
/usr/lib/cmake/Qt6SerialPort
"$ENV{HOME}/.local/lib/x86_64-linux-gnu/cmake/Qt6SerialPort"
"$ENV{HOME}/.local/lib/cmake/Qt6SerialPort"
)
endif()
find_package(Qt6 6.5 REQUIRED COMPONENTS Core Gui Widgets SerialPort)
qt_standard_project_setup()
add_subdirectory(lib)
add_subdirectory(panel)
add_subdirectory(tools)