From 23fef56e6d1541344401191bffa3f5218278f2e3 Mon Sep 17 00:00:00 2001 From: Walter Gray Date: Mon, 6 Jun 2016 10:59:58 -0700 Subject: [PATCH] Replace handwritten protobuf-targets with exported version. --- cmake/CMakeLists.txt | 2 +- cmake/install.cmake | 44 +++++++++++++++++++----------------- cmake/protobuf-targets.cmake | 17 -------------- 3 files changed, 24 insertions(+), 39 deletions(-) delete mode 100644 cmake/protobuf-targets.cmake diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 5e818e09fd..5004270f44 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -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") diff --git a/cmake/install.cmake b/cmake/install.cmake index 6d7aa1e0da..94ef219832 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake @@ -6,6 +6,7 @@ foreach(_library libprotoc) set_property(TARGET ${_library} PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $ $) 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() diff --git a/cmake/protobuf-targets.cmake b/cmake/protobuf-targets.cmake deleted file mode 100644 index 72660aaab7..0000000000 --- a/cmake/protobuf-targets.cmake +++ /dev/null @@ -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()