summaryrefslogtreecommitdiffstats
path: root/cmake/erlang/ErlangTarget.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/erlang/ErlangTarget.cmake')
-rw-r--r--cmake/erlang/ErlangTarget.cmake26
1 files changed, 26 insertions, 0 deletions
diff --git a/cmake/erlang/ErlangTarget.cmake b/cmake/erlang/ErlangTarget.cmake
new file mode 100644
index 0000000..cfcc431
--- /dev/null
+++ b/cmake/erlang/ErlangTarget.cmake
@@ -0,0 +1,26 @@
+macro(erl_target name)
+ set(in_files "")
+ set(out_files "")
+
+ foreach(src ${ARGN})
+ list(APPEND in_files "${CMAKE_CURRENT_SOURCE_DIR}/${src}")
+ string(REPLACE ".erl" ".beam" src ${src})
+ set(out_file "${CMAKE_CURRENT_BINARY_DIR}/${src}")
+ list(APPEND out_files "${CMAKE_CURRENT_BINARY_DIR}/${src}")
+ endforeach(src ${ARGN})
+
+ add_custom_command(
+ OUTPUT
+ ${out_files}
+ COMMAND
+ ${ERLC_EXECUTABLE}
+ ARGS
+ "-o" ${CMAKE_CURRENT_BINARY_DIR}
+ ${in_files}
+ DEPENDS
+ ${in_files}
+ )
+ add_custom_target(
+ ${name} ALL DEPENDS ${out_files}
+ )
+endmacro(erl_target)