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"
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()
# 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