Improve CMake changes.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 58f4967..0b8851b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,8 +1,5 @@
cmake_minimum_required(VERSION 3.0)
-project(double-conversion)
-
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
+project(double-conversion VERSION 2.0.1)
set(headers
double-conversion/bignum.h
@@ -25,10 +22,12 @@
double-conversion/fixed-dtoa.cc
double-conversion/strtod.cc
${headers})
+target_include_directories(
+ double-conversion PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:include>)
# pick a version #
-set(double-conversion_VERSION 2.0.1)
-set_property(TARGET double-conversion PROPERTY VERSION ${double-conversion_VERSION})
set(double-conversion_SOVERSION_MAJOR 1)
set(double-conversion_SOVERSION_MINOR 0)
set(double-conversion_SOVERSION_PATCH 0)
@@ -43,32 +42,34 @@
add_subdirectory(test)
endif()
+include(GNUInstallDirs)
install(TARGETS double-conversion EXPORT double-conversionTargets
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
- RUNTIME DESTINATION bin
- INCLUDES DESTINATION include)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+install(FILES ${headers}
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/double-conversion)
include(CMakePackageConfigHelpers)
+configure_package_config_file(
+ cmake/double-conversionConfig.cmake.in
+ "${CMAKE_CURRENT_BINARY_DIR}/double-conversion/double-conversionConfig.cmake"
+ INSTALL_DESTINATION "${LIB_INSTALL_DIR}/double-conversion/cmake")
write_basic_package_version_file(
"${PROJECT_BINARY_DIR}/double-conversion/double-conversionConfigVersion.cmake"
- VERSION ${double-conversion_VERSION}
- COMPATIBILITY AnyNewerVersion)
+ VERSION ${PROJECT_VERSION}
+ COMPATIBILITY SameMajorVersion)
export(EXPORT double-conversionTargets
FILE "${CMAKE_CURRENT_BINARY_DIR}/double-conversion/double-conversionTargets.cmake"
NAMESPACE double-conversion::)
-configure_file(cmake/double-conversionConfig.cmake
- "${CMAKE_CURRENT_BINARY_DIR}/double-conversion/double-conversionConfig.cmake"
- COPYONLY)
-
set(ConfigPackageLocation lib/cmake/double-conversion)
install(EXPORT double-conversionTargets
FILE double-conversionTargets.cmake
NAMESPACE double-conversion::
DESTINATION ${ConfigPackageLocation})
-install(FILES cmake/double-conversionConfig.cmake
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/double-conversion/double-conversionConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/double-conversion/double-conversionConfigVersion.cmake"
DESTINATION ${ConfigPackageLocation}
COMPONENT Devel)
diff --git a/cmake/double-conversionConfig.cmake b/cmake/double-conversionConfig.cmake
deleted file mode 100644
index 15d6363..0000000
--- a/cmake/double-conversionConfig.cmake
+++ /dev/null
@@ -1 +0,0 @@
-include("${CMAKE_CURRENT_LIST_DIR}/double-conversionTargets.cmake")
diff --git a/cmake/double-conversionConfig.cmake.in b/cmake/double-conversionConfig.cmake.in
new file mode 100644
index 0000000..9b4c9ee
--- /dev/null
+++ b/cmake/double-conversionConfig.cmake.in
@@ -0,0 +1,4 @@
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
+check_required_components("@PROJECT_NAME@")