-
Michal Klocek authored
Use new configure system for all package detection. Move config test execution to new configure system. However, keep old configure.prf for error hanlding. Split configuration summary into: * optional system libraries used * required system libraries * required system libraries for qpa-xcb (on linux) Change-Id: I5108456caa024a1ada9bb54750693064a2d36f78 Reviewed-by:
Allan Sandfeld Jensen <allan.jensen@qt.io>
6bc675d8
configure.pri 4.83 KiB
# this must be done outside any function
QTWEBENGINE_SOURCE_TREE = $$PWD
equals(QMAKE_HOST.os, Windows): EXE_SUFFIX = .exe
defineTest(isPythonVersionSupported) {
python = $$system_quote($$system_path($$1))
python_version = $$system('$$python -c "import sys; print(sys.version_info[0:3])"')
python_version ~= s/[()]//g
python_version = $$split(python_version, ',')
python_major_version = $$first(python_version)
greaterThan(python_major_version, 2) {
qtLog("Python version 3 is not supported by Chromium.")
return(false)
}
python_minor_version = $$member(python_version, 1)
python_patch_version = $$member(python_version, 2)
greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): greaterThan(python_patch_version, 4): return(true)
qtLog("Unsupported python version: $${python_major_version}.$${python_minor_version}.$${python_patch_version}.")
return(false)
}
defineTest(qtConfTest_detectPython2) {
python = $$qtConfFindInPath("python2$$EXE_SUFFIX")
isEmpty(python) {
qtLog("'python2$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.")
python = $$qtConfFindInPath("python$$EXE_SUFFIX")
}
isEmpty(python) {
qtLog("'python$$EXE_SUFFIX' not found in PATH. Giving up.")
return(false)
}
!isPythonVersionSupported($$python) {
qtLog("A suitable Python 2 executable could not be located.")
return(false)
}
# Make tests.python2.location available in configure.json.
$${1}.location = $$clean_path($$python)
export($${1}.location)
$${1}.cache += location
export($${1}.cache)
return(true)
}
defineReplace(qtConfFindGnuTool) {
equals(QMAKE_HOST.os, Windows) {
gnuwin32bindir = $$absolute_path($$QTWEBENGINE_SOURCE_TREE/../gnuwin32/bin)
gnuwin32toolpath = "$$gnuwin32bindir/$${1}"
exists($$gnuwin32toolpath): \
return($$gnuwin32toolpath)
}
return($$qtConfFindInPath($$1))
}
defineTest(qtConfTest_detectGperf) {
gperf = $$qtConfFindGnuTool("gperf$$EXE_SUFFIX")
isEmpty(gperf) {
qtLog("Required gperf could not be found.")
return(false)
}
qtLog("Found gperf from path: $$gperf")
return(true)
}
defineTest(qtConfTest_detectBison) {
bison = $$qtConfFindGnuTool("bison$$EXE_SUFFIX")
isEmpty(bison) {
qtLog("Required bison could not be found.")
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
return(false)
}
qtLog("Found bison from path: $$bison")
return(true)
}
defineTest(qtConfTest_detectFlex) {
flex = $$qtConfFindGnuTool("flex$$EXE_SUFFIX")
isEmpty(flex) {
qtLog("Required flex could not be found.")
return(false)
}
qtLog("Found flex from path: $$flex")
return(true)
}
defineTest(qtConfTest_detectGlibc) {
ldd = $$qtConfFindInPath("ldd")
!isEmpty(ldd) {
qtLog("Found ldd from path: $$ldd")
qtRunLoggedCommand("$$ldd --version", version)|return(true)
version ~= 's/^.*[^0-9]\([0-9]*\.[0-9]*\).*$/\1/'
version = $$first(version)
qtLog("Found libc version: $$version")
version = $$split(version,'.')
version = $$member(version, 1)
greaterThan(version, 16) {
return(true)
}
qtLog("Detected too old version of glibc. Required min 2.17.")
return(false)
}
qtLog("No ldd found. Assuming right version of glibc.")
return(true)
}
defineTest(qtConfTest_detectNinja) {
ninja = $$qtConfFindInPath("ninja$$EXE_SUFFIX")
!isEmpty(ninja) {
qtLog("Found ninja from path: $$ninja")
qtRunLoggedCommand("$$ninja --version", version)|return(false)
contains(version, "1.*"): return(true)
qtLog("Ninja version too old")
}
qtLog("Building own ninja")
return(false)
}
defineTest(qtConfTest_detectProtoc) {
protoc = $$qtConfFindInPath("protoc")
isEmpty(protoc) {
qtLog("Optional protoc could not be found.")
return(false)
}
qtLog("Found protoc from path: $$protoc")
return(true)
}
defineTest(qtConfTest_detectGn) {
gn = $$qtConfFindInPath("gn$$EXE_SUFFIX")
!isEmpty(gn) {
qtRunLoggedCommand("$$gn --version", version)|return(false)
#accept all for now
contains(version, ".*"): return(true)
qtLog("Gn version too old")
}
qtLog("Building own gn")
return(false)
}
141142143144145146147148149150151152153154155156157158159
defineTest(qtConfTest_embedded) {
lessThan(QT_MINOR_VERSION, 9) {
cross_compile: return(true)
return(false)
}
$$qtConfEvaluate("features.cross_compile"): return(true)
return(false)
}
defineTest(qtConfTest_detectIcuuc) {
pkgConfig = $$first($$list($$pkgConfigExecutable()))
!isEmpty(pkgConfig) {
qtRunLoggedCommand("$$pkgConfig --libs --static libxml-2.0", xmllibs)
contains(xmllibs,".*-licuuc.*"):return(true)
qtLog("System libxml2 is not configured with ICU")
}
return(false)
}