Replace handwritten protobuf-targets with exported version.

pull/1643/head
Walter Gray 9 years ago
parent 09f6a5c1d2
commit 23fef56e6d
  1. 2
      cmake/CMakeLists.txt
  2. 44
      cmake/install.cmake
  3. 17
      cmake/protobuf-targets.cmake

@ -31,7 +31,7 @@ set(protobuf_DEBUG_POSTFIX "d"
CACHE STRING "Default debug postfix")
mark_as_advanced(protobuf_DEBUG_POSTFIX)
# User options
include("${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake")
include(protobuf-options.cmake)
# Path to main configure script
set(protobuf_CONFIGURE_SCRIPT "../configure.ac")

@ -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}
@ -80,7 +81,7 @@ foreach(_file ${nobase_dist_proto_DATA})
endif()
endforeach()
# Export configuration
# 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}")
@ -89,33 +90,34 @@ else()
endif()
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
${CMAKE_INSTALL_CMAKEDIR}/protobuf-config.cmake @ONLY)
configure_file(protobuf-config-version.cmake.in
${CMAKE_INSTALL_CMAKEDIR}/protobuf-config-version.cmake @ONLY)
configure_file(protobuf-module.cmake.in
${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)
if(NOT EXISTS "${protobuf_DIR}")
set(protobuf_DIR "${protobuf_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}")
set(Protobuf_DIR "${protobuf_DIR}")
file(COPY
"${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake"
"${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake"
DESTINATION "${protobuf_DIR}")
endif()
# 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
"${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"
install(EXPORT protobuf-targets
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
NAMESPACE protobuf::
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()

@ -1,17 +0,0 @@
# 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()
Loading…
Cancel
Save