summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cmake/modules/InstallResource.cmake29
1 files changed, 29 insertions, 0 deletions
diff --git a/cmake/modules/InstallResource.cmake b/cmake/modules/InstallResource.cmake
new file mode 100644
index 0000000..2b3176e
--- /dev/null
+++ b/cmake/modules/InstallResource.cmake
@@ -0,0 +1,29 @@
+# Installs content of a downloadable resource target from AddDownloadableResource as-is. For example:
+#
+# install_resource(
+# resource_music
+# DESTINATION ${CMAKE_INSTALL_PREFIX}/
+# )
+#
+# Will copy the content of the music resource directly into the CMAKE_INSTALL_PREFIX effectively rooting the archive
+# content at the prefix itself.
+
+function(install_resource)
+ cmake_parse_arguments(
+ PARSE_ARGV 0
+ INSTALL_RESOURCE
+ ""
+ "DESTINATION"
+ ""
+ )
+ if(NOT DEFINED INSTALL_RESOURCE_DESTINATION)
+ set(INSTALL_RESOURCE_DESTINATION ${CMAKE_INSTALL_DATADIR}/)
+ endif()
+ foreach(RESOURCE_TARGET IN ITEMS ${INSTALL_RESOURCE_UNPARSED_ARGUMENTS})
+ get_property(RESOURCE_DIRECTORY TARGET ${RESOURCE_TARGET} PROPERTY RESOURCE_DIRECTORY)
+ install(
+ DIRECTORY ${RESOURCE_DIRECTORY}/
+ DESTINATION ${INSTALL_RESOURCE_DESTINATION}
+ )
+ endforeach()
+endfunction()