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>
This commit is contained in:
Alexandru Croitor 2020-02-21 15:52:58 +01:00
parent b04d087bd0
commit 729a73a9cf
9 changed files with 65 additions and 47 deletions

View File

@ -5,12 +5,11 @@ if(TARGET WrapDoubleConversion::WrapDoubleConversion)
return() return()
endif() endif()
add_library(WrapDoubleConversion::WrapDoubleConversion INTERFACE IMPORTED)
find_package(double-conversion) find_package(double-conversion)
if (double-conversion_FOUND) if (double-conversion_FOUND)
include(FeatureSummary) include(FeatureSummary)
set_package_properties(double-conversion PROPERTIES TYPE REQUIRED) set_package_properties(double-conversion PROPERTIES TYPE REQUIRED)
add_library(WrapDoubleConversion::WrapDoubleConversion INTERFACE IMPORTED)
target_link_libraries(WrapDoubleConversion::WrapDoubleConversion target_link_libraries(WrapDoubleConversion::WrapDoubleConversion
INTERFACE double-conversion::double-conversion) INTERFACE double-conversion::double-conversion)
set(WrapDoubleConversion_FOUND 1) set(WrapDoubleConversion_FOUND 1)
@ -44,18 +43,11 @@ int main(int argc, char *argv[]) {
return 0; return 0;
}" HAVE_SPRINTF_L) }" 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) if (HAVE__SPRINTF_L OR HAVE_SPRINTF_L)
add_library(WrapDoubleConversion::WrapDoubleConversion INTERFACE IMPORTED)
target_compile_definitions(WrapDoubleConversion::WrapDoubleConversion target_compile_definitions(WrapDoubleConversion::WrapDoubleConversion
INTERFACE QT_NO_DOUBLECONVERSION) INTERFACE QT_NO_DOUBLECONVERSION)
set(WrapDoubleConversion_FOUND 1) 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() else()
set(WrapDoubleConversion_FOUND 0) set(WrapDoubleConversion_FOUND 0)
endif() endif()

View File

@ -1,7 +1,6 @@
# special case skip regeneration # special case skip regeneration
# The file is maintained manually # The file is maintained manually
add_subdirectory(harfbuzz) add_subdirectory(harfbuzz)
add_subdirectory(double-conversion)
if(QT_FEATURE_png AND NOT QT_FEATURE_system_png) if(QT_FEATURE_png AND NOT QT_FEATURE_system_png)
add_subdirectory(libpng) add_subdirectory(libpng)

View File

@ -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

View File

