Warning, /pim/sink/cmake/modules/FindFlatBuffers.cmake is written in an unsupported language. File is not indexed.
0001 # Copyright 2014 Stefan.Eilemann@epfl.ch 0002 # Copyright 2014 Google Inc. All rights reserved. 0003 # 0004 # Licensed under the Apache License, Version 2.0 (the "License"); 0005 # you may not use this file except in compliance with the License. 0006 # You may obtain a copy of the License at 0007 # 0008 # http://www.apache.org/licenses/LICENSE-2.0 0009 # 0010 # Unless required by applicable law or agreed to in writing, software 0011 # distributed under the License is distributed on an "AS IS" BASIS, 0012 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 0013 # See the License for the specific language governing permissions and 0014 # limitations under the License. 0015 0016 # Find the flatbuffers schema compiler 0017 # 0018 # Output Variables: 0019 # * FLATBUFFERS_FLATC_EXECUTABLE the flatc compiler executable 0020 # * FLATBUFFERS_FOUND 0021 # 0022 # Provides: 0023 # * FLATBUFFERS_GENERATE_C_HEADERS(Name <files>) creates the C++ headers 0024 # for the given flatbuffer schema files. 0025 # Returns the header files in ${Name}_OUTPUTS 0026 0027 find_program(FLATBUFFERS_FLATC_EXECUTABLE NAMES flatc) 0028 find_path(FLATBUFFERS_INCLUDE_DIR NAMES flatbuffers/flatbuffers.h) 0029 0030 include(FindPackageHandleStandardArgs) 0031 find_package_handle_standard_args(FlatBuffers 0032 DEFAULT_MSG FLATBUFFERS_FLATC_EXECUTABLE FLATBUFFERS_INCLUDE_DIR) 0033 0034 if(FLATBUFFERS_FOUND) 0035 function(FLATBUFFERS_GENERATE_C_HEADERS Name) 0036 set(FLATC_OUTPUTS) 0037 foreach(FILE ${ARGN}) 0038 get_filename_component(FLATC_OUTPUT ${FILE} NAME_WE) 0039 set(FLATC_OUTPUT 0040 "${CMAKE_CURRENT_BINARY_DIR}/${FLATC_OUTPUT}_generated.h") 0041 list(APPEND FLATC_OUTPUTS ${FLATC_OUTPUT}) 0042 0043 add_custom_command(OUTPUT ${FLATC_OUTPUT} 0044 COMMAND ${FLATBUFFERS_FLATC_EXECUTABLE} 0045 ARGS -c -o "${CMAKE_CURRENT_BINARY_DIR}/" ${FILE} 0046 COMMENT "Building C++ header for ${FILE}" 0047 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) 0048 endforeach() 0049 set(${Name}_OUTPUTS ${FLATC_OUTPUTS} PARENT_SCOPE) 0050 endfunction() 0051 0052 set(FLATBUFFERS_INCLUDE_DIRS ${FLATBUFFERS_INCLUDE_DIR}) 0053 include_directories(${CMAKE_BINARY_DIR}) 0054 else() 0055 set(FLATBUFFERS_INCLUDE_DIR) 0056 endif()