From 32db84c32596d6c9ba86f9fa4daa4f8742f06b6e Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Sun, 6 Aug 2017 11:15:49 -0300 Subject: [PATCH] Remove our dependency on Qt Charts. --- CMakeLists.txt | 35 +--- cmake/common.cmake | 22 ++- doc/downloads/index.js | 2 +- src/3rdparty/QtCharts/CMakeLists.txt | 230 --------------------------- src/3rdparty/QtCharts/cmake/patch.c | 117 -------------- 5 files changed, 18 insertions(+), 388 deletions(-) delete mode 100644 src/3rdparty/QtCharts/CMakeLists.txt delete mode 100644 src/3rdparty/QtCharts/cmake/patch.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a72f31c20..75b9adfbbc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,6 @@ OPTION(ENABLE_TEST_PLUGINS "Enable the test plugins to be built" OFF) OPTION(ENABLE_TESTS "Enable the tests to be built" OFF) OPTION(USE_PREBUILT_MESA_PACKAGE "Use the pre-built version of the Mesa package" ON) -OPTION(USE_PREBUILT_QTCHARTS_PACKAGE "Use the pre-built version of the QtCharts package" ON) OPTION(USE_PREBUILT_QTWEBKIT_PACKAGE "Use the pre-built version of the QtWebKit package" ON) OPTION(USE_PREBUILT_BIOSIGNALMLAPI_PACKAGE "Use the pre-built version of the BioSignalML API package" ON) @@ -273,9 +272,8 @@ IF(WIN32) SET(ICU_VERSION 57) ENDIF() -# Retrieve or build our copy of Qt Charts and QtWebKit +# Retrieve or build our copy of QtWebKit -ADD_SUBDIRECTORY(src/3rdparty/QtCharts) ADD_SUBDIRECTORY(src/3rdparty/QtWebKit) # Required Qt modules @@ -286,12 +284,6 @@ ELSE() SET(TEST) ENDIF() -IF(USE_PREBUILT_QTCHARTS_PACKAGE) - SET(CHARTS Charts) -ELSE() - SET(CHARTS) -ENDIF() - IF(USE_PREBUILT_QTWEBKIT_PACKAGE) SET(WEBKIT WebKit) SET(WEBKITWIDGETS WebKitWidgets) @@ -327,12 +319,6 @@ IF(APPLE) SET(QTTEST) ENDIF() - IF(USE_PREBUILT_QTCHARTS_PACKAGE) - SET(QTCHARTS QtCharts) - ELSE() - SET(QTCHARTS) - ENDIF() - IF(USE_PREBUILT_QTWEBKIT_PACKAGE) SET(QTWEBKIT QtWebKit) SET(QTWEBKITWIDGETS QtWebKitWidgets) @@ -342,7 +328,6 @@ IF(APPLE) ENDIF() SET(MACOS_QT_LIBRARIES - ${QTCHARTS} QtCLucene QtConcurrent QtCore @@ -864,11 +849,9 @@ SET(PLUGINS widget/ZincWidget ) -IF( NOT USE_PREBUILT_QTCHARTS_PACKAGE - OR NOT USE_PREBUILT_QTWEBKIT_PACKAGE) - # We want to build our copy of the QtCharts and/or QtWebKit package, so - # don't build any plugins since some of them may require access to Qt - # Charts and/or QtWebKit +IF(NOT USE_PREBUILT_QTWEBKIT_PACKAGE) + # We want to build our copy of the QtWebKit package, so don't build any + # plugins since some of them may require access to QtWebKit SET(PLUGINS) ENDIF() @@ -1174,7 +1157,7 @@ IF(WIN32) # Qt libraries required by OpenCOR - FOREACH(QT_LIBRARY ${CHARTS} CLucene Core Gui Help Multimedia MultimediaWidgets Network OpenGL Positioning PrintSupport Qml Quick Sensors Sql Svg ${TEST} WebChannel ${WEBKIT} ${WEBKITWIDGETS} Widgets Xml XmlPatterns) + FOREACH(QT_LIBRARY CLucene Core Gui Help Multimedia MultimediaWidgets Network OpenGL Positioning PrintSupport Qml Quick Sensors Sql Svg ${TEST} WebChannel ${WEBKIT} ${WEBKITWIDGETS} Widgets Xml XmlPatterns) WINDOWS_DEPLOY_QT_LIBRARY(Qt5${QT_LIBRARY}) ENDFOREACH() @@ -1312,11 +1295,9 @@ ELSE() # unnecessarily cumbersome to use, it's better to deploy one Qt # library at a time... - FOREACH(QT_LIBRARY ${CHARTS} CLucene Core DBus Gui Help Multimedia MultimediaWidgets Network OpenGL Positioning PrintSupport Qml Quick Sensors Sql Svg ${TEST} WebChannel ${WEBKIT} ${WEBKITWIDGETS} Widgets XcbQpa Xml XmlPatterns) - IF("${QT_LIBRARY}" STREQUAL "${CHARTS}") - SET(REAL_QT_LIBRARY_DIR ${QTCHARTS_LIBRARIES_DIR}) - ELSEIF( "${QT_LIBRARY}" STREQUAL "${WEBKIT}" - OR "${QT_LIBRARY}" STREQUAL "${WEBKITWIDGETS}") + FOREACH(QT_LIBRARY CLucene Core DBus Gui Help Multimedia MultimediaWidgets Network OpenGL Positioning PrintSupport Qml Quick Sensors Sql Svg ${TEST} WebChannel ${WEBKIT} ${WEBKITWIDGETS} Widgets XcbQpa Xml XmlPatterns) + IF( "${QT_LIBRARY}" STREQUAL "${WEBKIT}" + OR "${QT_LIBRARY}" STREQUAL "${WEBKITWIDGETS}") SET(REAL_QT_LIBRARY_DIR ${QTWEBKIT_LIBRARIES_DIR}) ELSE() SET(REAL_QT_LIBRARY_DIR ${QT_LIBRARY_DIR}) diff --git a/cmake/common.cmake b/cmake/common.cmake index 3738402563..585c82f344 100644 --- a/cmake/common.cmake +++ b/cmake/common.cmake @@ -45,9 +45,9 @@ ENDMACRO() MACRO(BUILD_PATCHCMAKE) # Try to build our patch CMake program - + SET(PATCH ${CMAKE_BINARY_DIR}/patchcmake${CMAKE_EXECUTABLE_SUFFIX}) - + IF(NOT EXISTS ${PATH}) SET(PATCH_SOURCE ${CMAKE_SOURCE_DIR}/cmake/patchcmake.c) @@ -569,13 +569,11 @@ MACRO(WINDOWS_DEPLOY_QT_LIBRARY LIBRARY_NAME) # test things both from within Qt Creator and without first having to deploy # OpenCOR - IF( "${LIBRARY_NAME}" STREQUAL "Qt5Charts") - SET(REAL_QT_BINARY_DIR ${QTCHARTS_BINARIES_DIR}) - ELSEIF( "${LIBRARY_NAME}" STREQUAL "Qt5WebKit" - OR "${LIBRARY_NAME}" STREQUAL "Qt5WebKitWidgets" - OR "${LIBRARY_NAME}" STREQUAL "icudt${ICU_VERSION}" - OR "${LIBRARY_NAME}" STREQUAL "icuin${ICU_VERSION}" - OR "${LIBRARY_NAME}" STREQUAL "icuuc${ICU_VERSION}") + IF( "${LIBRARY_NAME}" STREQUAL "Qt5WebKit" + OR "${LIBRARY_NAME}" STREQUAL "Qt5WebKitWidgets" + OR "${LIBRARY_NAME}" STREQUAL "icudt${ICU_VERSION}" + OR "${LIBRARY_NAME}" STREQUAL "icuin${ICU_VERSION}" + OR "${LIBRARY_NAME}" STREQUAL "icuuc${ICU_VERSION}") SET(REAL_QT_BINARY_DIR ${QTWEBKIT_BINARIES_DIR}) ELSE() SET(REAL_QT_BINARY_DIR ${QT_BINARY_DIR}) @@ -777,10 +775,8 @@ MACRO(MACOS_DEPLOY_QT_LIBRARY LIBRARY_NAME) SET(QT_FRAMEWORK_DIR ${LIBRARY_NAME}.framework/Versions/${QT_VERSION_MAJOR}) - IF("${LIBRARY_NAME}" STREQUAL "${QTCHARTS}") - SET(REAL_QT_LIBRARY_DIR ${QTCHARTS_LIBRARIES_DIR}) - ELSEIF( "${LIBRARY_NAME}" STREQUAL "${QTWEBKIT}" - OR "${LIBRARY_NAME}" STREQUAL "${QTWEBKITWIDGETS}") + IF( "${LIBRARY_NAME}" STREQUAL "${QTWEBKIT}" + OR "${LIBRARY_NAME}" STREQUAL "${QTWEBKITWIDGETS}") SET(REAL_QT_LIBRARY_DIR ${QTWEBKIT_LIBRARIES_DIR}) ELSE() SET(REAL_QT_LIBRARY_DIR ${QT_LIBRARY_DIR}) diff --git a/doc/downloads/index.js b/doc/downloads/index.js index 4cddc154b9..d009f6bd0c 100644 --- a/doc/downloads/index.js +++ b/doc/downloads/index.js @@ -37,7 +37,7 @@ var jsonData = { "versions": [ } ], "changes": [ - { "change": "Third-party libraries: upgraded libgit2 to version 0.26 (see issue #1340). Added Qt Charts as a package (see issue #1342)." } + { "change": "Third-party libraries: upgraded libgit2 to version 0.26 (see issue #1340)." } ] }, { "major": 0, "minor": 4, "patch": 1, "day": 20, "month": 5, "year": 2015, "type": 0, diff --git a/src/3rdparty/QtCharts/CMakeLists.txt b/src/3rdparty/QtCharts/CMakeLists.txt deleted file mode 100644 index 3dccb94729..0000000000 --- a/src/3rdparty/QtCharts/CMakeLists.txt +++ /dev/null @@ -1,230 +0,0 @@ -PROJECT(QtCharts) - -# Name and version of our package - -SET(PACKAGE_NAME QtCharts) -SET(PACKAGE_VERSION 5.9.0) - -# Version of our library - -SET(MAJOR_LIBRARY_VERSION 5) -SET(MINOR_LIBRARY_VERSION 9) -SET(LIBRARY_VERSION ${MAJOR_LIBRARY_VERSION}.${MINOR_LIBRARY_VERSION}.0) - -# Git tag for our library - -SET(GIT_TAG 5.9.0) - -# Platform target for our library - -SET(TARGET_PLATFORM ${PLATFORM}) - -# Specify where our local package will be installed -# Note: on Windows, we would normally distinguish between release and debug -# modes, but QtCharts' build system doesn't, hence we go one folder up... - -IF(WIN32) - STRING(REGEX REPLACE "/[^/]+$" "" REAL_LOCAL_EXTERNAL_PACKAGE_DIR ${LOCAL_EXTERNAL_PACKAGE_DIR}) -ELSE() - SET(REAL_LOCAL_EXTERNAL_PACKAGE_DIR ${LOCAL_EXTERNAL_PACKAGE_DIR}) -ENDIF() - -SET(FULL_LOCAL_EXTERNAL_PACKAGE_DIR ${PROJECT_SOURCE_DIR}/${REAL_LOCAL_EXTERNAL_PACKAGE_DIR}) - -# Name of our package's shared library (and of its import library, if any) - -IF(WIN32) - SET(RELEASE_SHARED_LIBRARY Qt${QT_VERSION_MAJOR}Charts${CMAKE_SHARED_LIBRARY_SUFFIX}) - SET(RELEASE_IMPORT_LIBRARY Qt${QT_VERSION_MAJOR}Charts${CMAKE_IMPORT_LIBRARY_SUFFIX}) - SET(DEBUG_SHARED_LIBRARY Qt${QT_VERSION_MAJOR}Chartsd${CMAKE_SHARED_LIBRARY_SUFFIX}) - SET(DEBUG_IMPORT_LIBRARY Qt${QT_VERSION_MAJOR}Chartsd${CMAKE_IMPORT_LIBRARY_SUFFIX}) -ELSEIF(APPLE) - SET(QTCHARTS_DIR QtCharts.framework) - SET(SHARED_LIBRARY_DIR ${QTCHARTS_DIR}/Versions/${QT_VERSION_MAJOR}) - SET(SHARED_LIBRARY ${SHARED_LIBRARY_DIR}/QtCharts) - SET(IMPORT_LIBRARY ${SHARED_LIBRARY}) -ELSE() - SET(BASE_SHARED_LIBRARY ${CMAKE_SHARED_LIBRARY_PREFIX}Qt${QT_VERSION_MAJOR}Charts${CMAKE_SHARED_LIBRARY_SUFFIX}) - SET(SHARED_LIBRARY ${BASE_SHARED_LIBRARY}.${MAJOR_LIBRARY_VERSION}) - SET(REAL_SHARED_LIBRARY ${BASE_SHARED_LIBRARY}.${LIBRARY_VERSION}) - SET(IMPORT_LIBRARY ${SHARED_LIBRARY}) -ENDIF() - -# Specify the files that need to have their SHA-1 value checked - -IF(WIN32) - SET(SHA1_FILES - bin/${RELEASE_SHARED_LIBRARY} - bin/${DEBUG_SHARED_LIBRARY} - - lib/${RELEASE_IMPORT_LIBRARY} - lib/${DEBUG_IMPORT_LIBRARY} - ) -ELSE() - SET(SHA1_FILES - lib/${SHARED_LIBRARY} - ) -ENDIF() - -# Use the pre-built version of our package unless instructed otherwise - -IF(USE_PREBUILT_QTCHARTS_PACKAGE) - # Retrieve the plugin's package - - STRING(REPLACE "${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/" "" - RELATIVE_PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/${PLATFORM_DIR}") - - IF(WIN32) - RETRIEVE_PACKAGE_FILE(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${RELATIVE_PROJECT_SOURCE_DIR} d7290d479c488964e43088bdc0c855494fa105ab - TARGET_PLATFORM ${TARGET_PLATFORM} - SHA1_FILES ${SHA1_FILES} - SHA1_VALUES 9d73b40c8528472746988f7e6bb8c923f2972d10 - 336e7ff0119f0b26ecbb0208e3f014933e8c6ca6 - 6258729d778866c63eea221eb96428eb81c855f6 - 87b1ba707145d080fa90261358739179aad4e435) - ELSEIF(APPLE) - RETRIEVE_PACKAGE_FILE(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${RELATIVE_PROJECT_SOURCE_DIR} 1b570cf296aefc49f8e742b234e3cfaa5f8b3ac7 - TARGET_PLATFORM ${TARGET_PLATFORM} - SHA1_FILES ${SHA1_FILES} - SHA1_VALUES c819db40834569161082e4d95ef78efcbfe5811b) - ELSE() - RETRIEVE_PACKAGE_FILE(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${RELATIVE_PROJECT_SOURCE_DIR} 9f7c14a13d42f5ecc34c1a4663e9484300dc1382 - TARGET_PLATFORM ${TARGET_PLATFORM} - SHA1_FILES ${SHA1_FILES} - SHA1_VALUES 91a78fef36643c0c499c64f94960cdeb3fd22731) - ENDIF() -ELSE() - # Set platform specific configuration options - - SET(PACKAGE_BUILD ${PACKAGE_NAME}Build) - SET(QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR ${EXTERNAL_PROJECT_BUILD_DIR}/Build/${PACKAGE_BUILD}) - - IF(WIN32) - SET(BUILD_BYPRODUCTS - /lib/${RELEASE_IMPORT_LIBRARY} - /lib/${DEBUG_IMPORT_LIBRARY} - ) - ELSE() - SET(BUILD_BYPRODUCTS - /lib/${IMPORT_LIBRARY} - ) - ENDIF() - - IF(WIN32) - SET(CONFIGURE_COMMAND ${QMAKE_COMMAND} CONFIG+=debug_and_release CONFIG+=build_all ) - SET(BUILD_COMMAND ${MAKE_JOM_COMMAND}) - SET(INSTALL_COMMAND - ${CMAKE_COMMAND} -E copy_directory ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/cmake /cmake - && ${CMAKE_COMMAND} -E copy_directory ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/include /include - && ${CMAKE_COMMAND} -E copy ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/${RELEASE_SHARED_LIBRARY} /bin/${RELEASE_SHARED_LIBRARY} - && ${CMAKE_COMMAND} -E copy ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/${RELEASE_IMPORT_LIBRARY} /lib/${RELEASE_IMPORT_LIBRARY} - && ${CMAKE_COMMAND} -E copy ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/${DEBUG_SHARED_LIBRARY} /bin/${DEBUG_SHARED_LIBRARY} - && ${CMAKE_COMMAND} -E copy ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/${DEBUG_IMPORT_LIBRARY} /lib/${DEBUG_IMPORT_LIBRARY} - ) - ELSEIF(APPLE) - IF(RELEASE_MODE) - SET(CONFIGURE_COMMAND ${QMAKE_COMMAND} CONFIG+=release ) - ELSE() - SET(CONFIGURE_COMMAND ${QMAKE_COMMAND} CONFIG+=debug ) - ENDIF() - - SET(BUILD_COMMAND ${MAKE_JOM_COMMAND}) - SET(INSTALL_COMMAND - ${CMAKE_COMMAND} -E copy_directory ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/cmake /cmake - && ${CMAKE_COMMAND} -E copy_directory ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/${SHARED_LIBRARY_DIR}/Headers /lib/${SHARED_LIBRARY_DIR}/Headers - && ${CMAKE_COMMAND} -E copy ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/${SHARED_LIBRARY} /lib/${SHARED_LIBRARY} - && ${CMAKE_COMMAND} -E create_symlink 5 /lib/${QTCHARTS_DIR}/Versions/Current - && ${CMAKE_COMMAND} -E create_symlink Versions/Current/Headers /lib/${QTCHARTS_DIR}/Headers - && ${CMAKE_COMMAND} -E create_symlink Versions/Current/QtCharts /lib/${QTCHARTS_DIR}/QtCharts - ) - ELSE() - IF(RELEASE_MODE) - SET(CONFIGURE_COMMAND ${QMAKE_COMMAND} CONFIG+=release ) - ELSE() - SET(CONFIGURE_COMMAND ${QMAKE_COMMAND} CONFIG+=debug ) - ENDIF() - - SET(BUILD_COMMAND ${MAKE_JOM_COMMAND}) - SET(INSTALL_COMMAND - ${CMAKE_COMMAND} -E copy_directory ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/cmake /cmake - && ${CMAKE_COMMAND} -E copy_directory ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/include /include - && ${CMAKE_COMMAND} -E copy ${QTCHARTS_EXTERNAL_PROJECT_BUILD_DIR}/lib/${REAL_SHARED_LIBRARY} /lib/${REAL_SHARED_LIBRARY} - && ${CMAKE_COMMAND} -E create_symlink ${REAL_SHARED_LIBRARY} /lib/${BASE_SHARED_LIBRARY} - && ${CMAKE_COMMAND} -E create_symlink ${REAL_SHARED_LIBRARY} /lib/${BASE_SHARED_LIBRARY}.${MAJOR_LIBRARY_VERSION} - && ${CMAKE_COMMAND} -E create_symlink ${REAL_SHARED_LIBRARY} /lib/${BASE_SHARED_LIBRARY}.${MAJOR_LIBRARY_VERSION}.${MINOR_LIBRARY_VERSION} - ) - ENDIF() - - # Build Qt Charts as an external project - - SET(SOURCE_DIR ${CMAKE_SOURCE_DIR}/ext/${PACKAGE_NAME}) - - ExternalProject_Add(${PACKAGE_BUILD} - SOURCE_DIR - ${SOURCE_DIR} - INSTALL_DIR - ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR} - GIT_REPOSITORY - https://github.com/opencor/qtcharts - GIT_TAG - ${GIT_TAG} - CONFIGURE_COMMAND - ${CONFIGURE_COMMAND} - BUILD_COMMAND - ${BUILD_COMMAND} - INSTALL_COMMAND - ${INSTALL_COMMAND} - BUILD_BYPRODUCTS - ${BUILD_BYPRODUCTS} - ) - - # (Try to) build our patch CMake program - - BUILD_PATCHCMAKE() - - # Patch our CMake files - - ExternalProject_Add_Step(${PACKAGE_BUILD} PatchCMakeFiles - COMMAND ${PATCH} Qt5Charts/Qt5ChartsConfig.cmake Charts - WORKING_DIRECTORY ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR}/cmake - DEPENDEES install) - - # Make sure that we have the actual contents of our header files - # Note: this is only for Windows and Linux since, on those platforms, some - # of our 'installed' header files are indeed #including our copy of - # the Qt Charts header files rather than having their actual - # contents... - - IF(WIN32 OR NOT APPLE) - ExternalProject_Add_Step(${PACKAGE_BUILD} PatchHeaderFiles - COMMAND ${CMAKE_COMMAND} -D SOURCE_DIR=${SOURCE_DIR} - -D INCLUDE_DIR=${FULL_LOCAL_EXTERNAL_PACKAGE_DIR}/include - -P ${CMAKE_SOURCE_DIR}/cmake/patchheaderfiles.cmake - DEPENDEES install) - ENDIF() - - # Package our external project - - CREATE_PACKAGE_FILE(${PACKAGE_NAME} ${PACKAGE_VERSION} - ${REAL_LOCAL_EXTERNAL_PACKAGE_DIR} - TARGET_PLATFORM ${TARGET_PLATFORM} - PACKAGED_FILES . - SHA1_FILES ${SHA1_FILES} - TARGET ${PACKAGE_BUILD}) -ENDIF() - -# Make sure that Qt Charts and its CMake files can be found - -SET(QTCHARTS_DIR ${CMAKE_SOURCE_DIR}/src/3rdparty/QtCharts) - -SET(CMAKE_PREFIX_PATH - ${CMAKE_PREFIX_PATH} - ${QTCHARTS_DIR}/ext/cmake/Qt5Charts - PARENT_SCOPE -) - -SET(QTCHARTS_BINARIES_DIR ${QTCHARTS_DIR}/ext/bin PARENT_SCOPE) -SET(QTCHARTS_LIBRARIES_DIR ${QTCHARTS_DIR}/ext/lib PARENT_SCOPE) diff --git a/src/3rdparty/QtCharts/cmake/patch.c b/src/3rdparty/QtCharts/cmake/patch.c deleted file mode 100644 index d48afa663f..0000000000 --- a/src/3rdparty/QtCharts/cmake/patch.c +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - -Copyright (C) The University of Auckland - -OpenCOR is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -OpenCOR is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -*******************************************************************************/ - -//============================================================================== -// QtCharts CMake file patcher -//============================================================================== - -#include -#include - -//============================================================================== - -FILE *in; -FILE *out; -char outFileName[FILENAME_MAX]; - -//============================================================================== - -int cleanUp() -{ - if (in) - fclose(in); - - if (out) { - fclose(out); - - remove(outFileName); - } - - return 0; -} - -//============================================================================== - -int error(char *pErrorMessage) -{ - // Output the given error message and free/close a few things - - fprintf(stderr, "%s", pErrorMessage); - - cleanUp(); - - return 1; -} - -//============================================================================== - -int main(int pArgC, char *pArgV[]) -{ - #define LINE_MAX 1024 - - char line[LINE_MAX]; - - // Make sure that a file name has been provided - - if (pArgC != 2) { - printf("Usage: %s \n", pArgV[0]); - - return 1; - } - - // Open the file - - in = fopen(pArgV[1], "r"); - out = 0; - - if (!in) - return error("The file could not be opened.\n"); - - // Open a temporary file - - sprintf(outFileName, "%s.tmp", pArgV[1]); - - out = fopen(outFileName, "w"); - - if (!out) - return error("The temporary file could not be created.\n"); - - // Process each line of the file and output it to our temporary file - - while (fgets(line, LINE_MAX, in)) { - if (!strcmp(line, "get_filename_component(_qt5Charts_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/../../../\" ABSOLUTE)\n")) - fprintf(out, "set(_qt5Charts_install_prefix ${CMAKE_SOURCE_DIR}/src/3rdparty/QtCharts/ext)\n"); - else - fprintf(out, "%s", line); - } - - fclose(in); - fclose(out); - - in = out = 0; - - remove(pArgV[1]); - - if (rename(outFileName, pArgV[1]) == -1) - return error("The file could not be patched.\n"); - - // We are all done - - return 0; -}