From 74936bb4e4a366278770787b641c23ab73a1bbeb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sat, 27 Oct 2012 10:13:58 +0100 Subject: [PATCH] Always use bundled QJson. In order to support NaN/Infite. --- CMakeLists.txt | 16 +++++----------- cmake/FindQJSON.cmake | 44 ------------------------------------------- gui/retracer.cpp | 3 +++ 3 files changed, 8 insertions(+), 55 deletions(-) delete mode 100644 cmake/FindQJSON.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c020df..a9efe6d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,7 +45,6 @@ if (ENABLE_GUI) set (REQUIRE_GUI REQUIRED) endif () find_package (Qt4 4.7 COMPONENTS QtCore QtGui QtWebKit ${REQUIRE_GUI}) - find_package (QJSON ${REQUIRE_GUI}) endif () if (WIN32) @@ -192,16 +191,11 @@ if (WIN32) add_subdirectory (thirdparty/less) endif () -# The Qt website provides binaries for Windows and MacOSX, and they are -# automatically found by cmake without any manual intervention. The situation -# for QJSON is substantially different: there are no binaries for QJSON -# available, and there is no standard installation directory that is detected -# by cmake. -# -# By bundling the QJSON source, we make it much more easier to build the GUI on -# Windows and MacOSX. But we only use the bundled sources when ENABLE_GUI is -# AUTO. -if (QT4_FOUND AND NOT QJSON_FOUND AND (ENABLE_GUI STREQUAL "AUTO")) +# Always use bundled QJSon. +# - The packaged versions QJson are very old, and do not support NaN/Infinity. +# - To make it easier to build the GUI on Windows and MacOSX, as there are no +# binaries at all. +if (QT4_FOUND) add_subdirectory (thirdparty/qjson EXCLUDE_FROM_ALL) set (QJSON_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty) set (QJSON_LIBRARY_DIRS) diff --git a/cmake/FindQJSON.cmake b/cmake/FindQJSON.cmake deleted file mode 100644 index cd007e1..0000000 --- a/cmake/FindQJSON.cmake +++ /dev/null @@ -1,44 +0,0 @@ -# Find QJSON - JSON handling library for Qt -# -# This module defines -# QJSON_FOUND - whether the qsjon library was found -# QJSON_LIBRARIES - the qjson library -# QJSON_INCLUDE_DIR - the include path of the qjson library -# - -if (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES) - - # Already in cache - set (QJSON_FOUND TRUE) - -else (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES) - - if (NOT WIN32) - # use pkg-config to get the values of QJSON_INCLUDE_DIRS - # and QJSON_LIBRARY_DIRS to add as hints to the find commands. - include (FindPkgConfig) - pkg_check_modules (PC_QJSON QJson>=0.5) - endif (NOT WIN32) - - find_library (QJSON_LIBRARIES - NAMES - qjson - PATHS - ${PC_QJSON_LIBRARY_DIRS} - ${LIB_INSTALL_DIR} - ${KDE4_LIB_DIR} - ) - - find_path (QJSON_INCLUDE_DIR - NAMES - qjson/parser.h - PATHS - ${PC_QJSON_INCLUDE_DIRS} - ${INCLUDE_INSTALL_DIR} - ${KDE4_INCLUDE_DIR} - ) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(QJSON DEFAULT_MSG QJSON_LIBRARIES QJSON_INCLUDE_DIR) - -endif (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES) diff --git a/gui/retracer.cpp b/gui/retracer.cpp index 592c1a4..6d743f7 100644 --- a/gui/retracer.cpp +++ b/gui/retracer.cpp @@ -353,6 +353,9 @@ void Retracer::run() bool ok = false; QJson::Parser jsonParser; + + // Allow Nan/Infinity + jsonParser.allowSpecialNumbers(true); #if 0 parsedJson = jsonParser.parse(&io, &ok).toMap(); #else -- 2.43.0