f8632e40e7
Add a native Qt "Bigscreen" shell: CMakeLists, C++ entry (main.cpp, InputRouter), QML module (Theme, ShellWindow, views and components) and a Bigscreen/.gitignore; update top-level .gitignore and README with Qt build/run instructions. Remove the legacy Tauri/web prototype files (package.json, package-lock.json, src-tauri and many web assets) as part of the migration to the Qt/CMake-based shell.
70 lines
1.8 KiB
CMake
70 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
|
|
project(NebulaBigscreen VERSION 0.1.0 LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
find_package(Qt6 6.5 REQUIRED COMPONENTS Quick Gui)
|
|
|
|
qt_standard_project_setup(REQUIRES 6.5)
|
|
qt_policy(SET QTP0004 NEW)
|
|
|
|
set(BIGSCREEN_QML_FILES
|
|
qml/Main.qml
|
|
qml/ShellWindow.qml
|
|
qml/Theme.qml
|
|
qml/components/NebulaBackground.qml
|
|
qml/components/TopBar.qml
|
|
qml/components/AppTile.qml
|
|
qml/components/TileRail.qml
|
|
qml/components/PowerOverlay.qml
|
|
qml/views/HomeView.qml
|
|
qml/views/LibraryView.qml
|
|
qml/views/SettingsView.qml
|
|
)
|
|
|
|
set_source_files_properties(qml/Theme.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
|
|
|
|
qt_add_executable(nebula-bigscreen
|
|
src/main.cpp
|
|
src/InputRouter.cpp
|
|
src/InputRouter.h
|
|
)
|
|
|
|
qt_add_qml_module(nebula-bigscreen
|
|
URI Nebula.Bigscreen
|
|
VERSION 1.0
|
|
QML_FILES ${BIGSCREEN_QML_FILES}
|
|
)
|
|
|
|
target_link_libraries(nebula-bigscreen
|
|
PRIVATE
|
|
Qt6::Quick
|
|
Qt6::Gui
|
|
)
|
|
|
|
if(WIN32)
|
|
set_target_properties(nebula-bigscreen PROPERTIES WIN32_EXECUTABLE TRUE)
|
|
|
|
get_target_property(_qmake_executable Qt6::qmake IMPORTED_LOCATION)
|
|
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
|
|
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${_qt_bin_dir}" REQUIRED)
|
|
|
|
add_custom_command(
|
|
TARGET nebula-bigscreen
|
|
POST_BUILD
|
|
COMMAND "${WINDEPLOYQT_EXECUTABLE}"
|
|
$<$<CONFIG:Debug>:--debug>
|
|
$<$<NOT:$<CONFIG:Debug>>:--release>
|
|
--qmldir "${CMAKE_CURRENT_SOURCE_DIR}/qml"
|
|
"$<TARGET_FILE:nebula-bigscreen>"
|
|
COMMENT "Deploying Qt runtime DLLs next to nebula-bigscreen"
|
|
)
|
|
endif()
|
|
|
|
install(TARGETS nebula-bigscreen RUNTIME DESTINATION bin)
|