Switch to cmake
This commit is contained in:
parent
913d7df56d
commit
c1f6b6e90f
23 changed files with 155 additions and 189 deletions
124
CMakeLists.txt
Normal file
124
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
cmake_minimum_required(VERSION 4.0)
|
||||
|
||||
project(SHinterface VERSION 1.0 LANGUAGES CXX)
|
||||
|
||||
# Set C++ standard
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# Enable all warnings
|
||||
add_compile_options(-Wall)
|
||||
|
||||
# Find Qt packages
|
||||
find_package(Qt6 COMPONENTS Core Gui Widgets Network Multimedia SerialPort REQUIRED)
|
||||
|
||||
# Find dependencies using pkg-config
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(PIPEWIRE REQUIRED libpipewire-0.3)
|
||||
pkg_check_modules(LIBNL3 REQUIRED libnl-3.0 libnl-genl-3.0)
|
||||
|
||||
# Enable automatic moc and uic processing
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
# Add src to include path for relative includes
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
|
||||
# Create executable
|
||||
add_executable(SHinterface)
|
||||
|
||||
# Add sources to executable
|
||||
target_sources(SHinterface
|
||||
PRIVATE
|
||||
src/main.cpp
|
||||
src/mainobject.cpp
|
||||
src/apgetconnected.cpp
|
||||
src/microcontroller.cpp
|
||||
src/sun.cpp
|
||||
src/programmode.cpp
|
||||
src/tcpserver.cpp
|
||||
src/pipewire.cpp
|
||||
|
||||
src/actors/actor.cpp
|
||||
src/actors/factoractor.cpp
|
||||
src/actors/polynomalactor.cpp
|
||||
src/actors/sensoractor.cpp
|
||||
src/actors/alarmtime.cpp
|
||||
src/actors/regulator.cpp
|
||||
src/actors/timeractor.cpp
|
||||
|
||||
src/sensors/sensor.cpp
|
||||
src/sensors/sunsensor.cpp
|
||||
|
||||
src/items/item.cpp
|
||||
src/items/relay.cpp
|
||||
src/items/poweritem.cpp
|
||||
src/items/messageitem.cpp
|
||||
src/items/systemitem.cpp
|
||||
src/items/auxitem.cpp
|
||||
src/items/rgbitem.cpp
|
||||
src/items/itemsource.cpp
|
||||
src/items/itemloadersource.cpp
|
||||
src/items/fixeditemsource.cpp
|
||||
src/items/itemstore.cpp
|
||||
|
||||
src/ui/mainwindow.cpp
|
||||
src/ui/itemwidget.cpp
|
||||
src/ui/itemscrollbox.cpp
|
||||
src/ui/sensorlistwidget.cpp
|
||||
src/ui/itemcreationdialog.cpp
|
||||
src/ui/itemsettingsdialog.cpp
|
||||
src/ui/actorsettingsdialog.cpp
|
||||
|
||||
src/ui/actorwidgets/factoractorwidget.cpp
|
||||
src/ui/actorwidgets/polynomalactorwidget.cpp
|
||||
src/ui/actorwidgets/sensoractorwidget.cpp
|
||||
src/ui/actorwidgets/timeractorwidget.cpp
|
||||
src/ui/actorwidgets/alarmwidget.cpp
|
||||
src/ui/actorwidgets/regulatorwdiget.cpp
|
||||
|
||||
src/ui/itemsettingswidgets/messageitemsettingswidget.cpp
|
||||
src/ui/itemsettingswidgets/relayitemsettingswidget.cpp
|
||||
src/ui/itemsettingswidgets/systemitemsettingswidget.cpp
|
||||
)
|
||||
|
||||
# Add UI files
|
||||
target_sources(SHinterface
|
||||
PRIVATE
|
||||
src/ui/mainwindow.ui
|
||||
src/ui/itemwidget.ui
|
||||
src/ui/relayscrollbox.ui
|
||||
src/ui/itemcreationdialog.ui
|
||||
src/ui/itemsettingsdialog.ui
|
||||
src/ui/actorsettingsdialog.ui
|
||||
src/ui/actorwidgets/factoractorwidget.ui
|
||||
src/ui/actorwidgets/polynomalactorwidget.ui
|
||||
src/ui/actorwidgets/sensoractorwidget.ui
|
||||
src/ui/actorwidgets/timeractorwidget.ui
|
||||
src/ui/actorwidgets/alarmwidget.ui
|
||||
src/ui/actorwidgets/regulatorwdiget.ui
|
||||
src/ui/itemsettingswidgets/messageitemsettingswidget.ui
|
||||
src/ui/itemsettingswidgets/relayitemsettingswidget.ui
|
||||
src/ui/itemsettingswidgets/systemitemsettingswidget.ui
|
||||
)
|
||||
|
||||
# Add resource file
|
||||
target_sources(SHinterface
|
||||
PRIVATE
|
||||
resources.qrc
|
||||
)
|
||||
|
||||
# Link libraries
|
||||
target_link_libraries(SHinterface
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::Widgets
|
||||
Qt6::Network
|
||||
Qt6::Multimedia
|
||||
Qt6::SerialPort
|
||||
${PIPEWIRE_LIBRARIES}
|
||||
${LIBNL3_LIBRARIES}
|
||||
)
|
||||
|
||||
# Add include paths
|
||||
include_directories(${PIPEWIRE_INCLUDE_DIRS} ${LIBNL3_INCLUDE_DIRS})
|
||||
Loading…
Add table
Add a link
Reference in a new issue