Update CMake package generation.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 01196ba..58f4967 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,27 +1,40 @@
-cmake_minimum_required(VERSION 2.8.12)
+cmake_minimum_required(VERSION 3.0)
project(double-conversion)
-include(GNUInstallDirs)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
+
+set(headers
+ double-conversion/bignum.h
+ double-conversion/cached-powers.h
+ double-conversion/diy-fp.h
+ double-conversion/double-conversion.h
+ double-conversion/fast-dtoa.h
+ double-conversion/fixed-dtoa.h
+ double-conversion/ieee.h
+ double-conversion/strtod.h
+ double-conversion/utils.h)
+
+add_library(double-conversion
+ double-conversion/bignum.cc
+ double-conversion/bignum-dtoa.cc
+ double-conversion/cached-powers.cc
+ double-conversion/diy-fp.cc
+ double-conversion/double-conversion.cc
+ double-conversion/fast-dtoa.cc
+ double-conversion/fixed-dtoa.cc
+ double-conversion/strtod.cc
+ ${headers})
# 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)
-set(double-conversion_SOVERSION
- ${double-conversion_SOVERSION_MAJOR}.${double-conversion_SOVERSION_MINOR}.${double-conversion_SOVERSION_PATCH})
+set(double-conversion_SOVERSION ${double-conversion_SOVERSION_MAJOR}.${double-conversion_SOVERSION_MINOR}.${double-conversion_SOVERSION_PATCH})
+set_property(TARGET double-conversion PROPERTY SOVERSION ${double-conversion_SOVERSION})
-# set suffix for CMake files used for packaging
-if(WIN32 AND NOT CYGWIN)
- set(INSTALL_CMAKE_DIR CMake)
-else()
- set(INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/double-conversion)
-endif()
-
-# Add src subdirectory
-add_subdirectory(double-conversion)
-
-#
# set up testing if requested
option(BUILD_TESTING "Build test programs" OFF)
if(BUILD_TESTING)
@@ -30,41 +43,32 @@
add_subdirectory(test)
endif()
-#
-# mention the library target as export library
-export(TARGETS double-conversion
- FILE "${PROJECT_BINARY_DIR}/double-conversionLibraryDepends.cmake")
+install(TARGETS double-conversion EXPORT double-conversionTargets
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+ INCLUDES DESTINATION include)
-#
-# set this build as an importable package
-export(PACKAGE double-conversion)
+include(CMakePackageConfigHelpers)
+write_basic_package_version_file(
+ "${PROJECT_BINARY_DIR}/double-conversion/double-conversionConfigVersion.cmake"
+ VERSION ${double-conversion_VERSION}
+ COMPATIBILITY AnyNewerVersion)
-#
-# make a cmake file -- in this case, all that needs defining
-# is double-conversion_INCLUDE_DIRS
-configure_file(double-conversionBuildTreeSettings.cmake.in
- "${PROJECT_BINARY_DIR}/double-conversionBuildTreeSettings.cmake"
- @ONLY)
+export(EXPORT double-conversionTargets
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/double-conversion/double-conversionTargets.cmake"
+ NAMESPACE double-conversion::)
-#
-# sets up config to be used by CMake find_package
-configure_file(double-conversionConfig.cmake.in
- "${PROJECT_BINARY_DIR}/double-conversionConfig.cmake"
- @ONLY)
-#
-# Export version # checked by find_package
-configure_file(double-conversionConfigVersion.cmake.in
- "${PROJECT_BINARY_DIR}/double-conversionConfigVersion.cmake"
- @ONLY)
-#
-# install config files for find_package
-install(FILES
- "${PROJECT_BINARY_DIR}/double-conversionConfig.cmake"
- "${PROJECT_BINARY_DIR}/double-conversionConfigVersion.cmake"
- DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev)
+configure_file(cmake/double-conversionConfig.cmake
+ "${CMAKE_CURRENT_BINARY_DIR}/double-conversion/double-conversionConfig.cmake"
+ COPYONLY)
-
-#
-# generates install cmake files to find libraries in installation.
-install(EXPORT double-conversionLibraryDepends DESTINATION
- "${INSTALL_CMAKE_DIR}" COMPONENT dev)
+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
+ "${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
new file mode 100644
index 0000000..15d6363
--- /dev/null
+++ b/cmake/double-conversionConfig.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/double-conversionTargets.cmake")
diff --git a/double-conversion/CMakeLists.txt b/double-conversion/CMakeLists.txt
index 2d13b36..47bd52a 100644
--- a/double-conversion/CMakeLists.txt
+++ b/double-conversion/CMakeLists.txt
@@ -1,27 +1,3 @@
-set(headers
- bignum.h
- cached-powers.h
- diy-fp.h
- double-conversion.h
- fast-dtoa.h
- fixed-dtoa.h
- ieee.h
- strtod.h
- utils.h
- )
-
-add_library(double-conversion
-bignum.cc
-bignum-dtoa.cc
-cached-powers.cc
-diy-fp.cc
-double-conversion.cc
-fast-dtoa.cc
-fixed-dtoa.cc
-strtod.cc
-${headers}
-)
-
target_include_directories(double-conversion PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>)
# Add fPIC on x86_64 when supported.
diff --git a/double-conversion/bignum-dtoa.cc b/double-conversion/bignum-dtoa.cc
index f1ad7a5..bdb06a2 100644
--- a/double-conversion/bignum-dtoa.cc
+++ b/double-conversion/bignum-dtoa.cc
@@ -27,10 +27,10 @@
#include <math.h>
-#include "bignum-dtoa.h"
+#include <double-conversion/bignum-dtoa.h>
-#include "bignum.h"
-#include "ieee.h"
+#include <double-conversion/bignum.h>
+#include <double-conversion/ieee.h>
namespace double_conversion {
diff --git a/double-conversion/bignum-dtoa.h b/double-conversion/bignum-dtoa.h
index 34b9619..9d15ce3 100644
--- a/double-conversion/bignum-dtoa.h
+++ b/double-conversion/bignum-dtoa.h
@@ -28,7 +28,7 @@
#ifndef DOUBLE_CONVERSION_BIGNUM_DTOA_H_
#define DOUBLE_CONVERSION_BIGNUM_DTOA_H_
-#include "utils.h"
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversion/bignum.cc b/double-conversion/bignum.cc
index 8892de8..0d2eeac 100644
--- a/double-conversion/bignum.cc
+++ b/double-conversion/bignum.cc
@@ -25,8 +25,8 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#include "bignum.h"
-#include "utils.h"
+#include <double-conversion/bignum.h>
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversion/bignum.h b/double-conversion/bignum.h
index c385f22..4ff34e2 100644
--- a/double-conversion/bignum.h
+++ b/double-conversion/bignum.h
@@ -28,7 +28,7 @@
#ifndef DOUBLE_CONVERSION_BIGNUM_H_
#define DOUBLE_CONVERSION_BIGNUM_H_
-#include "utils.h"
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversion/cached-powers.cc b/double-conversion/cached-powers.cc
index 2b43f06..780f527 100644
--- a/double-conversion/cached-powers.cc
+++ b/double-conversion/cached-powers.cc
@@ -29,9 +29,9 @@
#include <limits.h>
#include <math.h>
-#include "utils.h"
+#include <double-conversion/utils.h>
-#include "cached-powers.h"
+#include <double-conversion/cached-powers.h>
namespace double_conversion {
diff --git a/double-conversion/cached-powers.h b/double-conversion/cached-powers.h
index 61a5061..eabff4a 100644
--- a/double-conversion/cached-powers.h
+++ b/double-conversion/cached-powers.h
@@ -28,7 +28,7 @@
#ifndef DOUBLE_CONVERSION_CACHED_POWERS_H_
#define DOUBLE_CONVERSION_CACHED_POWERS_H_
-#include "diy-fp.h"
+#include <double-conversion/diy-fp.h>
namespace double_conversion {
diff --git a/double-conversion/diy-fp.cc b/double-conversion/diy-fp.cc
index ddd1891..82b0d08 100644
--- a/double-conversion/diy-fp.cc
+++ b/double-conversion/diy-fp.cc
@@ -26,8 +26,8 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#include "diy-fp.h"
-#include "utils.h"
+#include <double-conversion/diy-fp.h>
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversion/diy-fp.h b/double-conversion/diy-fp.h
index 2edf346..e2011d4 100644
--- a/double-conversion/diy-fp.h
+++ b/double-conversion/diy-fp.h
@@ -28,7 +28,7 @@
#ifndef DOUBLE_CONVERSION_DIY_FP_H_
#define DOUBLE_CONVERSION_DIY_FP_H_
-#include "utils.h"
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversion/double-conversion.cc b/double-conversion/double-conversion.cc
index 6f21a01..6609c56 100644
--- a/double-conversion/double-conversion.cc
+++ b/double-conversion/double-conversion.cc
@@ -28,14 +28,14 @@
#include <limits.h>
#include <math.h>
-#include "double-conversion.h"
+#include <double-conversion/double-conversion.h>
-#include "bignum-dtoa.h"
-#include "fast-dtoa.h"
-#include "fixed-dtoa.h"
-#include "ieee.h"
-#include "strtod.h"
-#include "utils.h"
+#include <double-conversion/bignum-dtoa.h>
+#include <double-conversion/fast-dtoa.h>
+#include <double-conversion/fixed-dtoa.h>
+#include <double-conversion/ieee.h>
+#include <double-conversion/strtod.h>
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversion/double-conversion.h b/double-conversion/double-conversion.h
index 6bdfa8d..23cdaf9 100644
--- a/double-conversion/double-conversion.h
+++ b/double-conversion/double-conversion.h
@@ -28,7 +28,7 @@
#ifndef DOUBLE_CONVERSION_DOUBLE_CONVERSION_H_
#define DOUBLE_CONVERSION_DOUBLE_CONVERSION_H_
-#include "utils.h"
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversion/fast-dtoa.cc b/double-conversion/fast-dtoa.cc
index 6135038..e5c2222 100644
--- a/double-conversion/fast-dtoa.cc
+++ b/double-conversion/fast-dtoa.cc
@@ -25,11 +25,11 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#include "fast-dtoa.h"
+#include <double-conversion/fast-dtoa.h>
-#include "cached-powers.h"
-#include "diy-fp.h"
-#include "ieee.h"
+#include <double-conversion/cached-powers.h>
+#include <double-conversion/diy-fp.h>
+#include <double-conversion/ieee.h>
namespace double_conversion {
diff --git a/double-conversion/fast-dtoa.h b/double-conversion/fast-dtoa.h
index 5f1e8ee..ac4317c 100644
--- a/double-conversion/fast-dtoa.h
+++ b/double-conversion/fast-dtoa.h
@@ -28,7 +28,7 @@
#ifndef DOUBLE_CONVERSION_FAST_DTOA_H_
#define DOUBLE_CONVERSION_FAST_DTOA_H_
-#include "utils.h"
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversion/fixed-dtoa.cc b/double-conversion/fixed-dtoa.cc
index 0f55a0b..5b6ca5a 100644
--- a/double-conversion/fixed-dtoa.cc
+++ b/double-conversion/fixed-dtoa.cc
@@ -27,8 +27,8 @@
#include <math.h>
-#include "fixed-dtoa.h"
-#include "ieee.h"
+#include <double-conversion/fixed-dtoa.h>
+#include <double-conversion/ieee.h>
namespace double_conversion {
diff --git a/double-conversion/fixed-dtoa.h b/double-conversion/fixed-dtoa.h
index 3bdd08e..a9436fc 100644
--- a/double-conversion/fixed-dtoa.h
+++ b/double-conversion/fixed-dtoa.h
@@ -28,7 +28,7 @@
#ifndef DOUBLE_CONVERSION_FIXED_DTOA_H_
#define DOUBLE_CONVERSION_FIXED_DTOA_H_
-#include "utils.h"
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversion/ieee.h b/double-conversion/ieee.h
index b14cf4f..1b705d2 100644
--- a/double-conversion/ieee.h
+++ b/double-conversion/ieee.h
@@ -28,7 +28,7 @@
#ifndef DOUBLE_CONVERSION_DOUBLE_H_
#define DOUBLE_CONVERSION_DOUBLE_H_
-#include "diy-fp.h"
+#include <double-conversion/diy-fp.h>
namespace double_conversion {
diff --git a/double-conversion/strtod.cc b/double-conversion/strtod.cc
index 17abcbb..50eacf0 100644
--- a/double-conversion/strtod.cc
+++ b/double-conversion/strtod.cc
@@ -28,10 +28,10 @@
#include <stdarg.h>
#include <limits.h>
-#include "strtod.h"
-#include "bignum.h"
-#include "cached-powers.h"
-#include "ieee.h"
+#include <double-conversion/strtod.h>
+#include <double-conversion/bignum.h>
+#include <double-conversion/cached-powers.h>
+#include <double-conversion/ieee.h>
namespace double_conversion {
diff --git a/double-conversion/strtod.h b/double-conversion/strtod.h
index ed0293b..3226516 100644
--- a/double-conversion/strtod.h
+++ b/double-conversion/strtod.h
@@ -28,7 +28,7 @@
#ifndef DOUBLE_CONVERSION_STRTOD_H_
#define DOUBLE_CONVERSION_STRTOD_H_
-#include "utils.h"
+#include <double-conversion/utils.h>
namespace double_conversion {
diff --git a/double-conversionBuildTreeSettings.cmake.in b/double-conversionBuildTreeSettings.cmake.in
deleted file mode 100644
index f46705d..0000000
--- a/double-conversionBuildTreeSettings.cmake.in
+++ /dev/null
@@ -1,2 +0,0 @@
-set(double-conversion_INCLUDE_DIRS
- "@PROJECT_SOURCE_DIR@/src")
diff --git a/double-conversionConfig.cmake.in b/double-conversionConfig.cmake.in
deleted file mode 100644
index 110df44..0000000
--- a/double-conversionConfig.cmake.in
+++ /dev/null
@@ -1,16 +0,0 @@
-# - Config file for the double-conversion package
-# It defines the following variables
-# double-conversion_INCLUDE_DIRS
-# double-conversion_LIBRARIES
-
-get_filename_component(double-conversion_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-
-if(EXISTS "${double-conversion_CMAKE_DIR}/CMakeCache.txt")
- include("${double-conversion_CMAKE_DIR}/double-conversionBuildTreeSettings.cmake")
-else()
- set(double-conversion_INCLUDE_DIRS "@CMAKE_INSTALL_FULL_INCLUDEDIR@/double-conversion")
-endif()
-
-include("@CMAKE_INSTALL_FULL_LIBDIR@/cmake/double-conversion/double-conversionLibraryDepends.cmake")
-
-set(double-conversion_LIBRARIES double-conversion)
diff --git a/double-conversionConfigVersion.cmake.in b/double-conversionConfigVersion.cmake.in
deleted file mode 100644
index 0f2295d..0000000
--- a/double-conversionConfigVersion.cmake.in
+++ /dev/null
@@ -1,11 +0,0 @@
-set(PACKAGE_VERSION "@double-conversion_VERSION@")
-
-# Check whether the requested PACKAGE_FIND_VERSION is compatible
-if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
- set(PACKAGE_VERSION_COMPATIBLE FALSE)
-else()
- set(PACKAGE_VERSION_COMPATIBLE TRUE)
- if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
- set(PACKAGE_VERSION_EXACT TRUE)
- endif()
-endif()