|
|
|
|
cmake_minimum_required(VERSION 3.16)
|
|
|
|
|
|
|
|
|
|
project(CutefishFramework
|
|
|
|
|
VERSION 1.0.0
|
|
|
|
|
LANGUAGES CXX
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
|
|
|
|
|
|
list(APPEND CMAKE_MODULE_PATH
|
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
|
include(GenerateExportHeader)
|
|
|
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
|
|
|
|
|
|
find_package(Qt6 REQUIRED COMPONENTS
|
|
|
|
|
Core
|
|
|
|
|
Qml
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
qt_policy(SET QTP0001 NEW)
|
|
|
|
|
|
|
|
|
|
function(cutefish_install_qml_module target)
|
|
|
|
|
qt_query_qml_module("${target}"
|
|
|
|
|
TARGET_PATH module_path
|
|
|
|
|
QMLDIR module_qmldir
|
|
|
|
|
TYPEINFO module_qmltypes
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(module_install_dir "${INSTALL_QMLDIR}/${module_path}")
|
|
|
|
|
install(TARGETS "${target}" DESTINATION "${module_install_dir}")
|
|
|
|
|
install(FILES "${module_qmldir}" DESTINATION "${module_install_dir}")
|
|
|
|
|
|
|
|
|
|
if(module_qmltypes)
|
|
|
|
|
install(FILES "${module_qmltypes}" DESTINATION "${module_install_dir}")
|
|
|
|
|
endif()
|
|
|
|
|
endfunction()
|
|
|
|
|
|
|
|
|
|
# Get the installation directory from Qt 6
|
|
|
|
|
find_program(QT_PATHS_EXECUTABLE NAMES qtpaths6 REQUIRED)
|
|
|
|
|
|
|
|
|
|
execute_process(COMMAND ${QT_PATHS_EXECUTABLE} -query QT_INSTALL_QML
|
|
|
|
|
OUTPUT_VARIABLE INSTALL_QMLDIR
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
|
)
|
|
|
|
|
if(INSTALL_QMLDIR)
|
|
|
|
|
message(STATUS "qml directory:" "${INSTALL_QMLDIR}")
|
|
|
|
|
else()
|
|
|
|
|
message(FATAL_ERROR "qml directory cannot be detected.")
|
|
|
|
|
endif()
|
|
|
|
|
# -------------------------------------------
|
|
|
|
|
|
|
|
|
|
add_subdirectory(applications)
|
|
|
|
|
add_subdirectory(accounts)
|
|
|
|
|
add_subdirectory(bluetooth)
|
|
|
|
|
add_subdirectory(media)
|
|
|
|
|
add_subdirectory(network)
|
|
|
|
|
add_subdirectory(screen)
|
|
|
|
|
add_subdirectory(appearance)
|
|
|
|
|
add_subdirectory(audio)
|