| Index: third_party/protobuf/cmake/install.cmake
|
| diff --git a/third_party/protobuf/cmake/install.cmake b/third_party/protobuf/cmake/install.cmake
|
| index dbb4265d450214317c8699687cabbdd81f9e525c..73e31984c53947714a895fb17503d66f3c19eba0 100644
|
| --- a/third_party/protobuf/cmake/install.cmake
|
| +++ b/third_party/protobuf/cmake/install.cmake
|
| @@ -6,6 +6,7 @@ foreach(_library
|
| libprotoc)
|
| set_property(TARGET ${_library}
|
| PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
| + $<BUILD_INTERFACE:${protobuf_source_dir}/src>
|
| $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
| install(TARGETS ${_library} EXPORT protobuf-targets
|
| RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${_library}
|
| @@ -16,34 +17,32 @@ endforeach()
|
| install(TARGETS protoc EXPORT protobuf-targets
|
| RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc)
|
|
|
| -if(TRUE)
|
| - file(STRINGS extract_includes.bat.in _extract_strings
|
| - REGEX "^copy")
|
| - foreach(_extract_string ${_extract_strings})
|
| - string(REPLACE "copy \${PROTOBUF_SOURCE_WIN32_PATH}\\" ""
|
| - _extract_string ${_extract_string})
|
| - string(REPLACE "\\" "/" _extract_string ${_extract_string})
|
| - string(REGEX MATCH "^[^ ]+"
|
| - _extract_from ${_extract_string})
|
| - string(REGEX REPLACE "^${_extract_from} ([^$]+)" "\\1"
|
| - _extract_to ${_extract_string})
|
| - get_filename_component(_extract_from "${protobuf_SOURCE_DIR}/${_extract_from}" ABSOLUTE)
|
| - get_filename_component(_extract_name ${_extract_to} NAME)
|
| - get_filename_component(_extract_to ${_extract_to} PATH)
|
| - string(REPLACE "include/" "${CMAKE_INSTALL_INCLUDEDIR}/"
|
| - _extract_to "${_extract_to}")
|
| - if(EXISTS "${_extract_from}")
|
| - install(FILES "${_extract_from}"
|
| - DESTINATION "${_extract_to}"
|
| - COMPONENT protobuf-headers
|
| - RENAME "${_extract_name}")
|
| - else()
|
| - message(AUTHOR_WARNING "The file \"${_extract_from}\" is listed in "
|
| - "\"${protobuf_SOURCE_DIR}/cmake/extract_includes.bat.in\" "
|
| - "but there not exists. The file will not be installed.")
|
| - endif()
|
| - endforeach()
|
| -endif()
|
| +file(STRINGS extract_includes.bat.in _extract_strings
|
| + REGEX "^copy")
|
| +foreach(_extract_string ${_extract_strings})
|
| + string(REPLACE "copy \${PROTOBUF_SOURCE_WIN32_PATH}\\" ""
|
| + _extract_string ${_extract_string})
|
| + string(REPLACE "\\" "/" _extract_string ${_extract_string})
|
| + string(REGEX MATCH "^[^ ]+"
|
| + _extract_from ${_extract_string})
|
| + string(REGEX REPLACE "^${_extract_from} ([^$]+)" "\\1"
|
| + _extract_to ${_extract_string})
|
| + get_filename_component(_extract_from "${protobuf_SOURCE_DIR}/${_extract_from}" ABSOLUTE)
|
| + get_filename_component(_extract_name ${_extract_to} NAME)
|
| + get_filename_component(_extract_to ${_extract_to} PATH)
|
| + string(REPLACE "include/" "${CMAKE_INSTALL_INCLUDEDIR}/"
|
| + _extract_to "${_extract_to}")
|
| + if(EXISTS "${_extract_from}")
|
| + install(FILES "${_extract_from}"
|
| + DESTINATION "${_extract_to}"
|
| + COMPONENT protobuf-headers
|
| + RENAME "${_extract_name}")
|
| + else()
|
| + message(AUTHOR_WARNING "The file \"${_extract_from}\" is listed in "
|
| + "\"${protobuf_SOURCE_DIR}/cmake/extract_includes.bat.in\" "
|
| + "but there not exists. The file will not be installed.")
|
| + endif()
|
| +endforeach()
|
|
|
| # Internal function for parsing auto tools scripts
|
| function(_protobuf_auto_list FILE_NAME VARIABLE)
|
| @@ -82,22 +81,43 @@ foreach(_file ${nobase_dist_proto_DATA})
|
| endif()
|
| endforeach()
|
|
|
| -# Export configuration
|
| -
|
| -install(EXPORT protobuf-targets
|
| - DESTINATION "lib/cmake/protobuf"
|
| - COMPONENT protobuf-export)
|
| +# Install configuration
|
| +set(_cmakedir_desc "Directory relative to CMAKE_INSTALL to install the cmake configuration files")
|
| +if(NOT MSVC)
|
| + set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/protobuf" CACHE STRING "${_cmakedir_desc}")
|
| +else()
|
| + set(CMAKE_INSTALL_CMAKEDIR "cmake" CACHE STRING "${_cmakedir_desc}")
|
| +endif()
|
| +mark_as_advanced(CMAKE_INSTALL_CMAKEDIR)
|
|
|
| configure_file(protobuf-config.cmake.in
|
| - protobuf-config.cmake @ONLY)
|
| + ${CMAKE_INSTALL_CMAKEDIR}/protobuf-config.cmake @ONLY)
|
| configure_file(protobuf-config-version.cmake.in
|
| - protobuf-config-version.cmake @ONLY)
|
| + ${CMAKE_INSTALL_CMAKEDIR}/protobuf-config-version.cmake @ONLY)
|
| configure_file(protobuf-module.cmake.in
|
| - protobuf-module.cmake @ONLY)
|
| + ${CMAKE_INSTALL_CMAKEDIR}/protobuf-module.cmake @ONLY)
|
| +configure_file(protobuf-options.cmake
|
| + ${CMAKE_INSTALL_CMAKEDIR}/protobuf-options.cmake @ONLY)
|
| +
|
| +# Allows the build directory to be used as a find directory.
|
| +export(TARGETS libprotobuf-lite libprotobuf libprotoc protoc
|
| + NAMESPACE protobuf::
|
| + FILE ${CMAKE_INSTALL_CMAKEDIR}/protobuf-targets.cmake
|
| +)
|
|
|
| -install(FILES
|
| - "${protobuf_BINARY_DIR}/protobuf-config.cmake"
|
| - "${protobuf_BINARY_DIR}/protobuf-config-version.cmake"
|
| - "${protobuf_BINARY_DIR}/protobuf-module.cmake"
|
| - DESTINATION "lib/cmake/protobuf"
|
| +install(EXPORT protobuf-targets
|
| + DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
|
| + NAMESPACE protobuf::
|
| COMPONENT protobuf-export)
|
| +
|
| +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}/
|
| + DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
|
| + COMPONENT protobuf-export
|
| + PATTERN protobuf-targets.cmake EXCLUDE
|
| +)
|
| +
|
| +option(protobuf_INSTALL_EXAMPLES "Install the examples folder" OFF)
|
| +if(protobuf_INSTALL_EXAMPLES)
|
| + install(DIRECTORY ../examples/ DESTINATION examples
|
| + COMPONENT protobuf-examples)
|
| +endif()
|
|
|