summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-02-21 15:52:58 +0100
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-03-10 07:33:07 +0100
commit729a73a9cfe774cb49251be8c99ba5b26d516e01 (patch)
tree10c4014477783a1465a4723435fd6ef9bb87d540
parentb04d087bd02f094874726629773a12ed3c1bff5e (diff)
CMake: Remove old 3rdparty mechanism for double conversion
Change-Id: I2b20d4d9d95a1f7f59bc506046a1ebc20eb305f7 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--cmake/FindWrapDoubleConversion.cmake12
-rw-r--r--src/3rdparty/CMakeLists.txt1
-rw-r--r--src/3rdparty/double-conversion/CMakeLists.txt21
-rw-r--r--src/corelib/.prev_CMakeLists.txt25
-rw-r--r--src/corelib/CMakeLists.txt32
-rw-r--r--src/corelib/configure.cmake15
-rwxr-xr-xutil/cmake/configurejson2cmake.py3
-rw-r--r--util/cmake/helper.py2
-rwxr-xr-xutil/cmake/pro2cmake.py1
9 files changed, 65 insertions, 47 deletions
diff --git a/cmake/FindWrapDoubleConversion.cmake b/cmake/FindWrapDoubleConversion.cmake
index 9c804a3eec..ed5c394ade 100644
--- a/cmake/FindWrapDoubleConversion.cmake
+++ b/cmake/FindWrapDoubleConversion.cmake
@@ -5,12 +5,11 @@ if(TARGET WrapDoubleConversion::WrapDoubleConversion)
return()
endif()
-add_library(WrapDoubleConversion::WrapDoubleConversion INTERFACE IMPORTED)
-
find_package(double-conversion)
if (double-conversion_FOUND)
include(FeatureSummary)
set_package_properties(double-conversion PROPERTIES TYPE REQUIRED)
+ add_library(WrapDoubleConversion::WrapDoubleConversion INTERFACE IMPORTED)
target_link_libraries(WrapDoubleConversion::WrapDoubleConversion
INTERFACE double-conversion::double-conversion)
set(WrapDoubleConversion_FOUND 1)
@@ -44,18 +43,11 @@ int main(int argc, char *argv[]) {
return 0;
}" HAVE_SPRINTF_L)
-# In a static build, we need to find the package to bring the target into scope.
-find_package(QtDoubleConversion QUIET)
-
if (HAVE__SPRINTF_L OR HAVE_SPRINTF_L)
+ add_library(WrapDoubleConversion::WrapDoubleConversion INTERFACE IMPORTED)
target_compile_definitions(WrapDoubleConversion::WrapDoubleConversion
INTERFACE QT_NO_DOUBLECONVERSION)
set(WrapDoubleConversion_FOUND 1)
-elseif(TARGET QtDoubleConversion)
- # If a Config package wasn't found, and the C++ library doesn't contain the necessary functions,
- # use the library bundled with Qt.
- target_link_libraries(WrapDoubleConversion::WrapDoubleConversion INTERFACE QtDoubleConversion)
- set(WrapDoubleConversion_FOUND 1)
else()
set(WrapDoubleConversion_FOUND 0)
endif()
diff --git a/src/3rdparty/CMakeLists.txt b/src/3rdparty/CMakeLists.txt
index d0dbb8aef5..c6a5da43ae 100644
--- a/src/3rdparty/CMakeLists.txt
+++ b/src/3rdparty/CMakeLists.txt
@@ -1,7 +1,6 @@
# special case skip regeneration
# The file is maintained manually
add_subdirectory(harfbuzz)
-add_subdirectory(double-conversion)
if(QT_FEATURE_png AND NOT QT_FEATURE_system_png)
add_subdirectory(libpng)
diff --git a/src/3rdparty/double-conversion/CMakeLists.txt b/src/3rdparty/double-conversion/CMakeLists.txt
deleted file mode 100644
index 7450bc48ec..0000000000
--- a/src/3rdparty/double-conversion/CMakeLists.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-# special case begin
-
-add_library(QtDoubleConversion STATIC
- ${CMAKE_CURRENT_SOURCE_DIR}/bignum.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/bignum-dtoa.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/cached-powers.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/diy-fp.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/double-conversion.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/fast-dtoa.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/fixed-dtoa.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/strtod.cc
- )
-
-target_include_directories(QtDoubleConversion PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/double-conversion>
- )
-
-qt_install_3rdparty_library(QtDoubleConversion)
-# special case end
diff --git a/src/corelib/.prev_CMakeLists.txt b/src/corelib/.prev_CMakeLists.txt
index a9fb15f505..e33ce41e19 100644
--- a/src/corelib/.prev_CMakeLists.txt
+++ b/src/corelib/.prev_CMakeLists.txt
@@ -235,8 +235,6 @@ qt_add_module(Core
../3rdparty/md5
../3rdparty/sha3
../3rdparty/tinycbor/src
- LIBRARIES
- doubleconversion
PRECOMPILED_HEADER
"global/qt_pch.h"
NO_PCH_SOURCES
@@ -631,6 +629,29 @@ qt_extend_target(Core CONDITION QT_FEATURE_commandlineparser
tools/qcommandlineparser.cpp tools/qcommandlineparser.h
)
+qt_extend_target(Core CONDITION QT_FEATURE_system_doubleconversion
+ LIBRARIES
+ WrapDoubleConversion::WrapDoubleConversion
+)
+
+qt_extend_target(Core CONDITION QT_FEATURE_doubleconversion AND NOT QT_FEATURE_system_doubleconversion
+ SOURCES
+ ../3rdparty/double-conversion/bignum.cc ../3rdparty/double-conversion/bignum.h
+ ../3rdparty/double-conversion/bignum-dtoa.cc ../3rdparty/double-conversion/bignum-dtoa.h
+ ../3rdparty/double-conversion/cached-powers.cc ../3rdparty/double-conversion/cached-powers.h
+ ../3rdparty/double-conversion/diy-fp.cc ../3rdparty/double-conversion/diy-fp.h
+ ../3rdparty/double-conversion/double-conversion.cc
+ ../3rdparty/double-conversion/fast-dtoa.cc ../3rdparty/double-conversion/fast-dtoa.h
+ ../3rdparty/double-conversion/fixed-dtoa.cc ../3rdparty/double-conversion/fixed-dtoa.h
+ ../3rdparty/double-conversion/ieee.h
+ ../3rdparty/double-conversion/include/double-conversion/double-conversion.h
+ ../3rdparty/double-conversion/include/double-conversion/utils.h
+ ../3rdparty/double-conversion/strtod.cc ../3rdparty/double-conversion/strtod.h
+ INCLUDE_DIRECTORIES
+ ../3rdparty/double-conversion/..
+ ../3rdparty/double-conversion/include
+)
+
qt_extend_target(Core CONDITION QT_FEATURE_easingcurve
SOURCES
tools/qeasingcurve.cpp tools/qeasingcurve.h
diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt
index da5b6fa670..7dc5cda06c 100644
--- a/src/corelib/CMakeLists.txt
+++ b/src/corelib/CMakeLists.txt
@@ -2,15 +2,8 @@
# special case begin
qt_find_package(Threads PROVIDED_TARGETS Threads::Threads)
-qt_find_package(WrapDoubleConversion REQUIRED
- PROVIDED_TARGETS WrapDoubleConversion::WrapDoubleConversion)
qt_find_package(WrapPCRE2 PROVIDED_TARGETS WrapPCRE2::WrapPCRE2)
-if (NOT WrapDoubleConversion_FOUND)
- message(FATAL_ERROR "Your C library does not provide \
- sscanf_l/snprintf_l _snprintf_l/_sscanf_l. \
- You need to use libdouble-conversion for double/string conversion.")
-endif()
# compute the reverse relative path from QtCoreConfigExtras to the install prefix
# this is used in QtCoreConfigExtras to make its install paths relocatable
@@ -251,11 +244,9 @@ qt_add_module(Core
NO_PCH_SOURCES
"text/qstring_compat.cpp"
LIBRARIES
- # double-conversion # special case remove
Qt::GlobalConfigPrivate # special case
QtHarfBuzz # special case
Threads::Threads # special case
- WrapDoubleConversion::WrapDoubleConversion # special case
PUBLIC_LIBRARIES # special case:
Qt::Platform # special case:
# special case begin
@@ -730,6 +721,29 @@ qt_extend_target(Core CONDITION QT_FEATURE_commandlineparser
tools/qcommandlineparser.cpp tools/qcommandlineparser.h
)
+qt_extend_target(Core CONDITION QT_FEATURE_system_doubleconversion
+ LIBRARIES
+ WrapDoubleConversion::WrapDoubleConversion
+)
+
+qt_extend_target(Core CONDITION QT_FEATURE_doubleconversion AND NOT QT_FEATURE_system_doubleconversion
+ SOURCES
+ ../3rdparty/double-conversion/bignum.cc ../3rdparty/double-conversion/bignum.h
+ ../3rdparty/double-conversion/bignum-dtoa.cc ../3rdparty/double-conversion/bignum-dtoa.h
+ ../3rdparty/double-conversion/cached-powers.cc ../3rdparty/double-conversion/cached-powers.h
+ ../3rdparty/double-conversion/diy-fp.cc ../3rdparty/double-conversion/diy-fp.h
+ ../3rdparty/double-conversion/double-conversion.cc
+ ../3rdparty/double-conversion/fast-dtoa.cc ../3rdparty/double-conversion/fast-dtoa.h
+ ../3rdparty/double-conversion/fixed-dtoa.cc ../3rdparty/double-conversion/fixed-dtoa.h
+ ../3rdparty/double-conversion/ieee.h
+ ../3rdparty/double-conversion/include/double-conversion/double-conversion.h
+ ../3rdparty/double-conversion/include/double-conversion/utils.h
+ ../3rdparty/double-conversion/strtod.cc ../3rdparty/double-conversion/strtod.h
+ INCLUDE_DIRECTORIES
+ ../3rdparty/double-conversion/..
+ ../3rdparty/double-conversion/include
+)
+
qt_extend_target(Core CONDITION QT_FEATURE_easingcurve
SOURCES
tools/qeasingcurve.cpp tools/qeasingcurve.h
diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake
index 556622aa79..811030bd38 100644
--- a/src/corelib/configure.cmake
+++ b/src/corelib/configure.cmake
@@ -2,6 +2,10 @@
#### Inputs
+# input doubleconversion
+set(INPUT_doubleconversion "undefined" CACHE STRING "")
+set_property(CACHE INPUT_doubleconversion PROPERTY STRINGS undefined no qt system)
+
# input iconv
set(INPUT_iconv "undefined" CACHE STRING "")
set_property(CACHE INPUT_iconv PROPERTY STRINGS undefined no yes posix sun gnu)
@@ -10,6 +14,7 @@ set_property(CACHE INPUT_iconv PROPERTY STRINGS undefined no yes posix sun gnu)
#### Libraries
+qt_find_package(WrapDoubleConversion PROVIDED_TARGETS WrapDoubleConversion::WrapDoubleConversion)
qt_find_package(GLIB2 PROVIDED_TARGETS GLIB2::GLIB2)
qt_find_package(ICU COMPONENTS i18n uc data PROVIDED_TARGETS ICU::i18n ICU::uc ICU::data)
qt_find_package(Libsystemd PROVIDED_TARGETS PkgConfig::Libsystemd)
@@ -529,6 +534,16 @@ qt_feature("clock-monotonic" PUBLIC
CONDITION QT_FEATURE_clock_gettime AND TEST_clock_monotonic
)
qt_feature_definition("clock-monotonic" "QT_NO_CLOCK_MONOTONIC" NEGATE VALUE "1")
+qt_feature("doubleconversion" PUBLIC PRIVATE
+ LABEL "DoubleConversion"
+)
+qt_feature_definition("doubleconversion" "QT_NO_DOUBLECONVERSION" NEGATE VALUE "1")
+qt_feature("system-doubleconversion" PRIVATE
+ LABEL " Using system DoubleConversion"
+ CONDITION QT_FEATURE_doubleconversion AND WrapDoubleConversion_FOUND
+ ENABLE INPUT_doubleconversion STREQUAL 'system'
+ DISABLE INPUT_doubleconversion STREQUAL 'qt'
+)
qt_feature("cxx11_future" PUBLIC
LABEL "C++11 <future>"
CONDITION TEST_cxx11_future
diff --git a/util/cmake/configurejson2cmake.py b/util/cmake/configurejson2cmake.py
index 0966a42932..6b68bf15bb 100755
--- a/util/cmake/configurejson2cmake.py
+++ b/util/cmake/configurejson2cmake.py
@@ -461,7 +461,6 @@ def parseInput(ctx, sinput, data, cm_fh):
"widgets",
"xplatform",
"zlib",
- "doubleconversion",
"eventfd",
"glib",
"icu",
@@ -772,7 +771,6 @@ def get_feature_mapping():
},
"debug": {"condition": "CMAKE_BUILD_TYPE STREQUAL Debug OR Debug IN_LIST CMAKE_CONFIGURATION_TYPES"},
"dlopen": {"condition": "UNIX"},
- "doubleconversion": None,
"enable_gdb_index": None,
"enable_new_dtags": None,
"force_debug_info": {
@@ -838,7 +836,6 @@ def get_feature_mapping():
"enable": "TEST_sun_iconv",
"disable": "NOT TEST_sun_iconv",
},
- "system-doubleconversion": None, # No system libraries anymore!
"system-sqlite": None,
"system-xcb": None,
"tiff": {"condition": "QT_FEATURE_imageformatplugin AND TIFF_FOUND"},
diff --git a/util/cmake/helper.py b/util/cmake/helper.py
index bac0bdb725..aa6107412f 100644
--- a/util/cmake/helper.py
+++ b/util/cmake/helper.py
@@ -398,7 +398,7 @@ _library_map = [
LibraryMapping("directfb", "DirectFB", "PkgConfig::DirectFB"),
LibraryMapping("db2", "DB2", "DB2::DB2"),
LibraryMapping("dbus", "WrapDBus1", "dbus-1", resultVariable="DBus1"),
- LibraryMapping("doubleconversion", None, None),
+ LibraryMapping("doubleconversion", "WrapDoubleConversion", "WrapDoubleConversion::WrapDoubleConversion"),
LibraryMapping("drm", "Libdrm", "Libdrm::Libdrm"),
LibraryMapping("egl", "EGL", "EGL::EGL"),
LibraryMapping("flite", "Flite", "Flite::Flite"),
diff --git a/util/cmake/pro2cmake.py b/util/cmake/pro2cmake.py
index 56d7e8d48d..bba01bb595 100755
--- a/util/cmake/pro2cmake.py
+++ b/util/cmake/pro2cmake.py
@@ -1564,6 +1564,7 @@ def map_condition(condition: str) -> str:
and is_known_3rd_party_library(feature_name[7:])
and not feature_name.startswith("system_jpeg")
and not feature_name.startswith("system_zlib")
+ and not feature_name.startswith("system_doubleconversion")
):
part = "ON"
elif feature == "dlopen":