Commit 23fef56e authored by Walter Gray's avatar Walter Gray

Replace handwritten protobuf-targets with exported version.

parent 09f6a5c1
...@@ -31,7 +31,7 @@ set(protobuf_DEBUG_POSTFIX "d" ...@@ -31,7 +31,7 @@ set(protobuf_DEBUG_POSTFIX "d"
CACHE STRING "Default debug postfix") CACHE STRING "Default debug postfix")
mark_as_advanced(protobuf_DEBUG_POSTFIX) mark_as_advanced(protobuf_DEBUG_POSTFIX)
# User options # User options
include("${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake") include(protobuf-options.cmake)
# Path to main configure script # Path to main configure script
set(protobuf_CONFIGURE_SCRIPT "../configure.ac") set(protobuf_CONFIGURE_SCRIPT "../configure.ac")
......
...@@ -6,6 +6,7 @@ foreach(_library ...@@ -6,6 +6,7 @@ foreach(_library
libprotoc) libprotoc)
set_property(TARGET ${_library} set_property(TARGET ${_library}
PROPERTY INTERFACE_INCLUDE_DIRECTORIES PROPERTY INTERFACE_INCLUDE_DIRECTORIES
$<BUILD_INTERFACE:${protobuf_source_dir}/src>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
install(TARGETS ${_library} EXPORT protobuf-targets install(TARGETS ${_library} EXPORT protobuf-targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${_library} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${_library}
...@@ -80,7 +81,7 @@ foreach(_file ${nobase_dist_proto_DATA}) ...@@ -80,7 +81,7 @@ foreach(_file ${nobase_dist_proto_DATA})
endif() endif()
endforeach() endforeach()
# Export configuration # Install configuration
set(_cmakedir_desc "Directory relative to CMAKE_INSTALL to install the cmake configuration files") set(_cmakedir_desc "Directory relative to CMAKE_INSTALL to install the cmake configuration files")
if(NOT MSVC) if(NOT MSVC)
set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/protobuf" CACHE STRING "${_cmakedir_desc}") set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/protobuf" CACHE STRING "${_cmakedir_desc}")
...@@ -89,33 +90,34 @@ else() ...@@ -89,33 +90,34 @@ else()
endif() endif()
mark_as_advanced(CMAKE_INSTALL_CMAKEDIR) mark_as_advanced(CMAKE_INSTALL_CMAKEDIR)
# Import configuration
install(EXPORT protobuf-targets
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
NAMESPACE protobuf::
COMPONENT protobuf-export)
configure_file(protobuf-config.cmake.in configure_file(protobuf-config.cmake.in
${CMAKE_INSTALL_CMAKEDIR}/protobuf-config.cmake @ONLY) ${CMAKE_INSTALL_CMAKEDIR}/protobuf-config.cmake @ONLY)
configure_file(protobuf-config-version.cmake.in configure_file(protobuf-config-version.cmake.in
${CMAKE_INSTALL_CMAKEDIR}/protobuf-config-version.cmake @ONLY) ${CMAKE_INSTALL_CMAKEDIR}/protobuf-config-version.cmake @ONLY)
configure_file(protobuf-module.cmake.in configure_file(protobuf-module.cmake.in
${CMAKE_INSTALL_CMAKEDIR}/protobuf-module.cmake @ONLY) ${CMAKE_INSTALL_CMAKEDIR}/protobuf-module.cmake @ONLY)
configure_file(protobuf-options.cmake
${CMAKE_INSTALL_CMAKEDIR}/protobuf-options.cmake @ONLY)
# Build tree import configuration (for import from subprojects) # Allows the build directory to be used as a find directory.
if(NOT EXISTS "${protobuf_DIR}") export(TARGETS libprotobuf-lite libprotobuf libprotoc protoc
set(protobuf_DIR "${protobuf_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}") NAMESPACE protobuf::
set(Protobuf_DIR "${protobuf_DIR}") FILE ${CMAKE_INSTALL_CMAKEDIR}/protobuf-targets.cmake
file(COPY )
"${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake"
"${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake"
DESTINATION "${protobuf_DIR}")
endif()
install(FILES install(EXPORT protobuf-targets
"${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake"
"${protobuf_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}/protobuf-config.cmake"
"${protobuf_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}/protobuf-config-version.cmake"
"${protobuf_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}/protobuf-module.cmake"
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
NAMESPACE protobuf::
COMPONENT protobuf-export) COMPONENT protobuf-export)
install(DIRECTORY ${CMAKE_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()
# Library aliases
foreach(_library
libprotobuf-lite
libprotobuf
libprotoc)
if(TARGET ${_library} AND NOT TARGET protobuf::${_library})
add_library(protobuf::${_library} ALIAS ${_library})
endif()
endforeach()
# Executable aliases
foreach(_executable
protoc)
if(TARGET ${_executable} AND NOT TARGET protobuf::${_executable})
add_executable(protobuf::${_executable} ALIAS ${_executable})
endif()
endforeach()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment