summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-09-18 11:50:08 +0200
committerEike Ziller <eike.ziller@qt.io>2019-09-20 06:25:04 +0000
commit194f4fca4cba5accbbbcdd22d098079cdf8b2827 (patch)
tree8ceeaef326e611b86ff55ff33acb72349876c2d3
parent8354d426de35a06e835ceaca63f768adf39d4d1b (diff)
downloadqt-creator-194f4fca4cba5accbbbcdd22d098079cdf8b2827.tar.gz
Help: Add litehtml as submodule and optionally use that
Change-Id: I528dd661eb0db92e6252ddba7fa38ab58496611a Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--.gitmodules3
-rw-r--r--src/plugins/help/CMakeLists.txt8
-rw-r--r--src/plugins/help/help.pro2
-rw-r--r--src/plugins/help/qlitehtml/CMakeLists.txt14
m---------src/plugins/help/qlitehtml/litehtml0
-rw-r--r--src/plugins/help/qlitehtml/qlitehtml.pri46
6 files changed, 65 insertions, 8 deletions
diff --git a/.gitmodules b/.gitmodules
index 6fdaf4283f..d6d89e9ce4 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -6,3 +6,6 @@
path = src/tools/perfparser
url = ../perfparser.git
ignore = dirty
+[submodule "litehtml"]
+ path = src/plugins/help/qlitehtml/litehtml
+ url = https://github.com/litehtml/litehtml.git
diff --git a/src/plugins/help/CMakeLists.txt b/src/plugins/help/CMakeLists.txt
index 8e25a3a31c..73122b15dc 100644
--- a/src/plugins/help/CMakeLists.txt
+++ b/src/plugins/help/CMakeLists.txt
@@ -49,9 +49,13 @@ extend_qtc_plugin(Help
webenginehelpviewer.h
)
-find_package(litehtml QUIET)
-if (TARGET litehtml)
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/qlitehtml/litehtml/CMakeLists.txt)
add_subdirectory(qlitehtml)
+else()
+ find_package(litehtml QUIET)
+ if (TARGET litehtml)
+ add_subdirectory(qlitehtml)
+ endif()
endif()
extend_qtc_plugin(Help
diff --git a/src/plugins/help/help.pro b/src/plugins/help/help.pro
index c4dd38b116..05f8da1552 100644
--- a/src/plugins/help/help.pro
+++ b/src/plugins/help/help.pro
@@ -76,7 +76,7 @@ osx {
}
}
-!isEmpty(LITEHTML_INSTALL_DIR) {
+exists($$PWD/qlitehtml/litehtml/CMakeLists.txt)|!isEmpty(LITEHTML_INSTALL_DIR) {
include(qlitehtml/qlitehtml.pri)
HEADERS += litehtmlhelpviewer.h
SOURCES += litehtmlhelpviewer.cpp
diff --git a/src/plugins/help/qlitehtml/CMakeLists.txt b/src/plugins/help/qlitehtml/CMakeLists.txt
index d6174c56df..43c20ca0b9 100644
--- a/src/plugins/help/qlitehtml/CMakeLists.txt
+++ b/src/plugins/help/qlitehtml/CMakeLists.txt
@@ -7,7 +7,19 @@ set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_CXX_STANDARD 14)
-find_package(litehtml REQUIRED)
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/litehtml/CMakeLists.txt)
+ set(ORIG_CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE})
+ if (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
+ set(CMAKE_BUILD_TYPE "RelWithDebInfo")
+ else()
+ set(CMAKE_BUILD_TYPE "Release")
+ endif()
+ add_subdirectory(litehtml)
+ set(CMAKE_BUILD_TYPE ${ORIG_CMAKE_BUILD_TYPE})
+else()
+ find_package(litehtml REQUIRED)
+endif()
+
find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_library(qlitehtml STATIC
diff --git a/src/plugins/help/qlitehtml/litehtml b/src/plugins/help/qlitehtml/litehtml
new file mode 160000
+Subproject 2979ffbf45a22e39d16f0ef125532509824b135
diff --git a/src/plugins/help/qlitehtml/qlitehtml.pri b/src/plugins/help/qlitehtml/qlitehtml.pri
index 4520512b10..95153af491 100644
--- a/src/plugins/help/qlitehtml/qlitehtml.pri
+++ b/src/plugins/help/qlitehtml/qlitehtml.pri
@@ -1,3 +1,41 @@
+exists($$PWD/litehtml/CMakeLists.txt) {
+ !build_pass|win32 {
+ LITEHTML_BUILD_PATH = "$${OUT_PWD}/litehtml/build"
+ LITEHTML_SOURCE_PATH = "$${PWD}/litehtml"
+ LITEHTML_INSTALL_PATH = "$${OUT_PWD}/litehtml/install"
+
+ BUILD_TYPE = RelWithDebInfo
+ CONFIG(release, debug|release): BUILD_TYPE = Release
+
+ # Create build directory
+ system("$$sprintf($$QMAKE_MKDIR_CMD, $$shell_path($${LITEHTML_BUILD_PATH}))")
+
+ macos: CMAKE_DEPLOYMENT_TARGET = -DCMAKE_OSX_DEPLOYMENT_TARGET=$${QMAKE_MACOSX_DEPLOYMENT_TARGET}
+ LITEHTML_CMAKE_CMD = \
+ "$$QMAKE_CD $$system_quote($$shell_path($${LITEHTML_BUILD_PATH})) && \
+ cmake -DCMAKE_BUILD_TYPE=$$BUILD_TYPE \
+ -DCMAKE_INSTALL_PREFIX=$$system_quote($$shell_path($${LITEHTML_INSTALL_PATH})) \
+ $$CMAKE_DEPLOYMENT_TARGET \
+ $$system_quote($$shell_path($${LITEHTML_SOURCE_PATH}))"
+ message("$${LITEHTML_CMAKE_CMD}")
+ system("$${LITEHTML_CMAKE_CMD}")
+
+ buildlitehtml.commands = "cmake --build $$system_quote($$shell_path($${LITEHTML_BUILD_PATH})) --target install"
+ win32: buildlitehtml.target = $$LITEHTML_INSTALL_PATH/lib/litehtml.lib
+ else:unix: buildlitehtml.target = $$LITEHTML_INSTALL_PATH/lib/liblitehtml.a
+ dummygumbo.depends = buildlitehtml
+ win32: dummygumbo.target = $$LITEHTML_INSTALL_PATH/lib/gumbo.lib
+ else:unix: dummygumbo.target = $$LITEHTML_INSTALL_PATH/lib/libgumbo.a
+ QMAKE_EXTRA_TARGETS += buildlitehtml dummygumbo
+ PRE_TARGETDEPS += $$buildlitehtml.target $$dummygumo.target
+ }
+ LITEHTML_INCLUDE_DIRS = $$LITEHTML_SOURCE_PATH/include $$LITEHTML_SOURCE_PATH/src
+ LITEHTML_LIB_DIR = $$LITEHTML_INSTALL_PATH/lib
+} else {
+ LITEHTML_INCLUDE_DIRS = $$LITEHTML_INSTALL_DIR/include $$LITEHTML_INSTALL_DIR/include/litehtml
+ LITEHTML_LIB_DIR = $$LITEHTML_INSTALL_DIR/lib
+}
+
HEADERS += \
$$PWD/container_qpainter.h \
$$PWD/qlitehtmlwidget.h
@@ -6,8 +44,8 @@ SOURCES += \
$$PWD/container_qpainter.cpp \
$$PWD/qlitehtmlwidget.cpp
-INCLUDEPATH += $$PWD $$LITEHTML_INSTALL_DIR/include $$LITEHTML_INSTALL_DIR/include/litehtml
-LIBS += -L$$LITEHTML_INSTALL_DIR/lib -llitehtml -lgumbo
+INCLUDEPATH += $$PWD $$LITEHTML_INCLUDE_DIRS
+LIBS += -L$$LITEHTML_LIB_DIR -llitehtml -lgumbo
-win32: PRE_TARGET_DEPS += $$LITEHTML_INSTALL_DIR/lib/litehtml.lib $$LITEHTML_INSTALL_DIR/lib/gumbo.lib
-else:unix: PRE_TARGET_DEPS += $$LITEHTML_INSTALL_DIR/lib/liblitehtml.a $$LITEHTML_INSTALL_DIR/lib/libgumbo.a
+win32: PRE_TARGETDEPS += $$LITEHTML_LIB_DIR/litehtml.lib $$LITEHTML_LIB_DIR/gumbo.lib
+else:unix: PRE_TARGETDEPS += $$LITEHTML_LIB_DIR/liblitehtml.a $$LITEHTML_LIB_DIR/libgumbo.a