From 0d3c307cee6e8135c84f3f7755bbc10dfd26e02b Mon Sep 17 00:00:00 2001 From: evpobr Date: Sat, 16 Feb 2019 11:50:16 +0500 Subject: [PATCH] Install CMake package config module --- CMakeLists.txt | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ab14a2..9f5ee5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,10 @@ -cmake_minimum_required(VERSION 2.8.7) +cmake_minimum_required(VERSION 2.8.12) project(libogg) # Required modules include(GNUInstallDirs) include(CheckIncludeFiles) +include(CMakePackageConfigHelpers) # Build options option(BUILD_SHARED_LIBS "Build shared library" OFF) @@ -80,18 +81,24 @@ if(BUILD_FRAMEWORK) set(BUILD_SHARED_LIBS TRUE) endif() -include_directories(include ${CMAKE_CURRENT_BINARY_DIR}/include) -add_library(ogg ${OGG_HEADERS} ${OGG_SOURCES}) +add_library(Ogg ${OGG_HEADERS} ${OGG_SOURCES}) + +target_include_directories(Ogg + PUBLIC + $ + $ + $ +) get_version_info(OGG_VERSION_INFO "LIB_CURRENT" "LIB_AGE" "LIB_REVISION") set_target_properties( - ogg PROPERTIES + Ogg PROPERTIES SOVERSION ${OGG_VERSION_INFO} PUBLIC_HEADER "${OGG_HEADERS}" ) if(BUILD_FRAMEWORK) - set_target_properties(ogg PROPERTIES + set_target_properties(Ogg PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION ${PROJECT_VERSION} MACOSX_FRAMEWORK_IDENTIFIER org.xiph.ogg @@ -100,17 +107,38 @@ if(BUILD_FRAMEWORK) XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" OUTPUT_NAME Ogg ) +else() + set_target_properties(Ogg PROPERTIES OUTPUT_NAME ogg) endif() configure_pkg_config_file(ogg.pc.in) -install(TARGETS ogg +set(CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/Ogg) + +install(TARGETS Ogg + EXPORT OggConfig RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ogg ) +install(EXPORT OggConfig + NAMESPACE Ogg:: + DESTINATION ${CMAKE_INSTALL_PACKAGEDIR} +) + +if(CMAKE_VERSION VERSION_LESS 3.11) + write_basic_package_version_file(OggConfigVersion.cmake COMPATIBILITY SameMajorVersion) +else() + write_basic_package_version_file(OggConfigVersion.cmake COMPATIBILITY SameMinorVersion) +endif() + +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/OggConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_PACKAGEDIR} +) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ogg.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) -- 2.20.1.windows.1