summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/FindWrapSystemMd4c.cmake24
-rw-r--r--src/gui/CMakeLists.txt2
-rw-r--r--src/gui/configure.cmake3
-rw-r--r--src/gui/configure.json2
-rw-r--r--src/gui/text/qtextmarkdownimporter.cpp4
-rw-r--r--util/cmake/helper.py1
6 files changed, 33 insertions, 3 deletions
diff --git a/cmake/FindWrapSystemMd4c.cmake b/cmake/FindWrapSystemMd4c.cmake
new file mode 100644
index 0000000000..ea691a4590
--- /dev/null
+++ b/cmake/FindWrapSystemMd4c.cmake
@@ -0,0 +1,24 @@
+if(TARGET WrapSystemMd4c::WrapSystemMd4c)
+ set(WrapSystemMd4c_FOUND TRUE)
+ return()
+endif()
+
+find_package(md4c CONFIG)
+
+# md4c provides a md4c::md4c target but
+# older versions create a md4c target without
+# namespace. If we find the old variant create
+# a namespaced target out of the md4c target.
+if(TARGET md4c AND NOT TARGET md4c::md4c)
+ add_library(md4c::md4c INTERFACE IMPORTED)
+ target_link_libraries(md4c::md4c INTERFACE md4c)
+endif()
+
+if(TARGET md4c::md4c)
+ add_library(WrapSystemMd4c::WrapSystemMd4c INTERFACE IMPORTED)
+ target_link_libraries(WrapSystemMd4c::WrapSystemMd4c INTERFACE md4c::md4c)
+endif()
+
+if(TARGET WrapSystemMd4c::WrapSystemMd4c)
+ set(WrapSystemMd4c_FOUND TRUE)
+endif()
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
index 7eb901f778..5fe4d59d10 100644
--- a/src/gui/CMakeLists.txt
+++ b/src/gui/CMakeLists.txt
@@ -682,7 +682,7 @@ qt_internal_extend_target(Gui CONDITION QT_FEATURE_textmarkdownreader
qt_internal_extend_target(Gui CONDITION QT_FEATURE_system_textmarkdownreader AND QT_FEATURE_textmarkdownreader
LIBRARIES
- libmd4c
+ WrapSystemMd4c::WrapSystemMd4c
)
qt_internal_extend_target(Gui CONDITION QT_FEATURE_textmarkdownreader AND NOT QT_FEATURE_system_textmarkdownreader
diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake
index 49b4753870..20c5b9624b 100644
--- a/src/gui/configure.cmake
+++ b/src/gui/configure.cmake
@@ -41,6 +41,7 @@ qt_find_package(gbm PROVIDED_TARGETS gbm::gbm MODULE_NAME gui QMAKE_LIB gbm)
qt_find_package(WrapSystemHarfbuzz 2.6.0 PROVIDED_TARGETS WrapSystemHarfbuzz::WrapSystemHarfbuzz MODULE_NAME gui QMAKE_LIB harfbuzz)
qt_find_package(Libinput PROVIDED_TARGETS Libinput::Libinput MODULE_NAME gui QMAKE_LIB libinput)
qt_find_package(JPEG PROVIDED_TARGETS JPEG::JPEG MODULE_NAME gui QMAKE_LIB libjpeg)
+qt_find_package(WrapSystemMd4c PROVIDED_TARGETS WrapSystemMd4c::WrapSystemMd4c MODULE_NAME gui QMAKE_LIB libmd4c)
qt_find_package(WrapSystemPNG PROVIDED_TARGETS WrapSystemPNG::WrapSystemPNG MODULE_NAME gui QMAKE_LIB libpng)
if(QT_FEATURE_system_zlib)
qt_add_qmake_lib_dependency(libpng zlib)
@@ -945,7 +946,7 @@ qt_feature("textmarkdownreader" PUBLIC
qt_feature("system-textmarkdownreader" PUBLIC
SECTION "Kernel"
LABEL " Using system libmd4c"
- CONDITION libs.libmd4c OR FIXME
+ CONDITION QT_FEATURE_textmarkdownreader AND WrapSystemMd4c_FOUND
ENABLE INPUT_libmd4c STREQUAL 'system'
DISABLE INPUT_libmd4c STREQUAL 'qt'
)
diff --git a/src/gui/configure.json b/src/gui/configure.json
index 47398c9a4e..8e3d647df6 100644
--- a/src/gui/configure.json
+++ b/src/gui/configure.json
@@ -1452,7 +1452,7 @@
"disable": "input.libmd4c == 'qt'",
"enable": "input.libmd4c == 'system'",
"section": "Kernel",
- "condition": "libs.libmd4c",
+ "condition": "features.textmarkdownreader && libs.libmd4c",
"output": [ "publicFeature" ]
},
"textmarkdownwriter": {
diff --git a/src/gui/text/qtextmarkdownimporter.cpp b/src/gui/text/qtextmarkdownimporter.cpp
index 1e18f31c30..75b5a324c8 100644
--- a/src/gui/text/qtextmarkdownimporter.cpp
+++ b/src/gui/text/qtextmarkdownimporter.cpp
@@ -48,7 +48,11 @@
#include <QTextDocumentFragment>
#include <QTextList>
#include <QTextTable>
+#if QT_CONFIG(system_textmarkdownreader)
+#include <md4c.h>
+#else
#include "../../3rdparty/md4c/md4c.h"
+#endif
QT_BEGIN_NAMESPACE
diff --git a/util/cmake/helper.py b/util/cmake/helper.py
index f22134c5ee..f385fca60c 100644
--- a/util/cmake/helper.py
+++ b/util/cmake/helper.py
@@ -457,6 +457,7 @@ _library_map = [
LibraryMapping("librt", "WrapRt", "WrapRt::WrapRt"),
LibraryMapping("libudev", "Libudev", "PkgConfig::Libudev"),
LibraryMapping("lttng-ust", "LTTngUST", "LTTng::UST", resultVariable="LTTNGUST"),
+ LibraryMapping("libmd4c", "WrapMd4c", "WrapMd4c::WrapMd4c", is_bundled_with_qt=True),
LibraryMapping("mtdev", "Mtdev", "PkgConfig::Mtdev"),
LibraryMapping("mysql", "MySQL", "MySQL::MySQL"),
LibraryMapping("odbc", "ODBC", "ODBC::ODBC"),