Help/litehtml: Don't call cmake from qmake build

Change-Id: I42a3384dd02e8f7b714a820673d5db094642f668
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Eike Ziller
2019-09-24 10:22:32 +02:00
parent 284eab836c
commit 4ea0d22d4c

View File

@@ -1,42 +1,144 @@
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"
LH_SRC = $$PWD/litehtml
GB_SRC = $$PWD/litehtml/src/gumbo
BUILD_TYPE = RelWithDebInfo
CONFIG(release, debug|release): BUILD_TYPE = Release
# gumbo
SOURCES += \
$$GB_SRC/attribute.c \
$$GB_SRC/char_ref.c \
$$GB_SRC/error.c \
$$GB_SRC/parser.c \
$$GB_SRC/string_buffer.c \
$$GB_SRC/string_piece.c \
$$GB_SRC/tag.c \
$$GB_SRC/tokenizer.c \
$$GB_SRC/utf8.c \
$$GB_SRC/util.c \
$$GB_SRC/vector.c
# Create build directory
system("$$sprintf($$QMAKE_MKDIR_CMD, $$shell_path($${LITEHTML_BUILD_PATH}))")
HEADERS += \
$$GB_SRC/attribute.h \
$$GB_SRC/char_ref.h \
$$GB_SRC/error.h \
$$GB_SRC/gumbo.h \
$$GB_SRC/insertion_mode.h \
$$GB_SRC/parser.h \
$$GB_SRC/string_buffer.h \
$$GB_SRC/string_piece.h \
$$GB_SRC/tag_enum.h \
$$GB_SRC/tag_gperf.h \
$$GB_SRC/tag_sizes.h \
$$GB_SRC/tag_strings.h \
$$GB_SRC/token_type.h \
$$GB_SRC/tokenizer.h \
$$GB_SRC/tokenizer_states.h \
$$GB_SRC/utf8.h \
$$GB_SRC/util.h \
$$GB_SRC/vector.h
macos: CMAKE_DEPLOYMENT_TARGET = -DCMAKE_OSX_DEPLOYMENT_TARGET=$${QMAKE_MACOSX_DEPLOYMENT_TARGET}
win32: WINDOWS_OPTIONS = -DLITEHTML_UTF8=ON -G $$system_quote('NMake Makefiles')
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})) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
$$WINDOWS_OPTIONS \
$$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
win32 {
HEADERS += \
$$GB_SRC/visualc/include/strings.h
INCLUDEPATH *= $$GB_SRC/visualc/include
}
LITEHTML_INCLUDE_DIRS = $$LITEHTML_SOURCE_PATH/include $$LITEHTML_SOURCE_PATH/src
LITEHTML_LIB_DIR = $$LITEHTML_INSTALL_PATH/lib
# litehtml
SOURCES += \
$$LH_SRC/src/background.cpp \
$$LH_SRC/src/box.cpp \
$$LH_SRC/src/context.cpp \
$$LH_SRC/src/css_length.cpp \
$$LH_SRC/src/css_selector.cpp \
$$LH_SRC/src/document.cpp \
$$LH_SRC/src/el_anchor.cpp \
$$LH_SRC/src/el_base.cpp \
$$LH_SRC/src/el_before_after.cpp \
$$LH_SRC/src/el_body.cpp \
$$LH_SRC/src/el_break.cpp \
$$LH_SRC/src/el_cdata.cpp \
$$LH_SRC/src/el_comment.cpp \
$$LH_SRC/src/el_div.cpp \
$$LH_SRC/src/element.cpp \
$$LH_SRC/src/el_font.cpp \
$$LH_SRC/src/el_image.cpp \
$$LH_SRC/src/el_link.cpp \
$$LH_SRC/src/el_para.cpp \
$$LH_SRC/src/el_script.cpp \
$$LH_SRC/src/el_space.cpp \
$$LH_SRC/src/el_style.cpp \
$$LH_SRC/src/el_table.cpp \
$$LH_SRC/src/el_td.cpp \
$$LH_SRC/src/el_text.cpp \
$$LH_SRC/src/el_title.cpp \
$$LH_SRC/src/el_tr.cpp \
$$LH_SRC/src/html.cpp \
$$LH_SRC/src/html_tag.cpp \
$$LH_SRC/src/iterators.cpp \
$$LH_SRC/src/media_query.cpp \
$$LH_SRC/src/style.cpp \
$$LH_SRC/src/stylesheet.cpp \
$$LH_SRC/src/table.cpp \
$$LH_SRC/src/utf8_strings.cpp \
$$LH_SRC/src/web_color.cpp
HEADERS += \
$$LH_SRC/include/litehtml.h \
$$LH_SRC/src/attributes.h \
$$LH_SRC/src/background.h \
$$LH_SRC/src/borders.h \
$$LH_SRC/src/box.h \
$$LH_SRC/src/context.h \
$$LH_SRC/src/css_length.h \
$$LH_SRC/src/css_margins.h \
$$LH_SRC/src/css_offsets.h \
$$LH_SRC/src/css_position.h \
$$LH_SRC/src/css_selector.h \
$$LH_SRC/src/document.h \
$$LH_SRC/src/el_anchor.h \
$$LH_SRC/src/el_base.h \
$$LH_SRC/src/el_before_after.h \
$$LH_SRC/src/el_body.h \
$$LH_SRC/src/el_break.h \
$$LH_SRC/src/el_cdata.h \
$$LH_SRC/src/el_comment.h \
$$LH_SRC/src/el_div.h \
$$LH_SRC/src/el_font.h \
$$LH_SRC/src/el_image.h \
$$LH_SRC/src/el_link.h \
$$LH_SRC/src/el_para.h \
$$LH_SRC/src/el_script.h \
$$LH_SRC/src/el_space.h \
$$LH_SRC/src/el_style.h \
$$LH_SRC/src/el_table.h \
$$LH_SRC/src/el_td.h \
$$LH_SRC/src/el_text.h \
$$LH_SRC/src/el_title.h \
$$LH_SRC/src/el_tr.h \
$$LH_SRC/src/element.h \
$$LH_SRC/src/html.h \
$$LH_SRC/src/html_tag.h \
$$LH_SRC/src/iterators.h \
$$LH_SRC/src/media_query.h \
$$LH_SRC/src/os_types.h \
$$LH_SRC/src/style.h \
$$LH_SRC/src/stylesheet.h \
$$LH_SRC/src/table.h \
$$LH_SRC/src/types.h \
$$LH_SRC/src/utf8_strings.h \
$$LH_SRC/src/web_color.h
INCLUDEPATH *= $$LH_SRC/include $$LH_SRC/src $$GB_SRC
# litehtml without optimization is not fun
QMAKE_CFLAGS_DEBUG += -O2
QMAKE_CXXFLAGS_DEBUG += -O2
} else {
LITEHTML_INCLUDE_DIRS = $$LITEHTML_INSTALL_DIR/include $$LITEHTML_INSTALL_DIR/include/litehtml
INCLUDEPATH *= $$LITEHTML_INSTALL_DIR/include $$LITEHTML_INSTALL_DIR/include/litehtml
LITEHTML_LIB_DIR = $$LITEHTML_INSTALL_DIR/lib
LIBS += -L$$LITEHTML_LIB_DIR -llitehtml -lgumbo
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
}
HEADERS += \
@@ -47,10 +149,5 @@ SOURCES += \
$$PWD/container_qpainter.cpp \
$$PWD/qlitehtmlwidget.cpp
INCLUDEPATH += $$PWD $$LITEHTML_INCLUDE_DIRS
LIBS += -L$$LITEHTML_LIB_DIR -llitehtml -lgumbo
DEFINES += LITEHTML_UTF8
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
INCLUDEPATH *= $$PWD
win32: DEFINES += LITEHTML_UTF8