blob: 759f7f05db809872ec03aee50952b1b2ddc1c9cd (
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
################################################################################
#
# :: APIDSL regeneration
#
################################################################################
find_program(APIDSL NAMES
apidsl
apidsl.native
apidsl.byte
${CMAKE_SOURCE_DIR}/../apidsl/apigen.native)
find_program(ASTYLE NAMES
astyle
$ENV{ASTYLE})
function(apidsl)
if(APIDSL AND ASTYLE)
foreach(in_file ${ARGN})
# Get the directory component of the input file name.
if(CMAKE_VERSION VERSION_LESS 3.0)
execute_process(
COMMAND dirname ${in_file}
OUTPUT_VARIABLE dirname
OUTPUT_STRIP_TRAILING_WHITESPACE)
else()
get_filename_component(dirname ${in_file} DIRECTORY)
endif()
# Get the name without extension (i.e. without ".api.h").
get_filename_component(filename ${in_file} NAME_WE)
# Put them together, with the new extension that is ".h".
set(out_file ${CMAKE_SOURCE_DIR}/${dirname}/${filename}.h)
# Run apidsl.
add_custom_command(
OUTPUT ${out_file}
COMMAND "${APIDSL}" "${CMAKE_SOURCE_DIR}/${in_file}"
| "${ASTYLE}" --options="${CMAKE_SOURCE_DIR}/other/astyle/astylerc"
> "${out_file}"
DEPENDS ${in_file})
endforeach()
endif()
endfunction()
|