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>
This commit is contained in:
Eike Ziller
2019-09-18 11:50:08 +02:00
parent 8354d426de
commit 194f4fca4c
6 changed files with 66 additions and 8 deletions

3
.gitmodules vendored
View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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