From 194f4fca4cba5accbbbcdd22d098079cdf8b2827 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 18 Sep 2019 11:50:08 +0200 Subject: Help: Add litehtml as submodule and optionally use that Change-Id: I528dd661eb0db92e6252ddba7fa38ab58496611a Reviewed-by: Cristian Adam Reviewed-by: hjk --- .gitmodules | 3 ++ src/plugins/help/CMakeLists.txt | 8 ++++-- src/plugins/help/help.pro | 2 +- src/plugins/help/qlitehtml/CMakeLists.txt | 14 +++++++++- src/plugins/help/qlitehtml/litehtml | 1 + src/plugins/help/qlitehtml/qlitehtml.pri | 46 ++++++++++++++++++++++++++++--- 6 files changed, 66 insertions(+), 8 deletions(-) create mode 160000 src/plugins/help/qlitehtml/litehtml 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 index 0000000000..2979ffbf45 --- /dev/null +++ b/src/plugins/help/qlitehtml/litehtml @@ -0,0 +1 @@ +Subproject commit 2979ffbf45a22e39d16f0ef125532509824b135e 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 -- cgit v1.2.1