diff options
-rw-r--r-- | cmake/FindWrapDoubleConversion.cmake | 23 | ||||
-rw-r--r-- | src/corelib/CMakeLists.txt | 5 | ||||
-rwxr-xr-x | util/cmake/configurejson2cmake.py | 2 |
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"), |