Files
librepods/linux/CMakeLists.txt
Fabian Moor Pucar af2622b68e feat(linux): add librepods-ctl CLI tool for IPC control (#494)
* feat(linux): expanded IPC socket handler with CLI command support

* feat(linux): added librepods-ctl CLI tool for IPC control

* build(linux): added librepods-ctl as a seperate binary

* docs(linux): added CLI control usage to README
2026-03-31 09:09:37 +05:30

113 lines
2.7 KiB
CMake

cmake_minimum_required(VERSION 3.16)
project(linux VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS Quick Widgets Bluetooth DBus LinguistTools)
find_package(OpenSSL REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(PULSEAUDIO REQUIRED libpulse)
qt_standard_project_setup()
# Translation files
set(TS_FILES
translations/librepods_tr.ts
)
qt_add_executable(librepods
main.cpp
logger.h
media/mediacontroller.cpp
media/mediacontroller.h
media/pulseaudiocontroller.cpp
media/pulseaudiocontroller.h
airpods_packets.h
trayiconmanager.cpp
trayiconmanager.h
enums.h
battery.hpp
BluetoothMonitor.cpp
BluetoothMonitor.h
autostartmanager.hpp
BasicControlCommand.hpp
deviceinfo.hpp
ble/bleutils.cpp
ble/bleutils.h
ble/blemanager.cpp
ble/blemanager.h
thirdparty/QR-Code-generator/qrcodegen.cpp
thirdparty/QR-Code-generator/qrcodegen.hpp
QRCodeImageProvider.hpp
eardetection.hpp
media/playerstatuswatcher.cpp
media/playerstatuswatcher.h
systemsleepmonitor.hpp
)
qt_add_qml_module(librepods
URI linux
VERSION 1.0
QML_FILES
Main.qml
BatteryIndicator.qml
SegmentedControl.qml
PodColumn.qml
Icon.qml
KeysQRDialog.qml
)
# Add the resource file
qt_add_resources(librepods "resources"
PREFIX "/icons"
FILES
assets/airpods.png
assets/pod.png
assets/pod_case.png
assets/pod3.png
assets/pod3_case.png
assets/pod4_case.png
assets/podpro.png
assets/podpro_case.png
assets/podmax.png
assets/fonts/SF-Symbols-6.ttf
)
target_link_libraries(librepods
PRIVATE Qt6::Quick Qt6::Widgets Qt6::Bluetooth Qt6::DBus OpenSSL::SSL OpenSSL::Crypto ${PULSEAUDIO_LIBRARIES}
)
qt_add_executable(librepods-ctl
librepods-ctl.cpp
)
target_link_libraries(librepods-ctl
PRIVATE Qt6::Core Qt6::Network
)
install(TARGETS librepods-ctl
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
target_include_directories(librepods PRIVATE ${PULSEAUDIO_INCLUDE_DIRS})
include(GNUInstallDirs)
install(TARGETS librepods
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install(FILES assets/me.kavishdevar.librepods.desktop
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
install(FILES assets/librepods.png
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps")
# Translation support
qt_add_translations(librepods
TS_FILES ${TS_FILES}
QM_FILES_OUTPUT_VARIABLE QM_FILES
)
# Install translation files
install(FILES ${QM_FILES}
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/librepods/translations")