-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathrlcConfig.cmake.in
89 lines (78 loc) · 2.95 KB
/
rlcConfig.cmake.in
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
function(rlc TARGET_NAME)
set(options OPTIONAL SHARED COMPILE FUZ OPTIMIZE DEBUG_INFO)
set(oneValueArgs DESTINATION INPUT OUTPUT HEADER PYTHON GODOT)
set(multiValueArgs EXTRA_ARGS)
cmake_parse_arguments(RLC
"${options}" "${oneValueArgs}" "${multiValueArgs}"
${ARGN}
)
set(CREATED_FILES "")
set(RLC_INPUT ${CMAKE_CURRENT_SOURCE_DIR}/${RLC_INPUT})
set(ARG "")
if (${RLC_COMPILE})
list(APPEND ARG "--compile")
endif()
if (${RLC_OPTIMIZE})
list(APPEND ARG "-O2")
endif()
if (${RLC_DEBUG_INFO})
list(APPEND ARG "-g")
endif()
if (${RLC_SHARED})
list(APPEND ARG "--shared")
endif()
if (${RLC_FUZZ})
list(APPEND ARG "--fuzzer")
endif()
if (NOT ${RLC_OUTPUT} STREQUAL "")
add_custom_command(
OUTPUT ${RLC_OUTPUT} ${RLC_OUTPUT}.dep
COMMAND rlc ${RLC_INPUT} -o ${RLC_OUTPUT} -O2 ${RLC_EXTRA_ARGS} ${ARG} -MD
DEPENDS ${RLC_INPUT}
DEPFILE ${RLC_OUTPUT}.dep
)
list(APPEND CREATED_FILES ${RLC_OUTPUT})
endif()
if (NOT ${RLC_GODOT} STREQUAL "")
add_custom_command(
OUTPUT ${RLC_GODOT} ${RLC_GODOT}.dep
COMMAND rlc ${RLC_INPUT} -o ${RLC_GODOT} --godot ${RLC_EXTRA_ARGS} -MD
DEPFILE ${RLC_GODOT}.dep
DEPENDS ${RLC_INPUT}
)
add_custom_target(${TARGET_NAME}_GODOT DEPENDS ${RLC_GODOT})
list(APPEND CREATED_FILES ${RLC_GODOT})
endif()
if (NOT ${RLC_HEADER} STREQUAL "")
add_custom_command(
OUTPUT ${RLC_HEADER} ${RLC_HEADER}.dep
COMMAND rlc ${RLC_INPUT} -o ${RLC_HEADER} --header ${RLC_EXTRA_ARGS} -MD
DEPENDS ${RLC_INPUT}
DEPFILE ${RLC_HEADER}.dep
)
add_custom_target(${TARGET_NAME}_HEADER DEPENDS ${RLC_HEADER})
list(APPEND CREATED_FILES ${RLC_HEADER})
endif()
if (NOT ${RLC_PYTHON} STREQUAL "")
add_custom_command(
OUTPUT ${RLC_PYTHON} ${RLC_PYTHON}.dep
COMMAND rlc ${RLC_INPUT} -o ${RLC_PYTHON} --python ${RLC_EXTRA_ARGS} -MD
DEPENDS ${RLC_INPUT}
DEPFILE ${RLC_PYTHON}.dep
)
add_custom_target(${TARGET_NAME}_PYTHON DEPENDS ${RLC_PYTHON})
list(APPEND CREATED_FILES ${RLC_PYTHON})
set(RLC_PYTHON_LIB lib${CMAKE_SHARED_LIBRARY_SUFFIX})
add_custom_command(
OUTPUT ${RLC_PYTHON_LIB} ${RLC_PYTHON_LIB}.dep
COMMAND rlc ${RLC_INPUT} -o ${RLC_PYTHON_LIB} --shared ${RLC_EXTRA_ARGS} -MD
DEPENDS ${RLC_INPUT}
DEPFILE ${RLC_PYTHON_LIB}.dep
)
add_custom_target(${TARGET_NAME}_PYTHON_LIB DEPENDS ${RLC_PYTHON_LIB})
list(APPEND CREATED_FILES ${RLC_PYTHON_LIB})
endif()
add_custom_target(${TARGET_NAME} DEPENDS ${CREATED_FILES})
endfunction(rlc)
set(RLC_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../include)
get_filename_component(RLC_INCLUDE_DIR ${RLC_INCLUDE_DIR} ABSOLUTE)