summaryrefslogtreecommitdiffstats
path: root/cmake/erlang/ErlangTarget.cmake
blob: cfcc4312acafffcfae3d8ab5294c1f20c97f0651 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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)