summaryrefslogtreecommitdiff
path: root/cmake/Modules
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-16 13:23:18 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-16 13:59:52 +0200
commit16d6aa1d19415ee4a782baea143c71a9a1bbe02d (patch)
treec53d819fdf49baa4a6affaa3ef4ad59ab9c23e4e /cmake/Modules
parent44d2614a260d2b029a79c59ee7fdd45e1958feb8 (diff)
downloadturns-16d6aa1d19415ee4a782baea143c71a9a1bbe02d.tar.xz
turns-16d6aa1d19415ee4a782baea143c71a9a1bbe02d.zip
res: automatically export UI files
Diffstat (limited to 'cmake/Modules')
-rw-r--r--cmake/Modules/Cambalache.cmake28
1 files changed, 28 insertions, 0 deletions
diff --git a/cmake/Modules/Cambalache.cmake b/cmake/Modules/Cambalache.cmake
new file mode 100644
index 0000000..8f83375
--- /dev/null
+++ b/cmake/Modules/Cambalache.cmake
@@ -0,0 +1,28 @@
+find_program(CAMBALACHE_BIN "cambalache" REQUIRED)
+
+function(export_cambalache_files SOURCE_FILE)
+ set(SINGLE_VALUE_ARGS "")
+ set(MULTI_VALUE_ARGS "UI_FILES")
+ cmake_parse_arguments(
+ PARSE_ARGV 1
+ ""
+ "${OPTIONS}"
+ "${SINGLE_VALUE_ARGS}"
+ "${MULTI_VALUE_ARGS}"
+ )
+
+ foreach(FILE IN LISTS _UI_FILES)
+ list(APPEND ABSOULUTE_UI_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${FILE}")
+ endforeach()
+
+ add_custom_command(OUTPUT
+ ${ABSOULUTE_UI_FILES}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ COMMAND "${CAMBALACHE_BIN}"
+ ARGS
+ "-E"
+ "${SOURCE_FILE}"
+ VERBATIM
+ MAIN_DEPENDENCY "${SOURCE_FILE}"
+ )
+endfunction() \ No newline at end of file