@ -235,8 +235,6 @@ qt_add_module(Core
../3rdparty/md5 ../3rdparty/md5
../3rdparty/sha3 ../3rdparty/sha3
../3rdparty/tinycbor/src ../3rdparty/tinycbor/src
LIBRARIES
doubleconversion
PRECOMPILED_HEADER PRECOMPILED_HEADER
"global/qt_pch.h" "global/qt_pch.h"
NO_PCH_SOURCES NO_PCH_SOURCES
@ -631,6 +629,29 @@ qt_extend_target(Core CONDITION QT_FEATURE_commandlineparser
tools/qcommandlineparser.cpp tools/qcommandlineparser.h 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 qt_extend_target(Core CONDITION QT_FEATURE_easingcurve
SOURCES SOURCES
tools/qeasingcurve.cpp tools/qeasingcurve.h tools/qeasingcurve.cpp tools/qeasingcurve.h

View File

@ -2,15 +2,8 @@
# special case begin # special case begin
qt_find_package(Threads PROVIDED_TARGETS Threads::Threads) 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) 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 # compute the reverse relative path from QtCoreConfigExtras to the install prefix
# this is used in QtCoreConfigExtras to make its install paths relocatable # this is used in QtCoreConfigExtras to make its install paths relocatable
@ -251,11 +244,9 @@ qt_add_module(Core
NO_PCH_SOURCES NO_PCH_SOURCES
"text/qstring_compat.cpp" "text/qstring_compat.cpp"
LIBRARIES LIBRARIES
# double-conversion # special case remove
Qt::GlobalConfigPrivate # special case Qt::GlobalConfigPrivate # special case
QtHarfBuzz # special case QtHarfBuzz # special case
Threads::Threads # special case Threads::Threads # special case
WrapDoubleConversion::WrapDoubleConversion # special case
PUBLIC_LIBRARIES # special case: PUBLIC_LIBRARIES # special case:
Qt::Platform # special case: Qt::Platform # special case:
# special case begin # special case begin
@ -730,6 +721,29 @@ qt_extend_target(Core CONDITION QT_FEATURE_commandlineparser
tools/qcommandlineparser.cpp tools/qcommandlineparser.h 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 qt_extend_target(Core CONDITION QT_FEATURE_easingcurve
SOURCES SOURCES
tools/qeasingcurve.cpp tools/qeasingcurve.h tools/qeasingcurve.cpp tools/qeasingcurve.h

View File

@ -2,6 +2,10 @@
#### Inputs #### Inputs
# input doubleconversion
set(INPUT_doubleconversion "undefined" CACHE STRING "")
set_property(CACHE INPUT_doubleconversion PROPERTY STRINGS undefined no qt system)
# input iconv # input iconv
set(INPUT_iconv "undefined" CACHE STRING "") set(INPUT_iconv "undefined" CACHE STRING "")
set_property(CACHE INPUT_iconv PROPERTY STRINGS undefined no yes posix sun gnu) 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 #### Libraries
qt_find_package(WrapDoubleConversion PROVIDED_TARGETS WrapDoubleConversion::WrapDoubleConversion)
qt_find_package(GLIB2 PROVIDED_TARGETS GLIB2::GLIB2) 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(ICU COMPONENTS i18n uc data PROVIDED_TARGETS ICU::i18n ICU::uc ICU::data)
qt_find_package(Libsystemd PROVIDED_TARGETS PkgConfig::Libsystemd) 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 CONDITION QT_FEATURE_clock_gettime AND TEST_clock_monotonic
) )
qt_feature_definition("clock-monotonic" "QT_NO_CLOCK_MONOTONIC" NEGATE VALUE "1") 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 qt_feature("cxx11_future" PUBLIC
LABEL "C++11 <future>" LABEL "C++11 <future>"
CONDITION TEST_cxx11_future CONDITION TEST_cxx11_future

View File

@ -461,7 +461,6 @@ def parseInput(ctx, sinput, data, cm_fh):
"widgets", "widgets",
"xplatform", "xplatform",
"zlib", "zlib",
"doubleconversion",
"eventfd", "eventfd",
"glib", "glib",
"icu", "icu",
@ -772,7 +771,6 @@ def get_feature_mapping():
}, },
"debug": {"condition": "CMAKE_BUILD_TYPE STREQUAL Debug OR Debug IN_LIST CMAKE_CONFIGURATION_TYPES"}, "debug": {"condition": "CMAKE_BUILD_TYPE STREQUAL Debug OR Debug IN_LIST CMAKE_CONFIGURATION_TYPES"},
"dlopen": {"condition": "UNIX"}, "dlopen": {"condition": "UNIX"},
"doubleconversion": None,
"enable_gdb_index": None, "enable_gdb_index": None,
"enable_new_dtags": None, "enable_new_dtags": None,
"force_debug_info": { "force_debug_info": {
@ -838,7 +836,6 @@ def get_feature_mapping():
"enable": "TEST_sun_iconv", "enable": "TEST_sun_iconv",
"disable": "NOT TEST_sun_iconv", "disable": "NOT TEST_sun_iconv",
}, },
"system-doubleconversion": None, # No system libraries anymore!
"system-sqlite": None, "system-sqlite": None,
"system-xcb": None, "system-xcb": None,
"tiff": {"condition": "QT_FEATURE_imageformatplugin AND TIFF_FOUND"}, "tiff": {"condition": "QT_FEATURE_imageformatplugin AND TIFF_FOUND"},

View File

@ -398,7 +398,7 @@ _library_map = [
LibraryMapping("directfb", "DirectFB", "PkgConfig::DirectFB"), LibraryMapping("directfb", "DirectFB", "PkgConfig::DirectFB"),
LibraryMapping("db2", "DB2", "DB2::DB2"), LibraryMapping("db2", "DB2", "DB2::DB2"),
LibraryMapping("dbus", "WrapDBus1", "dbus-1", resultVariable="DBus1"), LibraryMapping("dbus", "WrapDBus1", "dbus-1", resultVariable="DBus1"),
LibraryMapping("doubleconversion", None, None), LibraryMapping("doubleconversion", "WrapDoubleConversion", "WrapDoubleConversion::WrapDoubleConversion"),
LibraryMapping("drm", "Libdrm", "Libdrm::Libdrm"), LibraryMapping("drm", "Libdrm", "Libdrm::Libdrm"),
LibraryMapping("egl", "EGL", "EGL::EGL"), LibraryMapping("egl", "EGL", "EGL::EGL"),
LibraryMapping("flite", "Flite", "Flite::Flite"), LibraryMapping("flite", "Flite", "Flite::Flite"),

View File

@ -1564,6 +1564,7 @@ def map_condition(condition: str) -> str:
and is_known_3rd_party_library(feature_name[7:]) and is_known_3rd_party_library(feature_name[7:])
and not feature_name.startswith("system_jpeg") and not feature_name.startswith("system_jpeg")
and not feature_name.startswith("system_zlib") and not feature_name.startswith("system_zlib")
and not feature_name.startswith("system_doubleconversion")
): ):
part = "ON" part = "ON"
elif feature == "dlopen": elif feature == "dlopen":