1
+ cmake_minimum_required (VERSION 2.8.3)
2
+
3
+ project (MetaTests CXX)
4
+
5
+ add_subdirectory (../Source /Runtime MetaRuntime)
6
+ add_subdirectory (../Source /Parser MetaParser)
7
+
8
+ set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /../Source/CMake" )
9
+
10
+ include (MetaParser)
11
+
12
+ include_directories (${META_RUNTIME_INCLUDE_DIRS} )
13
+
14
+ set_property (GLOBAL PROPERTY USE_FOLDERS ON )
15
+ set_property (GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake" )
16
+
17
+ set (TEST_META_SOURCE_ROOT "${CMAKE_CURRENT_LIST_DIR} " )
18
+ set (TEST_META_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR} /Generated" )
19
+
20
+ set (TEST_META_GENERATED_HEADERS "" )
21
+ set (TEST_META_GENERATED_SOURCES "" )
22
+
23
+ set (TEST_REFLECTION_HEADER TestReflection.h)
24
+ set (TEST_MODULE_HEADER TestReflectionModule.h)
25
+ set (TEST_MODULE_TARGET TestModule)
26
+
27
+ set (TEST_HEADERS TestProperties.h TestTypes.h)
28
+
29
+ meta_parser_prebuild(
30
+ TARGET ${TEST_MODULE_TARGET}
31
+ GENERATED_DIR ${TEST_META_GENERATED_DIR}
32
+ SOURCE_ROOT ${TEST_META_SOURCE_ROOT}
33
+ HEADER_FILES ${TEST_HEADERS}
34
+ MODULE_HEADER ${TEST_MODULE_HEADER}
35
+ OUT_MODULE_SOURCE META_MODULE_SOURCE
36
+ OUT_GENERATED_FILES META_GENERATED_FILES
37
+ OUT_INC TEST_META_GENERATED_HEADERS
38
+ OUT_SRC TEST_META_GENERATED_SOURCES
39
+ )
40
+
41
+ add_library (${TEST_MODULE_TARGET} ${META_GENERATED_FILES} )
42
+
43
+ macro (add_meta_test TARGET SOURCES )
44
+ add_executable (${TARGET}
45
+ ${TEST_HEADERS}
46
+ ${TEST_META_GENERATED_HEADERS}
47
+ ${TEST_META_GENERATED_SOURCES}
48
+ ${SOURCES}
49
+ )
50
+
51
+ target_link_libraries (${TARGET} MetaRuntime ${TEST_MODULE_TARGET} )
52
+ set_property (TARGET ${TARGET} PROPERTY FOLDER Tests)
53
+ endmacro ()
54
+
55
+ add_meta_test(MetaProperties MetaProperties.cpp)
56
+ add_meta_test(Enums Enums.cpp)
57
+ add_meta_test(FunctionsAndMethods FunctionsAndMethods.cpp)
58
+ add_meta_test(Arrays Arrays.cpp)
59
+ add_meta_test(Serialization Serialization.cpp)
60
+
61
+ meta_parser_build(
62
+ TARGET ${TEST_MODULE_TARGET}
63
+ SOURCE_ROOT ${TEST_META_SOURCE_ROOT}
64
+ GENERATED_DIR ${TEST_META_GENERATED_DIR}
65
+ GENERATED_FILES ${META_GENERATED_FILES}
66
+ SOURCE_FILE ${TEST_REFLECTION_HEADER}
67
+ MODULE_HEADER ${TEST_MODULE_HEADER}
68
+ MODULE_SOURCE_FILE ${META_MODULE_SOURCE}
69
+ HEADER_FILES ${TEST_HEADERS}
70
+ PARSER_EXECUTABLE "$<TARGET_FILE:MetaParser>"
71
+ )
0 commit comments