modernized cmake installation with IMPORTED target export

This commit is contained in:
Abhijit Kundu
2014-12-02 20:36:53 -05:00
parent c3551d3c2c
commit c0b092d796
5 changed files with 41 additions and 21 deletions

View File

@@ -1,4 +1,3 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11) CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
PROJECT(QtPropertyBrowser) PROJECT(QtPropertyBrowser)

View File

@@ -5,7 +5,10 @@ configure_package_config_file(
${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in ${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
INSTALL_DESTINATION ${INSTALL_CMAKE_DIR} INSTALL_DESTINATION ${INSTALL_CMAKE_DIR}
PATH_VARS INSTALL_INCLUDE_DIR )
install(EXPORT ${PROJECT_NAME}Targets
DESTINATION ${INSTALL_CMAKE_DIR}
) )
install( install(
@@ -13,7 +16,3 @@ install(
DESTINATION ${INSTALL_CMAKE_DIR} DESTINATION ${INSTALL_CMAKE_DIR}
COMPONENT Devel COMPONENT Devel
) )
install(EXPORT ${PROJECT_NAME}Targets
DESTINATION ${INSTALL_CMAKE_DIR}
)

View File

@@ -17,7 +17,7 @@ SET(INSTALL_INCLUDE_DIR include/${PROJECT_NAME} CACHE PATH "Install dir for head
IF(WIN32 AND NOT CYGWIN) IF(WIN32 AND NOT CYGWIN)
SET(DEF_INSTALL_CMAKE_DIR CMake) SET(DEF_INSTALL_CMAKE_DIR CMake)
ELSE() ELSE()
SET(DEF_INSTALL_CMAKE_DIR lib/CMake/${PROJECT_NAME}) SET(DEF_INSTALL_CMAKE_DIR lib/cmake/${PROJECT_NAME})
ENDIF() ENDIF()
SET(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Install dir for CMake files") SET(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Install dir for CMake files")

View File

@@ -1,13 +1,30 @@
# Config file for the QtPropertyBrowser package # Config file for the QtPropertyBrowser package
# It defines the following variables # This adds QtPropertyBrowser IMPORTED target
#
# Usage example:
#
# find_package(QtPropertyBrowser)
# add_executable(foo foo.cpp)
# target_link_libraries(foo QtPropertyBrowser)
#
# Additionaly you can use the following varaibles:
#
# QtPropertyBrowser_FOUND - standard CMake Package found indicator # QtPropertyBrowser_FOUND - standard CMake Package found indicator
# QtPropertyBrowser_INCLUDE_DIRS - include directories for QtPropertyBrowser # QtPropertyBrowser_INCLUDE_DIR - include directories for QtPropertyBrowser alone
# QtPropertyBrowser_INCLUDE_DIRS - include directories for QtPropertyBrowser with all dpendencies
# QtPropertyBrowser_DEFINITIONS - Definitions needed to build with QtPropertyBrowser # QtPropertyBrowser_DEFINITIONS - Definitions needed to build with QtPropertyBrowser
# QtPropertyBrowser_LIBRARIES - Libraries needed to build with QtPropertyBrowser # QtPropertyBrowser_LIBRARIES - Libraries needed to build with QtPropertyBrowser
set (QtPropertyBrowser_FOUND true) include(CMakeFindDependencyMacro)
find_dependency(Qt5Widgets)
@PACKAGE_INIT@ # Our library dependencies (contains definitions for IMPORTED targets)
set_and_check (QtPropertyBrowser_INCLUDE_DIRS "@PACKAGE_INSTALL_INCLUDE_DIR@") if(NOT TARGET QtPropertyBrowser)
include("${CMAKE_CURRENT_LIST_DIR}/QtPropertyBrowserTargets.cmake")
endif()
# @PACKAGE_INIT@
# check_required_components(QtPropertyBrowser)

View File

@@ -60,16 +60,21 @@ add_dependencies(${TARGET_NAME} ${QT_TARGETS})
include(GenerateExportHeader) include(GenerateExportHeader)
generate_export_header(${TARGET_NAME}) generate_export_header(${TARGET_NAME})
set_target_properties(${TARGET_NAME} PROPERTIES
PUBLIC_HEADER "${_PUBLIC_HDRS};${_IMPL_HDRS}"
)
install(TARGETS ${TARGET_NAME} install(TARGETS ${TARGET_NAME}
EXPORT ${TARGET_NAME}Targets EXPORT ${TARGET_NAME}Targets
RUNTIME DESTINATION "${INSTALL_BIN_DIR}" RUNTIME DESTINATION ${INSTALL_BIN_DIR}
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" LIBRARY DESTINATION ${INSTALL_LIB_DIR}
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" ARCHIVE DESTINATION ${INSTALL_LIB_DIR}
PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}" INCLUDES DESTINATION ${INSTALL_INCLUDE_DIR}
COMPONENT dev )
install(
FILES
${_PUBLIC_HDRS}
${_IMPL_HDRS}
DESTINATION
${INSTALL_INCLUDE_DIR}
COMPONENT
Devel
) )