forked from qt-creator/qt-creator
Change-Id: Ibcf9a76fb163aa7167ad0ef0616c39b33c30d7c5 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
72 lines
2.6 KiB
Python
72 lines
2.6 KiB
Python
# Copyright (C) 2016 The Qt Company Ltd.
|
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
source("../../shared/qtcreator.py")
|
|
|
|
BuildPath = tempDir()
|
|
|
|
def cmakeSupported():
|
|
versionLines = filter(lambda line: "cmake version " in line,
|
|
getOutputFromCmdline(["cmake", "--version"]).splitlines())
|
|
try:
|
|
versionLine = next(iter(versionLines))
|
|
test.log("Using " + versionLine)
|
|
matcher = re.match("cmake version (\d+)\.(\d+)\.\d+", versionLine)
|
|
major = builtins.int(matcher.group(1))
|
|
minor = builtins.int(matcher.group(2))
|
|
except:
|
|
return False
|
|
|
|
return (major, minor) >= (3, 14)
|
|
|
|
def main():
|
|
if (which("cmake") == None):
|
|
test.fatal("cmake not found in PATH - needed to run this test")
|
|
return
|
|
if not cmakeSupported():
|
|
test.warning("CMake version is no more supported for QC")
|
|
return
|
|
|
|
with GitClone("https://bitbucket.org/heldercorreia/speedcrunch.git",
|
|
"release-0.12.0") as SpeedCrunchPath:
|
|
if not SpeedCrunchPath:
|
|
test.fatal("Could not clone SpeedCrunch")
|
|
return
|
|
# patch CMakeLists.txt outside of QC
|
|
try:
|
|
patchFile = os.path.join(os.path.dirname(__file__),
|
|
"..", "..", "0001-Fix-build-on-macOS.patch")
|
|
subprocess.check_call(["git", "am", patchFile], cwd=SpeedCrunchPath)
|
|
test.log("Patched speedcrunch.")
|
|
except:
|
|
t, v = sys.exc_info()[:2]
|
|
test.warning("Patching speedcrunch failed.", "%s(%s)" % (str(t), str(v)))
|
|
|
|
startQC()
|
|
if not startedWithoutPluginError():
|
|
return
|
|
result = openCmakeProject(os.path.join(SpeedCrunchPath, "src", "CMakeLists.txt"),
|
|
BuildPath)
|
|
if not result:
|
|
test.fatal("Could not open/create cmake project - leaving test")
|
|
invokeMenuItem("File", "Exit")
|
|
return
|
|
waitForProjectParsing()
|
|
naviTreeView = "{column='0' container=':Qt Creator_Utils::NavigationTreeView' text~='%s' type='QModelIndex'}"
|
|
treeFile = "projecttree_speedcrunch.tsv"
|
|
compareProjectTree(naviTreeView % "speedcrunch( \[\S+\])?", treeFile)
|
|
|
|
# Invoke a rebuild of the application
|
|
selectFromLocator("t rebuild", "Rebuild All Projects")
|
|
|
|
# Wait for, and test if the build succeeded
|
|
waitForCompile(300000)
|
|
checkCompile()
|
|
checkLastBuild()
|
|
|
|
invokeMenuItem("File", "Exit")
|
|
|
|
def cleanup():
|
|
global BuildPath
|
|
deleteDirIfExists(BuildPath)
|