@@ -51,9 +51,39 @@ find_package(FreeType REQUIRED)
51
51
if (FREETYPE_FOUND)
52
52
message (STATUS "freetype include path: ${FREETYPE_INCLUDE_DIRS} " )
53
53
endif ()
54
+
55
+ # find flatbuffers
56
+ if (NOT TARGET flatbuffers)
57
+ find_package (flatbuffers REQUIRED)
58
+ endif ()
59
+ # ==================================================================================================
60
+
61
+ # ==================================================================================================
62
+ function (render_pipeline_generate_schema_headers)
63
+ # generate schema headers
64
+ if (NOT FlatBuffers_flatc)
65
+ message (FATAL_ERROR "Cannot find flatc program." )
66
+ endif ()
67
+
68
+ file (GLOB flatc_input_files "${PROJECT_SOURCE_DIR} /resources/data/schema/*.fbs" )
69
+ foreach (input_file ${flatc_input_files} )
70
+ execute_process (
71
+ COMMAND ${FlatBuffers_flatc} -c --scoped-enums "${input_file} "
72
+ WORKING_DIRECTORY "${PROJECT_BINARY_DIR} /rpcore/schema"
73
+ RESULT_VARIABLE flatc_result
74
+ )
75
+ if (NOT (${flatc_result} EQUAL "0" ))
76
+ message (SEND_ERROR "flatc returns error for a file '${input_file} '" )
77
+ endif ()
78
+ endforeach ()
79
+
80
+ message (STATUS "Render Pipeline: Schema header files are generated." )
81
+ endfunction ()
54
82
# ==================================================================================================
55
83
56
84
# === target =======================================================================================
85
+ render_pipeline_generate_schema_headers()
86
+
57
87
include ("${PROJECT_SOURCE_DIR} /files.cmake" )
58
88
add_library (${PROJECT_NAME} SHARED ${render_pipeline_sources} ${render_pipeline_headers} )
59
89
@@ -64,6 +94,14 @@ else()
64
94
target_compile_options (${PROJECT_NAME} PRIVATE -Wall)
65
95
endif ()
66
96
97
+ target_compile_definitions (${PROJECT_NAME}
98
+ PRIVATE
99
+
100
+ # used for plugin postfix.
101
+ $<$<CONFIG:Debug>:RENDER_PIPELINE_BUILD_CFG_POSTFIX ="${${PROJECT_NAME} _DEBUG_POSTFIX}" >
102
+ $<$<CONFIG:RelWithDebInfo>:RENDER_PIPELINE_BUILD_CFG_POSTFIX ="${${PROJECT_NAME} _RELWITHDEBINFO_POSTFIX}" >
103
+ )
104
+
67
105
target_include_directories (${PROJECT_NAME}
68
106
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} >
69
107
$<INSTALL_INTERFACE:include >
@@ -77,14 +115,14 @@ target_link_libraries(${PROJECT_NAME}
77
115
78
116
PRIVATE $<$<NOT :$<BOOL :${Boost_USE_STATIC_LIBS} >>:Boost::dynamic_linking>
79
117
Boost::filesystem
80
- ${FREETYPE_LIBRARIES} yaml-cpp spdlog::spdlog
118
+ ${FREETYPE_LIBRARIES} yaml-cpp spdlog::spdlog flatbuffers
81
119
)
82
120
83
121
set_target_properties (${PROJECT_NAME} PROPERTIES
84
122
FOLDER "render_pipeline"
85
123
DEFINE_SYMBOL "RENDER_PIPELINE_BUILD"
86
- DEBUG_POSTFIX "-debug"
87
- RELWITHDEBINFO_POSTFIX "-reldeb"
124
+ DEBUG_POSTFIX ${ ${PROJECT_NAME} _DEBUG_POSTFIX }
125
+ RELWITHDEBINFO_POSTFIX ${ ${PROJECT_NAME} _RELWITHDEBINFO_POSTFIX }
88
126
VERSION ${PROJECT_VERSION}
89
127
)
90
128
@@ -119,9 +157,14 @@ install(TARGETS ${PROJECT_NAME}
119
157
)
120
158
export (EXPORT ${TARGET_EXPORT_NAME} FILE ${PROJECT_BINARY_DIR} /${TARGET_EXPORT_NAME} .cmake)
121
159
122
- install (FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /${PROJECT_NAME} .pdb"
160
+ install (FILES "${PROJECT_BINARY_DIR} /Debug/${PROJECT_NAME} ${${PROJECT_NAME} _DEBUG_POSTFIX}.pdb"
161
+ DESTINATION "bin"
162
+ CONFIGURATIONS Debug
163
+ )
164
+
165
+ install (FILES "${PROJECT_BINARY_DIR} /RelWithDebInfo/${PROJECT_NAME} ${${PROJECT_NAME} _RELWITHDEBINFO_POSTFIX}.pdb"
123
166
DESTINATION "bin"
124
- CONFIGURATIONS Debug RelWithDebInfo
167
+ CONFIGURATIONS RelWithDebInfo
125
168
)
126
169
127
170
install (DIRECTORY "${PROJECT_SOURCE_DIR} /${PROJECT_NAME} " DESTINATION "include/" )
@@ -136,9 +179,9 @@ install(FILES ${PACKAGE_CONFIG_FILE} ${PACKAGE_VERSION_CONFIG_FILE} ${render_pip
136
179
install (EXPORT ${TARGET_EXPORT_NAME} DESTINATION ${PACKAGE_CMAKE_INSTALL_DIR} )
137
180
138
181
# documents
139
- if (RENDER_PIPELINE_BUILD_DOCUMENTS AND DOXYGEN_FOUND)
182
+ if (render_pipeline_BUILD_DOCUMENTS AND DOXYGEN_FOUND)
140
183
set (DOCUMENTS_TARGET "documents" )
141
- configure_file ("${CMAKE_CURRENT_SOURCE_DIR} /Doxyfile.in"
184
+ configure_file ("${CMAKE_CURRENT_SOURCE_DIR} /documents/ Doxyfile.in"
142
185
"${CMAKE_CURRENT_BINARY_DIR} /Doxyfile"
143
186
@ONLY
144
187
)
@@ -147,12 +190,14 @@ if(RENDER_PIPELINE_BUILD_DOCUMENTS AND DOXYGEN_FOUND)
147
190
${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR} /Doxyfile"
148
191
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
149
192
)
193
+ set_target_properties (${DOCUMENTS_TARGET} PROPERTIES FOLDER "render_pipeline" )
150
194
151
- install (DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /${DOCUMENTS_TARGET} /" DESTINATION "share/${PROJECT_NAME} /doc /" )
195
+ install (DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /${DOCUMENTS_TARGET} /" DESTINATION "share/${PROJECT_NAME} /documents /" )
152
196
endif ()
153
197
154
198
install (FILES
155
199
"${CMAKE_CURRENT_SOURCE_DIR} /LICENSE.md"
200
+ "${CMAKE_CURRENT_SOURCE_DIR} /README.md"
156
201
DESTINATION "share/${PROJECT_NAME} /" )
157
202
# ==================================================================================================
158
203
0 commit comments