@@ -67,7 +67,6 @@ endif ()
6767
6868include ( configure.cmake )
6969
70-
7170# generated config files end up in binary dir so to find them, need
7271# to add to include path
7372include_directories ( "${PROJECT_SOURCE_DIR} /include" )
@@ -76,29 +75,6 @@ add_definitions( -DPACKAGE="RAWTOACES" -DVERSION="${RAWTOACES_VERSION}" )
7675add_subdirectory ("src/${RAWTOACESIDTLIB} " )
7776add_subdirectory ("src/${RAWTOACESLIB} " )
7877
79-
80-
81- # Create a RAWTOACESBuildTreeSettings.cmake file for the use from the build tree
82- file (RELATIVE_PATH CONF_REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR} " "${INSTALL_INCLUDE_DIR} " )
83- configure_file (config/RAWTOACESBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR} /RAWTOACESBuildTreeSettings.cmake" @ONLY)
84- configure_file (config/RAWTOACESConfig.cmake.in "${PROJECT_BINARY_DIR} /RAWTOACESConfig.cmake" @ONLY)
85- configure_file (config/RAWTOACESConfigVersion.cmake.in "${PROJECT_BINARY_DIR} /RAWTOACESConfigVersion.cmake" @ONLY)
86-
87- if ( PKG_CONFIG_FOUND )
88- configure_file (config/RAWTOACES.pc.in "${PROJECT_BINARY_DIR} /RAWTOACES.pc" @ONLY)
89- install ( FILES "${PROJECT_BINARY_DIR} /RAWTOACES.pc" DESTINATION lib/pkgconfig COMPONENT dev )
90- endif ()
91-
92- install ( FILES
93- "${PROJECT_BINARY_DIR} /RAWTOACESConfig.cmake"
94- "${PROJECT_BINARY_DIR} /RAWTOACESConfigVersion.cmake"
95- DESTINATION "${INSTALL_CMAKE_DIR} " COMPONENT dev)
96-
97- if ( WIN32 AND NOT CYGWIN )
98- install ( FILES "${PROJECT_BINARY_DIR} /RAWTOACESLibraryDepends.cmake" DESTINATION
99- "${INSTALL_CMAKE_DIR} " COMPONENT dev )
100- endif ( )
101-
10278if ( APPLE OR UNIX )
10379 install (DIRECTORY data DESTINATION include /rawtoaces)
10480endif ()
@@ -133,13 +109,52 @@ add_subdirectory(unittest)
133109
134110install ( TARGETS rawtoaces DESTINATION bin )
135111
136- # uninstall target
137- configure_file (
138- "${CMAKE_CURRENT_SOURCE_DIR} /cmake_uninstall.cmake.in"
139- "${CMAKE_CURRENT_BINARY_DIR} /cmake_uninstall.cmake"
140- IMMEDIATE @ONLY)
112+ include ( GNUInstallDirs )
113+ include ( CMakePackageConfigHelpers )
114+
115+ if ( PKG_CONFIG_FOUND )
116+ configure_file (config/RAWTOACES.pc.in "${PROJECT_BINARY_DIR} /RAWTOACES.pc" @ONLY )
117+ install (FILES "${PROJECT_BINARY_DIR} /RAWTOACES.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig COMPONENT dev )
118+ endif ()
119+
120+ file ( WRITE "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Targets.cmake" "# Dummy file" )
121+
122+ write_basic_package_version_file(
123+ "${PROJECT_NAME} ConfigVersion.cmake"
124+ VERSION ${RAWTOACES_VERSION}
125+ COMPATIBILITY SameMajorVersion
126+ )
127+
128+ configure_package_config_file(
129+ config/${PROJECT_NAME} Config.cmake.in
130+ ${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake
131+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME}
132+ )
141133
142- add_custom_target (uninstall
143- COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR} /cmake_uninstall.cmake)
134+ install (
135+ TARGETS ${RAWTOACESIDTLIB} ${RAWTOACESLIB}
136+ EXPORT ${PROJECT_NAME} Targets
137+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
138+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
139+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
140+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
141+ PUBLIC_HEADER
142+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PROJECT_NAME}
143+ )
144144
145+ install (
146+ FILES
147+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
148+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
149+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME}
150+ )
151+
152+ install (
153+ EXPORT ${PROJECT_NAME} Targets
154+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME}
155+ FILE ${PROJECT_NAME} Targets.cmake
156+ NAMESPACE ${PROJECT_NAME} ::
157+ EXPORT_LINK_INTERFACE_LIBRARIES
158+ )
145159
160+ install ( DIRECTORY data DESTINATION ${CMAKE_INSTALL_DATADIR} /${PROJECT_NAME} )
0 commit comments