Skip to content

Commit 05fe479

Browse files
committed
Merge branch 'develop'
2 parents 10d29dd + c4af129 commit 05fe479

File tree

413 files changed

+7175
-5504
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

413 files changed

+7175
-5504
lines changed

CMakeLists.txt

+53-8
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,39 @@ find_package(FreeType REQUIRED)
5151
if(FREETYPE_FOUND)
5252
message(STATUS "freetype include path: ${FREETYPE_INCLUDE_DIRS}")
5353
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()
5482
# ==================================================================================================
5583

5684
# === target =======================================================================================
85+
render_pipeline_generate_schema_headers()
86+
5787
include("${PROJECT_SOURCE_DIR}/files.cmake")
5888
add_library(${PROJECT_NAME} SHARED ${render_pipeline_sources} ${render_pipeline_headers})
5989

@@ -64,6 +94,14 @@ else()
6494
target_compile_options(${PROJECT_NAME} PRIVATE -Wall)
6595
endif()
6696

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+
67105
target_include_directories(${PROJECT_NAME}
68106
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
69107
$<INSTALL_INTERFACE:include>
@@ -77,14 +115,14 @@ target_link_libraries(${PROJECT_NAME}
77115

78116
PRIVATE $<$<NOT:$<BOOL:${Boost_USE_STATIC_LIBS}>>:Boost::dynamic_linking>
79117
Boost::filesystem
80-
${FREETYPE_LIBRARIES} yaml-cpp spdlog::spdlog
118+
${FREETYPE_LIBRARIES} yaml-cpp spdlog::spdlog flatbuffers
81119
)
82120

83121
set_target_properties(${PROJECT_NAME} PROPERTIES
84122
FOLDER "render_pipeline"
85123
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}
88126
VERSION ${PROJECT_VERSION}
89127
)
90128

@@ -119,9 +157,14 @@ install(TARGETS ${PROJECT_NAME}
119157
)
120158
export(EXPORT ${TARGET_EXPORT_NAME} FILE ${PROJECT_BINARY_DIR}/${TARGET_EXPORT_NAME}.cmake)
121159

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"
123166
DESTINATION "bin"
124-
CONFIGURATIONS Debug RelWithDebInfo
167+
CONFIGURATIONS RelWithDebInfo
125168
)
126169

127170
install(DIRECTORY "${PROJECT_SOURCE_DIR}/${PROJECT_NAME}" DESTINATION "include/")
@@ -136,9 +179,9 @@ install(FILES ${PACKAGE_CONFIG_FILE} ${PACKAGE_VERSION_CONFIG_FILE} ${render_pip
136179
install(EXPORT ${TARGET_EXPORT_NAME} DESTINATION ${PACKAGE_CMAKE_INSTALL_DIR})
137180

138181
# documents
139-
if(RENDER_PIPELINE_BUILD_DOCUMENTS AND DOXYGEN_FOUND)
182+
if(render_pipeline_BUILD_DOCUMENTS AND DOXYGEN_FOUND)
140183
set(DOCUMENTS_TARGET "documents")
141-
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in"
184+
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/documents/Doxyfile.in"
142185
"${CMAKE_CURRENT_BINARY_DIR}/Doxyfile"
143186
@ONLY
144187
)
@@ -147,12 +190,14 @@ if(RENDER_PIPELINE_BUILD_DOCUMENTS AND DOXYGEN_FOUND)
147190
${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile"
148191
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
149192
)
193+
set_target_properties(${DOCUMENTS_TARGET} PROPERTIES FOLDER "render_pipeline")
150194

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/")
152196
endif()
153197

154198
install(FILES
155199
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md"
200+
"${CMAKE_CURRENT_SOURCE_DIR}/README.md"
156201
DESTINATION "share/${PROJECT_NAME}/")
157202
# ==================================================================================================
158203

0 commit comments

Comments
 (0)