status-desktop/app/CMakeLists.txt

87 lines
2.8 KiB
CMake

set(QT_NO_CREATE_VERSIONLESS_FUNCTIONS true)
set(CMAKE_AUTORCC On)
find_package(Qt6 ${STATUS_QT_VERSION} COMPONENTS Quick REQUIRED)
qt6_standard_project_setup()
qt6_add_executable(${PROJECT_NAME})
# TODO: Fix temporarly workaround until we make qt6_target_qml_sources work
# Adds qml files as /Status/Application/qml/.../<file name>
qt6_add_qml_module(${PROJECT_NAME}
URI Status.Application
VERSION 1.0
QML_FILES
qml/main.qml
qml/Status/Application/Decorators/SplashScreen.qml
qml/Status/Application/MainView/MainView.qml
qml/Status/Application/MainView/StatusApplicationSections.qml
qml/Status/Application/Settings/ApplicationSettings.qml
qml/Status/Application/System/StatusTrayIcon.qml
qml/Status/Application/Workflows/CloseApplicationHandler.qml
qml/Status/Application/StatusContentView.qml
qml/Status/Application/MainShortcuts.qml
qml/Status/Application/StatusWindow.qml
SOURCES
res/app.qrc
OUTPUT_DIRECTORY
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Status/Application
)
# Compile time definitions required by the project
target_compile_definitions(${PROJECT_NAME} PRIVATE BUILD_PROJECT_NAME="${PROJECT_NAME}")
target_compile_definitions(${PROJECT_NAME} PRIVATE BUILD_PROJECT_ORGANIZATION_DOMAIN="${PROJECT_ORGANIZATION_DOMAIN}")
target_compile_definitions(${PROJECT_NAME} PRIVATE BUILD_PROJECT_ORGANIZATION_NAME="${PROJECT_ORGANIZATION_NAME}")
target_compile_definitions(${PROJECT_NAME} PRIVATE BUILD_PROJECT_APPLICATION_NAME="${PROJECT_APPLICATION_NAME}")
target_compile_definitions(${PROJECT_NAME} PRIVATE BUILD_BINARY_DIR=${CMAKE_BINARY_DIR})
target_compile_definitions(${PROJECT_NAME} PRIVATE BUILD_SOURCE_DIR=${CMAKE_SOURCE_DIR})
add_subdirectory(qml/Status/Application/Navigation)
add_subdirectory(src)
include(${CMAKE_SOURCE_DIR}/cmake/platform_specific.cmake)
string(TOLOWER ${PROJECT_ORGANIZATION_NAME} URL_ORGANIZATION_NAME)
configure_app_os_specific(${PROJECT_NAME} ${URL_ORGANIZATION_NAME} ${PROJECT_ORGANIZATION_DOMAIN} ${PROJECT_VERSION_MAJOR} ${PROJECT_VERSION_MINOR} ${PROJECT_VERSION_PATCH})
target_compile_definitions(${PROJECT_NAME}
PRIVATE
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
)
target_link_libraries(${PROJECT_NAME}
PRIVATE
Qt6::Quick
Status::Application::Navigation
# TODO: Use Status:: namespace
Status::ApplicationCore
Status::Helpers
Status::ChatSection
Status::Onboarding
Status::Wallet
Status::Assets
Status::StatusQ
Status::StatusGoQt
)
# QtCreator needs this
set(QML_IMPORT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/qml;${QML_IMPORT_PATH} CACHE STRING "For QtCreator" FORCE)
list(REMOVE_DUPLICATES QML_IMPORT_PATH)
install(
TARGETS
${PROJECT_NAME}
RUNTIME
)