blob: de32b2402a00ba08edcb656a128ed0101ebd8572 [file] [log] [blame]
Jon Ashburnd43f9b62014-10-14 19:15:22 -06001cmake_minimum_required (VERSION 2.8.11)
2
Chia-I Wud91dbdd2014-12-19 10:59:01 +08003macro(run_xgl_helper subcmd)
4 add_custom_command(OUTPUT ${ARGN}
5 COMMAND ${PROJECT_SOURCE_DIR}/xgl-helper.py --${subcmd} ${PROJECT_SOURCE_DIR}/include/xgl.h --abs_out_dir ${CMAKE_CURRENT_BINARY_DIR}
6 DEPENDS ${PROJECT_SOURCE_DIR}/xgl-helper.py
7 )
8endmacro()
9
10macro(run_xgl_layer_generate subcmd output)
11 add_custom_command(OUTPUT ${output}
12 COMMAND ${PROJECT_SOURCE_DIR}/xgl-layer-generate.py ${subcmd} > ${output}
13 DEPENDS ${PROJECT_SOURCE_DIR}/xgl-layer-generate.py ${PROJECT_SOURCE_DIR}/xgl.py
14 )
15endmacro()
16
17macro(add_xgl_layer target)
18 add_library(XGLLayer${target} SHARED ${ARGN})
19 add_dependencies(XGLLayer${target} generate_xgl_layer_helpers)
20endmacro()
Jon Ashburnd43f9b62014-10-14 19:15:22 -060021
Chia-I Wuc92dcde2014-11-19 23:05:04 +080022include_directories(
23 ${CMAKE_CURRENT_SOURCE_DIR}
24 ${CMAKE_CURRENT_BINARY_DIR}
25)
26
Jon Ashburn227a9422014-11-26 11:10:26 -070027set (CMAKE_CXX_FLAGS "-std=c++11")
Jon Ashburnd43f9b62014-10-14 19:15:22 -060028
Chia-I Wud91dbdd2014-12-19 10:59:01 +080029run_xgl_helper(gen_enum_string_helper xgl_enum_string_helper.h)
30run_xgl_helper(gen_struct_wrappers
31 xgl_struct_string_helper.h
32 xgl_struct_string_helper_no_addr.h
33 xgl_struct_wrappers.h
34 xgl_struct_wrappers.cpp
35)
36run_xgl_helper(gen_graphviz xgl_struct_graphviz_helper.h)
37
38add_custom_target(generate_xgl_layer_helpers DEPENDS
39 xgl_enum_string_helper.h
40 xgl_struct_string_helper.h
41 xgl_struct_string_helper_no_addr.h
42 xgl_struct_wrappers.h
43 xgl_struct_wrappers.cpp
44 xgl_struct_graphviz_helper.h
45)
46
47run_xgl_layer_generate(Generic generic_layer.c)
48run_xgl_layer_generate(ApiDump api_dump.c)
49run_xgl_layer_generate(ApiDumpFile api_dump_file.c)
50run_xgl_layer_generate(ApiDumpNoAddr api_dump_no_addr.c)
51run_xgl_layer_generate(ObjectTracker object_track.c)
52
53add_xgl_layer(Basic basic.cpp)
54add_xgl_layer(Multi multi.cpp)
Jon Ashburn2e9b5612014-12-22 13:38:27 -070055add_xgl_layer(DrawState draw_state.c layers_config.cpp)
Jon Ashburnf57ea372014-12-22 13:24:15 -070056add_xgl_layer(MemTracker mem_tracker.c layers_config.cpp)
Chia-I Wud91dbdd2014-12-19 10:59:01 +080057# generated
58add_xgl_layer(Generic generic_layer.c)
59add_xgl_layer(APIDump api_dump.c)
60add_xgl_layer(APIDumpFile api_dump_file.c)
61add_xgl_layer(APIDumpNoAddr api_dump_no_addr.c)
62add_xgl_layer(ObjectTracker object_track.c)