summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/FindWrapDoubleConversion.cmake23
-rw-r--r--src/corelib/CMakeLists.txt5
-rwxr-xr-xutil/cmake/configurejson2cmake.py2
3 files changed, 21 insertions, 9 deletions
diff --git a/cmake/FindWrapDoubleConversion.cmake b/cmake/FindWrapDoubleConversion.cmake
index c93525af23..749965a7b8 100644
--- a/cmake/FindWrapDoubleConversion.cmake
+++ b/cmake/FindWrapDoubleConversion.cmake
@@ -1,5 +1,15 @@
include(CheckCXXSourceCompiles)
+add_library(WrapDoubleConversion INTERFACE)
+
+find_package(double-conversion)
+if (double-conversion_FOUND)
+ set_package_properties(double-conversion PROPERTIES TYPE REQUIRED)
+ target_link_libraries(WrapDoubleConversion INTERFACE double-conversion::double-conversion)
+ set(WrapDoubleConversion_FOUND 1)
+ return()
+endif()
+
check_cxx_source_compiles("
#include <stdio.h>
#include <locale.h>
@@ -25,12 +35,9 @@ int main(int argc, char *argv[]) {
return 0;
}" HAVE_SPRINTF_L)
-add_library(WrapDoubleConversion INTERFACE)
-if (NOT HAVE__SPRINTF_L AND NOT HAVE_SPRINTF_L)
- find_package(double-conversion)
- set_package_properties(double-conversion PROPERTIES TYPE REQUIRED)
- target_link_libraries(WrapDoubleConversion INTERFACE double-conversion::double-conversion)
+if (HAVE__SPRINTF_L OR HAVE_SPRINTF_L)
+ target_compile_definitions(WrapDoubleConversion INTERFACE QT_NO_DOUBLECONVERSION)
+ set(WrapDoubleConversion_FOUND 1)
+else()
+ set(WrapDoubleConversion_FOUND 0)
endif()
-
-set(WrapDoubleConversion_FOUND 1)
-
diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt
index 66b4efa5e6..edd2ae52ca 100644
--- a/src/corelib/CMakeLists.txt
+++ b/src/corelib/CMakeLists.txt
@@ -1,6 +1,11 @@
find_package(Threads)
find_package(WrapDoubleConversion REQUIRED)
+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()
+
find_library(FWAppKit AppKit)
find_library(FWApplicationServices ApplicationServices)
find_library(FWCoreFoundation CoreFoundation)
diff --git a/util/cmake/configurejson2cmake.py b/util/cmake/configurejson2cmake.py
index 0997608ed9..5d189558bd 100755
--- a/util/cmake/configurejson2cmake.py
+++ b/util/cmake/configurejson2cmake.py
@@ -50,7 +50,7 @@ def map_library(lib: str) -> Union[str, LibraryMapping, List[str]]:
'atspi': 'ATSPI2',
'corewlan': None, # Framework
'cups': 'Cups',
- 'double-conversion': 'WrapDoubleConversion',
+ 'double-conversion': None,
'drm': 'Libdrm',
'egl': 'EGL',
'fontconfig': LibraryMapping(package='Fontconfig', resultVariable="FONTCONFIG"),