diff --git a/CMakeLists.txt b/CMakeLists.txt index a32cb00..1429590 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -551,44 +551,24 @@ install (TARGETS glog LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -# Build tree config - -set (glog_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) -set (glog_PACKAGE_DEPS) - if (gflags_FOUND) - set (glog_PACKAGE_DEPS -" -include (CMakeFindDependencyMacro) - -find_dependency (gflags ${gflags_VERSION}) -") + set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION})") endif (gflags_FOUND) configure_package_config_file (glog-config.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake INSTALL_DESTINATION - lib/cmake/glog PATH_VARS glog_INCLUDE_DIR + ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake + INSTALL_DESTINATION lib/cmake/glog NO_CHECK_REQUIRED_COMPONENTS_MACRO) -# The version file is the same both for build tree and install mode config write_basic_package_version_file (glog-config-version.cmake VERSION ${GLOG_VERSION} COMPATIBILITY SameMajorVersion) -# Install config - -set (glog_INCLUDE_DIR include) - -configure_package_config_file (glog-config.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/glog-config.cmake - INSTALL_DESTINATION lib/cmake/glog PATH_VARS glog_INCLUDE_DIR - NO_CHECK_REQUIRED_COMPONENTS_MACRO) - -export (TARGETS glog FILE glog-targets.cmake) +export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake) export (PACKAGE glog) install (FILES - ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/glog-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake DESTINATION lib/cmake/glog) -install (EXPORT glog-targets DESTINATION lib/cmake/glog) +install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog) diff --git a/cmake/INSTALL.md b/cmake/INSTALL.md new file mode 100644 index 0000000..bdc1cd9 --- /dev/null +++ b/cmake/INSTALL.md @@ -0,0 +1,30 @@ +Building Glog with CMake +======================== + +1. Create a build directory and `cd` to it. +2. Run + ```bash + cmake path/to/glog + ``` + +3. Afterwards, generated files (GNU make, Visual Studio, etc.) can be used to + compile the project. + + +Consuming Glog in a CMake Project +================================= + +To use Glog in your project `myproj`, use: + +```cmake +cmake_minimum_required (VERSION 3.0) +project (myproj) + +find_package (glog 0.3.4 REQUIRED) + +add_executable (myapp main.cpp) +target_link_libraries (myapp glog::glog) +``` + +Compile definitions and options will be added automatically to your target as +needed. diff --git a/glog-config.cmake.in b/glog-config.cmake.in index 52b1776..e3c44ae 100644 --- a/glog-config.cmake.in +++ b/glog-config.cmake.in @@ -1,11 +1,7 @@ @PACKAGE_INIT@ +include (CMakeFindDependencyMacro) + +@gflags_DEPENDENCY@ + include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake") -set_and_check (glog_INCLUDE_DIR "@PACKAGE_glog_INCLUDE_DIR@") - -@glog_PACKAGE_DEPS@ - -set (glog_LIBRARY glog) - -set (glog_LIBRARIES ${glog_LIBRARY}) -set (glog_INCLUDE_DIRS ${glog_INCLUDE_DIR})