summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-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