From de479000a7801ab2395228d35e0c603c978b84eb Mon Sep 17 00:00:00 2001 From: jkriege2 Date: Sun, 24 Jul 2022 16:23:21 +0200 Subject: [PATCH] further doxygen improvements --- doc/dox/buildinstructions.dox | 249 +--------------------------- doc/dox/buildinstructions_cmake.dox | 138 +++++++++++++++ doc/dox/buildinstructions_qmake.dox | 128 ++++++++++++++ doc/dox/jkqtmathtext.dox | 6 + doc/dox/whatsnew.dox | 4 +- 5 files changed, 280 insertions(+), 245 deletions(-) create mode 100644 doc/dox/buildinstructions_cmake.dox create mode 100644 doc/dox/buildinstructions_qmake.dox diff --git a/doc/dox/buildinstructions.dox b/doc/dox/buildinstructions.dox index af996692ec..679a30c81e 100644 --- a/doc/dox/buildinstructions.dox +++ b/doc/dox/buildinstructions.dox @@ -4,251 +4,14 @@ This page explains how to build JKQTPlotter and to use the results in your own Projects. -\tableofcontents - -\section page_buildinstructions_CMAKE Build using CMake - -\subsection page_buildinstructions_CMAKE_RUN Running a Build with CMake - -The preferred way to build JKQTPlotter is using CMake. You can find a detailed explanation of CMake at https://cliutils.gitlab.io/modern-cmake/. The CMake-build is defined in `CMakeLists.txt` files, found in many of the directories of the code repository. Especially in the root directory and the two subdirectories \code ./lib/ \endcode and \code ./examples/ \endcode . - -You can build JKQTPlotter (and also the examples) by either opening the file CMakeLists.txt in QTCreator (which has CMake integration), or by calling \c CMake by hand. How to do this depends on your local system und build environment. - - -\subsubsection page_buildinstructions_CMAKE_MAKEFILE Building with MinGW/GNU/... Makefiles - -You can use (MinGW) Makefiles by calling: - -\code{.sh} - $ mkdir build - $ cd build - $ cmake .. -G "MinGW Makefiles" "-DCMAKE_PREFIX_PATH=" - $ cmake --build . --config "Debug" - $ cmake --build . --config "Debug" --target install -\endcode - -\subsubsection page_buildinstructions_CMAKE_VSTUDIO Building with Visual Studio - -For Visual Studio it could look like this: -\code{.sh} - $ mkdir build - $ cd build - $ cmake .. -G "Visual Studio 15 2017 Win64" "-DCMAKE_PREFIX_PATH=" -\endcode -Where \code \endcode could be e.g. \code C:/development/Qt5/5.12.0/msvc2017_64 \endcode . This call results in a Visual Studio solution \c build/JKQTPlotter.sln that you can load and compile from the Visual Studio IDE. Alternatively you can also build the solution directly calling: -\code{.sh} - $ cmake --build . --config "Debug" -\endcode -Afterwards you can install the library by -\code{.sh} - $ cmake --build . --config "Debug" --target install -\endcode - -\subsection page_buildinstructions_CMAKE_CONFIG Configuring a Build with CMake - -The CMake build system offers several configuration variables that you may set/change to modify the outcome of the build: - - \c CMAKE_PREFIX_PATH : add the path to your Qt installatrion to this variable, so the \c find_package(Qt5...) commands find the libraries you want to use - - \c JKQtPlotter_BUILD_SHARED_LIBS : Build as shared library (default: \c ON ) - - \c JKQtPlotter_BUILD_STATIC_LIBS : Build as static library (default: \c ON ) - - \c JKQtPlotter_BUILD_INCLUDE_XITS_FONTS : Include XITS fonts as resources in library (default: \c ON ) - - \c JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT : switches off print-support (when set to \c ON ), even if the current platform supports it (default: \c OFF ) - - \c JKQtPlotter_BUILD_DECORATE_LIBNAMES_WITH_BUILDTYPE : If set, the build-type is appended to the library name (default: \c ON ) - - \c JKQtPlotter_BUILD_WITH_PRECOMPILED_HEADERS : If set, the build uses precompiled headers to speed up (a bit) (default: \c ON ) - - \c JKQtPlotter_BUILD_EXAMPLES : Build examples (default: \c ON ) - - \c CMAKE_INSTALL_PREFIX : Install directory for the library +The build instructions are split by the build-system you use: + - \subpage page_buildinstructions_CMAKE + - \subpage page_buildinstructions_QMAKE . - - - -\subsection page_buildinstructions_CMAKE_USAGE Using a built, generated with CMake - -After building and installing JKQTPlotter you have all files that you need inside the instal directory: - - \code /include \endcode contains all required header files - - \code /bin \endcode contains the shared libraries - - \code /lib \endcode contains the link libraries - - \code /lib/cmake \endcode contains files necessary for CMake's \c find_package() to work -. - -You can find an example project that uses a complete cmake-build here: \ref JKQTCMakeLinkExample (online: https://github.com/jkriege2/JKQtPlotter/blob/master/examples/cmake_link_example). - -Here is the \c CMakeLists.txt from that directory: - -\code - # set minimum required CMake-Version - cmake_minimum_required(VERSION 3.10) - - # set Project name - set(EXAMPLE_NAME simpletest) - set(EXENAME jkqtptest_${EXAMPLE_NAME}) - project(${EXAMPLE_NAME} LANGUAGES CXX) - - # some basic configurations - set(CMAKE_AUTOMOC ON) - set(CMAKE_INCLUDE_CURRENT_DIR ON) - set(CMAKE_CXX_STANDARD 11) - #set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - - # Configure project for usage of Qt5 - find_package(Qt5 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGl REQUIRED) - # Configure project for usage of Qt6 - #find_package(Qt6 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGl OpenGLWidgets REQUIRED) - - # include JKQTPlotter - find_package(JKQTCommonLib REQUIRED) - find_package(JKQTMathTextLib REQUIRED) - find_package(JKQTPlotterLib REQUIRED) - - # For Visual Studio, we need to set some additional compiler options - if(MSVC) - add_compile_options(/EHsc) - # To enable M_PI, M_E,... - add_definitions(/D_USE_MATH_DEFINES) - # To Prevent Errors with min() and max() - add_definitions(/DNOMINMAX) - # To fix error: C2338: va_start argument must not - # have reference type and must not be parenthesized - add_definitions(/D_CRT_NO_VA_START_VALIDATION) - endif() - - # add the example executable - add_executable(${EXENAME} WIN32 simpletest.cpp) - # ... link against Qt5 and JKQTPlotterLib - # (you could use JKQTPlotterSharedLib if you don't want to link againast the - # static version, but against the shared/DLL version). - target_link_libraries(${EXENAME} Qt5::Core Qt5::Widgets Qt5::Gui Qt5::PrintSupport Qt5::Svg Qt5::Xml JKQTPlotterLib) - - # Installation - install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -\endcode - - - -To build this example, you first need to make a subdirectory `build` and then call CMake form that subdirectory: -\code.sh - $ mkdir build - $ cd build - $ cmake .. -G "" "-DCMAKE_PREFIX_PATH= -DCMAKE_MODULE_PATH=" -\endcode -The you can use the generated makefiles (e.g. load them in an editor, or build them jsing \c make ). In the last line above, you need to specify two directories: - - \code \endcode points to you Qt installation - - \code \endcode points to the directory containing the \c XYZ.cmake -files from the JKQTPlotter build. Typically this is \code /lib/cmake \endcode , where \code \endcode is the directory into which you installed JKQTPlotter. -. - -\section page_buildinstructions_QMAKE Build using QMake - -\subsection page_buildinstructions_QMAKEINCLUDE QMake Include Project - -If you want to simply include the JKQTPlotter Source code into your projects, without build a shared or static library and linking against it, you can use one of these QMake-Include files: - - lib/jkqtplotter.pri includes the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) - - lib/jkqtmathtext.pri includes only JKQTMathText - - lib/jkqtfastplotter.pri includes only JKQTFastPlotter -. - -In your QMake-projects it is then sufficient to add a line like: -\code{.qmake} - include(/lib/jkqtplotter.pri) -\endcode - -\subsection page_buildinstructions_QMAKESTATIC QMake Static Library - -There are several `.PRO`-files, that can be used to build the full library, or a limited subsets of it as static link library: - - qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as static link library - - qmake/staticlib/jkqtmathtextlib/jkqtmathtextlib.pro builds only JKQTMathText as static link library - - qmake/staticlib/jkqtfastplotterlib/jkqtfastplotterlib.pro builds only JKQTFastPlotter as static link library -. -They will produce a static link library that you can include into your projects, e.g. with the following QMake-snippet: - -\code{.qmake} -# include JKQTPlotter library -DEPENDPATH += \ - /lib \ - /qmake/staticlib/jkqtplotterlib -INCLUDEPATH += /lib -CONFIG (debug, debug|release) { - DEPENDPATH += /qmake/staticlib/jkqtplotterlib/debug - LIBS += -L/qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug -} else { - DEPENDPATH += /qmake/staticlib/jkqtplotterlib/release - LIBS += -L/qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib -} -\endcode - -This snippet assumes that you built the libraries with the provided \code .PRO \endcode -files. You can also add a second \code .PRO \endcode -file to your projects, which integrates both as subdirs. Such files are used for all examples in this project. Here is an example: -\code{.qmake} -TEMPLATE = subdirs - -# the (static library version) of JKQTPlotter -jkqtplotterlib_static.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro - -# your project file, with declared dependencies on jkqtplotterlib_static -test_styling.file=$$PWD/test_styling.pro -test_styling.depends = jkqtplotterlib_static - -# add the two entries to SUBDIRS -SUBDIRS += jkqtplotterlib_static test_styling -\endcode - - - -\subsection page_buildinstructions_QMAKEDYNAMIC QMake Dynamic Library - -There are several `.PRO`-files, that can be used to build the full library, or a limited subsets of it as shred library: - - qmake/sharedlib/jkqtplotterlib/jkqtplotterlib.pro builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as shared library - - qmake/sharedlib/jkqtmathtextlib/jkqtmathtextlib.pro builds only JKQTMathText as shared library - - qmake/sharedlib/jkqtfastplotterlib/jkqtfastplotterlib.pro builds only JKQTFastPlotter as shared library -. -They will produce a dynamic link library that you can include into your projects, e.g. with the following QMake-snippet: - -\code{.qmake} -# include JKQTPlotter library -DEPENDPATH += \ - /lib \ - /qmake/sharedlib/jkqtplotterlib -INCLUDEPATH += /lib -DEFINES += JKQTCOMMON_LIB_IN_DLL JKQTFASTPLOTTER_LIB_IN_DLL JKQTMATHTEXT_LIB_IN_DLL JKQTPLOTTER_LIB_IN_DLL -CONFIG (debug, debug|release) { - # ensure that DLLs are copied to the output directory - install_jkqtplotter_dll.files = /qmake/sharedlib/jkqtplotterlib/debug/jkqtplotterlib_debug.* - install_jkqtplotter_dll.path = $$OUT_PWD - INSTALLS += install_jkqtplotter_dll - # link agains DLLs - DEPENDPATH += /qmake/sharedlib/jkqtplotterlib/debug - LIBS += -L/qmake/sharedlib/jkqtplotterlib/debug -ljkqtplotterlib_debug -} else { - # ensure that DLLs are copied to the output directory - install_jkqtplotter_dll.files = /qmake/sharedlib/jkqtplotterlib/release/jkqtplotterlib.* - install_jkqtplotter_dll.path = $$OUT_PWD - INSTALLS += install_jkqtplotter_dll - # link agains DLLs - DEPENDPATH += /qmake/sharedlib/jkqtplotterlib/release - LIBS += -L/qmake/sharedlib/jkqtplotterlib/release -ljkqtplotterlib -} -\endcode - -This snippet assumes that you built the libraries with the provided `.PRO`-files. You can also add a second `.pro`-file to your projects, which integrates both as subdirs. Such files are used for all examples in this project. Here is an example: -\code{.qmake} -TEMPLATE = subdirs - -# the (shared library version) of JKQTPlotter -jkqtplotterlib_shared.file = ../../qmake/sharedlib/jkqtplotterlib.pro - -# your project file, with declared dependencies on jkqtplotterlib_shared -test_styling.file=$$PWD/test_styling.pro -test_styling.depends = jkqtplotterlib_shared - -# add the two entries to SUBDIRS -SUBDIRS += jkqtplotterlib_shared test_styling -\endcode - -\note You will have to run a deployment step `make install` before running your executable, so the shared libararies are actually copied to the output directory (see `INSTALLS + ...` above). - - - -\subsection page_buildinstructions_QMAKEQTCREATOR QMake in QTCreator - -You can load the file \c JKQtPlotterBuildAllExamples.pro in te base directory of the project directly in QtCreator and use it to build the library and the examples. - +\note We recommend using CMake, although an older QMake system is in place too. +Note however that the QMake-buildsystem is deprecated and will not obatin +the same love and atttention as the CMake system. diff --git a/doc/dox/buildinstructions_cmake.dox b/doc/dox/buildinstructions_cmake.dox new file mode 100644 index 0000000000..f6b6dffac8 --- /dev/null +++ b/doc/dox/buildinstructions_cmake.dox @@ -0,0 +1,138 @@ +/*! + + +\page page_buildinstructions_CMAKE Build using CMake + +\tableofcontents + +\section page_buildinstructions_CMAKE_RUN Running a Build with CMake + +The preferred way to build JKQTPlotter is using CMake. You can find a detailed explanation of CMake at https://cliutils.gitlab.io/modern-cmake/. The CMake-build is defined in `CMakeLists.txt` files, found in many of the directories of the code repository. Especially in the root directory and the two subdirectories ./lib/ and ./examples/ . + +You can build JKQTPlotter (and also the examples) by either opening the file CMakeLists.txt in QTCreator (which has CMake integration), or by calling \c CMake by hand. How to do this depends on your local system und build environment. + + +\subsection page_buildinstructions_CMAKE_MAKEFILE Building with MinGW/GNU/... Makefiles + +You can use (MinGW) Makefiles by calling: + +\code{.sh} + $ mkdir build + $ cd build + $ cmake .. -G "MinGW Makefiles" "-DCMAKE_PREFIX_PATH=" + $ cmake --build . --config "Debug" + $ cmake --build . --config "Debug" --target install +\endcode + +\subsection page_buildinstructions_CMAKE_VSTUDIO Building with Visual Studio + +For Visual Studio it could look like this: + +\code{.sh} + $ mkdir build + $ cd build + $ cmake .. -G "Visual Studio 15 2017 Win64" "-DCMAKE_PREFIX_PATH=" +\endcode + +Where \c \ could be e.g. \c C:/development/Qt5/5.12.0/msvc2017_64 . This call results in a Visual Studio solution \c build/JKQTPlotter.sln that you can load and compile from the Visual Studio IDE. Alternatively you can also build the solution directly calling: +\code{.sh} + $ cmake --build . --config "Debug" +\endcode +Afterwards you can install the library by +\code{.sh} + $ cmake --build . --config "Debug" --target install +\endcode + +\section page_buildinstructions_CMAKE_CONFIG Configuring a Build with CMake + +The CMake build system offers several configuration variables that you may set/change to modify the outcome of the build: + - \c CMAKE_PREFIX_PATH : add the path to your Qt installatrion to this variable, so the \c find_package(Qt5...) commands find the libraries you want to use + - \c JKQtPlotter_BUILD_SHARED_LIBS : Build as shared library (default: \c ON ) + - \c JKQtPlotter_BUILD_STATIC_LIBS : Build as static library (default: \c ON ) + - \c JKQtPlotter_BUILD_INCLUDE_XITS_FONTS : Include XITS fonts as resources in library (default: \c ON ) + - \c JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT : switches off print-support (when set to \c ON ), even if the current platform supports it (default: \c OFF ) + - \c JKQtPlotter_BUILD_DECORATE_LIBNAMES_WITH_BUILDTYPE : If set, the build-type is appended to the library name (default: \c ON ) + - \c JKQtPlotter_BUILD_WITH_PRECOMPILED_HEADERS : If set, the build uses precompiled headers to speed up (a bit) (default: \c ON ) + - \c JKQtPlotter_BUILD_EXAMPLES : Build examples (default: \c ON ) + - \c CMAKE_INSTALL_PREFIX : Install directory for the library +. + + + + +\section page_buildinstructions_CMAKE_USAGE Using a built, generated with CMake + +After building and installing JKQTPlotter you have all files that you need inside the instal directory: + - \c \/include contains all required header files + - \c \/bin contains the shared libraries + - \c \/lib contains the link libraries + - \c \/lib/cmake contains files necessary for CMake's \c find_package() to work +. + +You can find an example project that uses a complete cmake-build here: \ref JKQTCMakeLinkExample (online: https://github.com/jkriege2/JKQtPlotter/blob/master/examples/cmake_link_example). + +Here is the \c CMakeLists.txt from that directory: + +\code{.cmake} + # set minimum required CMake-Version + cmake_minimum_required(VERSION 3.10) + + # set Project name + set(EXAMPLE_NAME simpletest) + set(EXENAME jkqtptest_${EXAMPLE_NAME}) + project(${EXAMPLE_NAME} LANGUAGES CXX) + + # some basic configurations + set(CMAKE_AUTOMOC ON) + set(CMAKE_INCLUDE_CURRENT_DIR ON) + set(CMAKE_CXX_STANDARD 11) + #set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + # Configure project for usage of Qt5 + find_package(Qt5 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGl REQUIRED) + # Configure project for usage of Qt6 + #find_package(Qt6 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGl OpenGLWidgets REQUIRED) + + # include JKQTPlotter + find_package(JKQTCommonLib REQUIRED) + find_package(JKQTMathTextLib REQUIRED) + find_package(JKQTPlotterLib REQUIRED) + + # For Visual Studio, we need to set some additional compiler options + if(MSVC) + add_compile_options(/EHsc) + # To enable M_PI, M_E,... + add_definitions(/D_USE_MATH_DEFINES) + # To Prevent Errors with min() and max() + add_definitions(/DNOMINMAX) + # To fix error: C2338: va_start argument must not + # have reference type and must not be parenthesized + add_definitions(/D_CRT_NO_VA_START_VALIDATION) + endif() + + # add the example executable + add_executable(${EXENAME} WIN32 simpletest.cpp) + # ... link against Qt5 and JKQTPlotterLib + # (you could use JKQTPlotterSharedLib if you don't want to link againast the + # static version, but against the shared/DLL version). + target_link_libraries(${EXENAME} Qt5::Core Qt5::Widgets Qt5::Gui Qt5::PrintSupport Qt5::Svg Qt5::Xml JKQTPlotterLib) + + # Installation + install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +\endcode + + + +To build this example, you first need to make a subdirectory `build` and then call CMake form that subdirectory: +\code{.sh} + $ mkdir build + $ cd build + $ cmake .. -G "" "-DCMAKE_PREFIX_PATH= -DCMAKE_MODULE_PATH=" +\endcode +The you can use the generated makefiles (e.g. load them in an editor, or build them jsing \c make ). In the last line above, you need to specify two directories: + - \c \ points to you Qt installation + - \c \ points to the directory containing the \c XYZ.cmake -files from the JKQTPlotter build. Typically this is \c \/lib/cmake , where \c \ is the directory into which you installed JKQTPlotter. +. + + +*/ \ No newline at end of file diff --git a/doc/dox/buildinstructions_qmake.dox b/doc/dox/buildinstructions_qmake.dox new file mode 100644 index 0000000000..9708dac22d --- /dev/null +++ b/doc/dox/buildinstructions_qmake.dox @@ -0,0 +1,128 @@ +/*! + + +\page page_buildinstructions_QMAKE Build using QMake + +\warning The QMake build system is deprecated and will + not get the same love and atttention as the recommended CMake system, see \ref page_buildinstructions_CMAKE ! + +\tableofcontents + +\section page_buildinstructions_QMAKEINCLUDE QMake Include Project + +If you want to simply include the JKQTPlotter Source code into your projects, without build a shared or static library and linking against it, you can use one of these QMake-Include files: + - lib/jkqtplotter.pri includes the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) + - lib/jkqtmathtext.pri includes only JKQTMathText + - lib/jkqtfastplotter.pri includes only JKQTFastPlotter +. + +In your QMake-projects it is then sufficient to add a line like: +\code{.qmake} + include(/lib/jkqtplotter.pri) +\endcode + +\section page_buildinstructions_QMAKESTATIC QMake Static Library + +There are several `.PRO`-files, that can be used to build the full library, or a limited subsets of it as static link library: + - qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as static link library + - qmake/staticlib/jkqtmathtextlib/jkqtmathtextlib.pro builds only JKQTMathText as static link library + - qmake/staticlib/jkqtfastplotterlib/jkqtfastplotterlib.pro builds only JKQTFastPlotter as static link library +. +They will produce a static link library that you can include into your projects, e.g. with the following QMake-snippet: + +\code{.qmake} +# include JKQTPlotter library +DEPENDPATH += \ + /lib \ + /qmake/staticlib/jkqtplotterlib +INCLUDEPATH += /lib +CONFIG (debug, debug|release) { + DEPENDPATH += /qmake/staticlib/jkqtplotterlib/debug + LIBS += -L/qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug +} else { + DEPENDPATH += /qmake/staticlib/jkqtplotterlib/release + LIBS += -L/qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib +} +\endcode + +This snippet assumes that you built the libraries with the provided .PRO-files. You can also add a second .PRO -file to your projects, which integrates both as subdirs. Such files are used for all examples in this project. Here is an example: + +\code{.qmake} +TEMPLATE = subdirs + +# the (static library version) of JKQTPlotter +jkqtplotterlib_static.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro + +# your project file, with declared dependencies on jkqtplotterlib_static +test_styling.file=$$PWD/test_styling.pro +test_styling.depends = jkqtplotterlib_static + +# add the two entries to SUBDIRS +SUBDIRS += jkqtplotterlib_static test_styling + +\endcode + + + +\section page_buildinstructions_QMAKEDYNAMIC QMake Dynamic Library + +There are several `.PRO`-files, that can be used to build the full library, or a limited subsets of it as shred library: + - qmake/sharedlib/jkqtplotterlib/jkqtplotterlib.pro builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as shared library + - qmake/sharedlib/jkqtmathtextlib/jkqtmathtextlib.pro builds only JKQTMathText as shared library + - qmake/sharedlib/jkqtfastplotterlib/jkqtfastplotterlib.pro builds only JKQTFastPlotter as shared library +. +They will produce a dynamic link library that you can include into your projects, e.g. with the following QMake-snippet: + +\code{.qmake} +# include JKQTPlotter library +DEPENDPATH += \ + /lib \ + /qmake/sharedlib/jkqtplotterlib +INCLUDEPATH += /lib +DEFINES += JKQTCOMMON_LIB_IN_DLL JKQTFASTPLOTTER_LIB_IN_DLL JKQTMATHTEXT_LIB_IN_DLL JKQTPLOTTER_LIB_IN_DLL +CONFIG (debug, debug|release) { + # ensure that DLLs are copied to the output directory + install_jkqtplotter_dll.files = /qmake/sharedlib/jkqtplotterlib/debug/jkqtplotterlib_debug.* + install_jkqtplotter_dll.path = $$OUT_PWD + INSTALLS += install_jkqtplotter_dll + # link agains DLLs + DEPENDPATH += /qmake/sharedlib/jkqtplotterlib/debug + LIBS += -L/qmake/sharedlib/jkqtplotterlib/debug -ljkqtplotterlib_debug +} else { + # ensure that DLLs are copied to the output directory + install_jkqtplotter_dll.files = /qmake/sharedlib/jkqtplotterlib/release/jkqtplotterlib.* + install_jkqtplotter_dll.path = $$OUT_PWD + INSTALLS += install_jkqtplotter_dll + # link agains DLLs + DEPENDPATH += /qmake/sharedlib/jkqtplotterlib/release + LIBS += -L/qmake/sharedlib/jkqtplotterlib/release -ljkqtplotterlib +} +\endcode + +This snippet assumes that you built the libraries with the provided `.PRO`-files. You can also add a second `.pro`-file to your projects, which integrates both as subdirs. Such files are used for all examples in this project. Here is an example: +\code{.qmake} +TEMPLATE = subdirs + +# the (shared library version) of JKQTPlotter +jkqtplotterlib_shared.file = ../../qmake/sharedlib/jkqtplotterlib.pro + +# your project file, with declared dependencies on jkqtplotterlib_shared +test_styling.file=$$PWD/test_styling.pro +test_styling.depends = jkqtplotterlib_shared + +# add the two entries to SUBDIRS +SUBDIRS += jkqtplotterlib_shared test_styling +\endcode + +\note You will have to run a deployment step `make install` before running your executable, so the shared libararies are actually copied to the output directory (see `INSTALLS + ...` above). + + + +\section page_buildinstructions_QMAKEQTCREATOR QMake in QTCreator + +You can load the file \c JKQtPlotterBuildAllExamples.pro in te base directory of the project directly in QtCreator and use it to build the library and the examples. + + + + +*/ \ No newline at end of file diff --git a/doc/dox/jkqtmathtext.dox b/doc/dox/jkqtmathtext.dox index 11f03504fc..374baa3070 100644 --- a/doc/dox/jkqtmathtext.dox +++ b/doc/dox/jkqtmathtext.dox @@ -10,7 +10,13 @@ Examples for the usage of this class can be found here: - \ref JKQTMathTextSimpleExample + - \ref JKQTMathTextTestApp . + + Example output: + \image html jkqtmathtext/jkqtmathtext_xits_all.png + \image html jkqtmathtext/jkqtmathtext_sqrt.png + \image html jkqtmathtext/jkqtmathtext_OldEnglish.png \defgroup jkqtmathtext_render Main (Render) Class (JKQTMathText) diff --git a/doc/dox/whatsnew.dox b/doc/dox/whatsnew.dox index f23ddec218..89d8fd5d6e 100644 --- a/doc/dox/whatsnew.dox +++ b/doc/dox/whatsnew.dox @@ -92,7 +92,7 @@ Changes, compared to \ref page_whatsnew_V2019_11 "v2019.11" include:
  • fixed issue #37: CMake installs things into $PREFIX/doc/*.txt , thanks to user:certik
  • fixed issue #45: Build error on mac jkqtfastplotter.cpp:342:28: Variable has incomplete type 'QPainterPath', thanks to user:abdedixit
  • merged PR #47: Some minor build fixes, thanks to user:patstew
  • -
  • fixed issue #48: Cannot #include QPrintPreviewWidget, thanks to user:schlenger
  • +
  • fixed issue #48: Cannot \#include QPrintPreviewWidget, thanks to user:schlenger
  • fixed issue #49: Incorrect tag in style .ini-files, thanks to user:smistad
  • fixed issue #50: Double-Click Zoom Issue, thanks to user:Delfinos
  • fixed issue #52: 'runtime_error': is not a member of 'std', thanks to user:gomgomi
  • @@ -154,7 +154,7 @@ Changes, compared to \ref page_whatsnew_V2018_08 "v2018.08" include:
  • update: massively improved (doxygen-generated) Online-Documentation (http://jkriege2.github.io/JKQtPlotter/index.html) (automatically generated after each commit using ravis CI)
  • update: refactoring of the library's directory structure
  • update: refactoring/renaming of API, including the function anming scheme and class names
  • -
  • changed: using static const variables instead of #define for fixed default values (e.g. JKQTPImageTools::LUTSIZE, JKQTPImageTools::PALETTE_ICON_WIDTH, JKQTPlotterDrawinTools::ABS_MIN_LINEWIDTH, JKQTMathText::ABS_MIN_LINEWIDTH ...)
  • +
  • changed: using static const variables instead of \#define for fixed default values (e.g. JKQTPImageTools::LUTSIZE, JKQTPImageTools::PALETTE_ICON_WIDTH, JKQTPlotterDrawinTools::ABS_MIN_LINEWIDTH, JKQTMathText::ABS_MIN_LINEWIDTH ...)
  • Updates to JKQTPlotter:
    • new: added JKQTPSingleColumnSymbolsGraph for single-column data, e.g. drawn as (random) scatter or bee-swarm or rug plots