@@ -100,9 +100,10 @@ protobuf_generate_cpp(PROTO_SRCS PROTO_HEADERS ${OSI_PROTO_FILES})
100100set (FLAT_HEADERS "" )
101101if (OSI_BUILD_FLATBUFFER)
102102 set (FLAT_FBS "" )
103- add_subdirectory ("flatbuffers"
104- ${CMAKE_CURRENT_BINARY_DIR} /flatbuffers-build
105- EXCLUDE_FROM_ALL )
103+ find_package (flatbuffers REQUIRED)
104+ if (NOT FLATBUFFERS_FLATC_EXECUTABLE)
105+ set (FLATBUFFERS_FLATC_EXECUTABLE ${flatbuffers_DIR} /../../tools/flatbuffers/flatc)
106+ endif ()
106107 file (WRITE "${CMAKE_CURRENT_BINARY_DIR} /descriptor.fbs" "namespace osi3;" )
107108 file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /include" )
108109 list (APPEND FLAT_FBS "${CMAKE_CURRENT_BINARY_DIR} /descriptor.fbs" )
@@ -111,8 +112,8 @@ if(OSI_BUILD_FLATBUFFER)
111112 set (fbs "${proto_base} .fbs" )
112113 add_custom_command (
113114 OUTPUT "${fbs} "
114- COMMAND $<TARGET_FILE:flatc> -I "${PROTOBUF_IMPORT_DIRS} " -I "${CMAKE_CURRENT_BINARY_DIR} " -o "${CMAKE_CURRENT_BINARY_DIR} " --proto "${proto} "
115- DEPENDS "${proto} " flatc
115+ COMMAND ${FLATBUFFERS_FLATC_EXECUTABLE} -I "${PROTOBUF_IMPORT_DIRS} " -I "${CMAKE_CURRENT_BINARY_DIR} " -o "${CMAKE_CURRENT_BINARY_DIR} " --proto "${proto} "
116+ DEPENDS "${proto} "
116117 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR} "
117118 COMMENT "Convert ${proto} to ${fbs} using flatc"
118119 )
@@ -125,8 +126,8 @@ if(OSI_BUILD_FLATBUFFER)
125126 set (fbh "${flat_base} _generated.h" )
126127 add_custom_command (
127128 OUTPUT "include/${fbh} "
128- COMMAND $<TARGET_FILE:flatc> -o "${CMAKE_CURRENT_BINARY_DIR} /include" --cpp --gen-mutable --gen-name -strings --scoped-enums "${fbs} "
129- DEPENDS "${FLAT_FBS} " flatc
129+ COMMAND ${FLATBUFFERS_FLATC_EXECUTABLE} -o "${CMAKE_CURRENT_BINARY_DIR} /include" --cpp --gen-mutable --gen-name -strings --scoped-enums "${fbs} "
130+ DEPENDS "${FLAT_FBS} "
130131 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} "
131132 COMMENT "Process ${fbs} to ${fbh} using flatc"
132133 )
@@ -137,7 +138,7 @@ if(OSI_BUILD_FLATBUFFER)
137138 add_library (${PROJECT_NAME} _fbs INTERFACE )
138139 target_include_directories (${PROJECT_NAME} _fbs INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /include />)
139140 target_include_directories (${PROJECT_NAME} _fbs SYSTEM INTERFACE $<INSTALL_INTERFACE:$<INSTALL_PREFIX >/include >)
140- target_link_libraries (${PROJECT_NAME} _fbs INTERFACE flatbuffers)
141+ target_link_libraries (${PROJECT_NAME} _fbs INTERFACE flatbuffers::flatbuffers )
141142endif ()
142143
143144add_library (${PROJECT_NAME} _static STATIC ${PROTO_SRCS} ${PROTO_HEADERS} )
0 commit comments