-
Michael Brüning authored
This fixes 7639513f . Change-Id: I512ca97d8b4fc8b7c48f03ab32d476bb3a791157 Reviewed-by:
Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by:
Zeno Albisser <zeno.albisser@digia.com>
7356189d
defineTest(isPlatformSupported) {
static: return(false)
osx:lessThan(QMAKE_XCODE_VERSION, 5.1): return(false)
linux-g++*:!isGCCVersionSupported():return(false)
!isPythonVersionSupported(): return(false)
linux-g++*|win32-msvc2013|macx-clang: return(true)
boot2qt: return(true)
return(false)
}
defineTest(isPythonVersionSupported) {
python_major_version = $$system("python -c 'import sys; print sys.version_info.major'")
python_minor_version = $$system("python -c 'import sys; print sys.version_info.minor'")
greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): return(true)
return(false)
}
defineTest(isGCCVersionSupported) {
# The below will work for gcc 4.6 and up and also match gcc 5
greaterThan(QT_GCC_MINOR_VERSION, 5):return(true)
greaterThan(QT_GCC_MAJOR_VERSION, 4):return(true)
return(false)
}
# Map to the correct target type for gyp
defineReplace(toGypTargetType) {
equals(TEMPLATE, "app"):return("executable")
equals(TEMPLATE, "lib") {
CONFIG(static): return("static_library")
return("shared_library")
}
return("none")
}
defineReplace(getConfigDir) {
win32:contains(QMAKE_TARGET.arch, x86_64) {
CONFIG(release, debug|release):return("Release_x64")
return("Debug_x64")
}
CONFIG(release, debug|release):return("Release")
return("Debug")
}
defineReplace(getChromiumSrcDir) {
git_chromium_src_dir = $$system("git config qtwebengine.chromiumsrcdir")
# Fall back to the snapshot path if git does not know about chromium sources (i.e. init-repository.py has not been used)
isEmpty(git_chromium_src_dir): git_chromium_src_dir = "src/3rdparty/chromium"
return($$git_chromium_src_dir)
}
defineReplace(extractCFlag) {
CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS
!isEmpty(ANDROID_TARGET_CFLAGS): CFLAGS = $$ANDROID_TARGET_CFLAGS
OPTION = $$find(CFLAGS, $$1)
OPTION = $$split(OPTION, =)
return ($$member(OPTION, 1))
}
defineReplace(findMocables) {
input = $$1
for (file, input): \
infiles += $$absolute_path($$file, $$_PRO_FILE_PWD_)
mocables = $$system("python $$QTWEBENGINE_ROOT/tools/buildscripts/find-mocables $$infiles")
mocables = $$replace(mocables, $$_PRO_FILE_PWD_/, '')
return($$mocables)
}
defineReplace(findIncludedMocFiles) {
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
input = $$1
for (file, input): \
infiles += $$absolute_path($$file, $$_PRO_FILE_PWD_)
return($$system("python $$QTWEBENGINE_ROOT/tools/buildscripts/find-included-moc-files $$infiles"))
}
defineReplace(mocOutput) {
out = $$1
# The order is important, since the output of the second replace would end up accidentaly transformed by the first one
out = $$replace(out, ^(.*)($$join(QMAKE_EXT_CPP,|)), $${QMAKE_CPP_MOD_MOC}\\1$${QMAKE_EXT_CPP_MOC})
out = $$replace(out, ^(.*)($$join(QMAKE_EXT_H,|)), $${QMAKE_H_MOD_MOC}\\1$${first(QMAKE_EXT_CPP)})
return($$out)
}
defineReplace(rccOutput) {
out = $$1
out = $$replace(out, .qrc, .cpp)
out = $$join(out, qrc_, qrc_)
return($$out)
}
defineReplace(rccExternFunc) {
out = $$1
out = $$replace(out, .qrc, )
return($$out)
}
defineReplace(which) {
out = $$1
win32 {
command = $$split(out, " ")
executable = $$first(command)
# Return the first match only
out = $$system("((for /f \"usebackq delims=\" %i in (`where $$executable 2^> NUL`) do @if not defined _endwhich (@echo %i & set _endwhich=true)) & set _endwhich=)")
isEmpty(out) {
message($$executable not found)
out = $$executable
}
for(arg, command): !equals(arg, $$executable): out += $$arg
} else:unix {
command = $$split(out, " ")
executable = $$first(command)
out = $$system("which $$executable 2>/dev/null")
isEmpty(out) {
message($$executable not found)
out = $$executable
}
for(arg, command): !equals(arg, $$executable): out += $$arg
}
return($$out)
}
defineReplace(findOrBuildNinja) {
# If NINJA_PATH env var is set, prefer that.
# Fallback to locating our own bootstrapped ninja.
out = $(NINJA_PATH)
!exists($$out) {
out = $$absolute_path("$${getChromiumSrcDir()}/../ninja/ninja", "$$QTWEBENGINE_ROOT")
win32: out = $$system_path($${out}.exe)
# If we did not find ninja, then we bootstrap it.
!exists($$out): system("python $$dirname(out)/bootstrap.py")
}
return($$out)
}