35 lines
1.4 KiB
CMake
35 lines
1.4 KiB
CMake
message(STATUS "QML install dir: ${CMAKE_INSTALL_PREFIX}/${INSTALL_QMLDIR}")
|
|
|
|
function(qml_module arg_TARGET)
|
|
cmake_parse_arguments(PARSE_ARGV 1 arg "" "URI" "SOURCES;QML_FILES;QML_SINGLETONS;DEPENDENCIES;IMPORTS;OPTIONAL_IMPORTS;DEFAULT_IMPORTS;LIBRARIES")
|
|
|
|
set_source_files_properties(${arg_QML_SINGLETONS} PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
|
|
|
|
qt_add_qml_module(${arg_TARGET}
|
|
URI ${arg_URI}
|
|
SOURCES ${arg_SOURCES}
|
|
QML_FILES ${arg_QML_FILES} ${arg_QML_SINGLETONS}
|
|
DEPENDENCIES ${arg_DEPENDENCIES}
|
|
IMPORTS ${arg_IMPORTS}
|
|
OPTIONAL_IMPORTS ${arg_OPTIONAL_IMPORTS}
|
|
DEFAULT_IMPORTS ${arg_DEFAULT_IMPORTS}
|
|
)
|
|
|
|
qt_query_qml_module(${arg_TARGET}
|
|
URI module_uri
|
|
PLUGIN_TARGET module_plugin_target
|
|
TARGET_PATH module_target_path
|
|
QMLDIR module_qmldir
|
|
TYPEINFO module_typeinfo
|
|
)
|
|
|
|
message(STATUS "Created QML module: ${module_uri}")
|
|
|
|
set(module_dir "${INSTALL_QMLDIR}/${module_target_path}")
|
|
install(TARGETS ${arg_TARGET} LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}")
|
|
install(TARGETS "${module_plugin_target}" LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}")
|
|
install(FILES "${module_qmldir}" DESTINATION "${module_dir}")
|
|
install(FILES "${module_typeinfo}" DESTINATION "${module_dir}")
|
|
|
|
target_link_libraries(${arg_TARGET} PRIVATE caelestia-pch Qt::Core Qt::Qml ${arg_LIBRARIES})
|
|
endfunction()
|