+ add_library(${target} ${buildmode} "")
+ add_library(${alias} ALIAS ${target})
+
+ target_link_libraries(${target} PRIVATE Qt5::Core)
+ target_include_directories(${target}
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR} # for generated files
+ )
+ target_compile_features(${target} PUBLIC ${QUASSEL_COMPILE_FEATURES})
+
+ set_target_properties(${target} PROPERTIES
+ OUTPUT_NAME ${output_name}
+ VERSION ${QUASSEL_MAJOR}.${QUASSEL_MINOR}.${QUASSEL_PATCH}
+ )
+
+ if (buildmode STREQUAL "SHARED")
+ install(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
+
+ # Export the target name for further use
+ set(TARGET ${target} PARENT_SCOPE)
+endfunction()
+
+###################################################################################################
+# Provides a library that contains data files as a Qt resource (.qrc).
+#
+# quassel_add_resource(QrcName
+# [BASEDIR basedir]
+# [PREFIX prefix]
+# PATTERNS pattern1 pattern2...
+# [DEPENDS dep1 dep2...]
+# )
+#
+# The first parameter is the CamelCased name of the resource; the library target will be called
+# "Quassel::Resource::QrcName". The library provides a Qt resource named "qrcname" (lowercased QrcName)
+# containing the files matching PATTERNS relative to BASEDIR (by default, the current source dir).
+# The resource prefix can be set by giving the PREFIX argument.
+# Additional target dependencies can be specified with DEPENDS.
+#
+function(quassel_add_resource _name)
+ set(options )
+ set(oneValueArgs BASEDIR PREFIX)
+ set(multiValueArgs DEPENDS PATTERNS)
+ cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})