summaryrefslogtreecommitdiff
path: root/cmake/Modules/Cambalache.cmake
blob: 8f8337529dce067ffd814ea9e2236fc70d5e721f (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
27
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()