aboutsummaryrefslogtreecommitdiffstats
path: root/packaging-tools/build_clang.py
diff options
context:
space:
mode:
Diffstat (limited to 'packaging-tools/build_clang.py')
-rw-r--r--packaging-tools/build_clang.py49
1 files changed, 32 insertions, 17 deletions
diff --git a/packaging-tools/build_clang.py b/packaging-tools/build_clang.py
index b4dc549d7..09870515e 100644
--- a/packaging-tools/build_clang.py
+++ b/packaging-tools/build_clang.py
@@ -139,13 +139,13 @@ def build_environment(toolchain, bitness):
def training_qt_version():
qt_ver = os.environ.get('TRAINING_QT_VERSION')
if not qt_ver:
- qt_ver = '5.10'
+ qt_ver = '6.2'
return qt_ver
def training_qt_long_version():
qt_ver = os.environ.get('TRAINING_QT_LONG_VERSION')
if not qt_ver:
- qt_ver = '5.10.0-final-released'
+ qt_ver = '6.2.3'
return qt_ver
def training_qtcreator_version():
@@ -178,20 +178,14 @@ def mingw_training(base_path, qtcreator_path, environment, bitness):
pkg_server = get_pkg_value("PACKAGE_STORAGE_SERVER")
# Install Qt
- qt_modules = ['qtbase', 'qtdeclarative', 'qtgraphicaleffects',
- 'qtimageformats', 'qtlocation',
- 'qtquickcontrols', 'qtquickcontrols2', 'qtscript', 'qtsvg', 'qttools',
- 'qttranslations', 'qtxmlpatterns']
+ qt_modules = ['qtbase', 'qtdeclarative', 'qtimageformats', 'qt5compat', 'qtshadertools', 'qtsvg', 'qttools']
qt_base_url = 'http://' + pkg_server + '/packages/jenkins/archive/qt/' \
- + training_qt_version() + '/' + training_qt_long_version() + '/latest'
+ + training_qt_version() + '/' + training_qt_long_version() + '-final-released/Qt' + training_qt_long_version()
msvc_year_ver = msvc_year_version()
if bitness == 64:
qt_mingw_postfix = '-Windows-Windows_10-Mingw-Windows-Windows_10-X86_64.7z'
qt_postfix = '-Windows-Windows_10-' + msvc_year_ver + '-Windows-Windows_10-X86_64.7z'
- else:
- qt_mingw_postfix = '-Windows-Windows_7-Mingw-Windows-Windows_7-X86.7z'
- qt_postfix = '-Windows-Windows_10-' + msvc_year_ver + '-Windows-Windows_10-X86.7z'
qt_module_urls = [qt_base_url + '/' + module + '/' + module + qt_postfix for module in qt_modules]
qt_mingw_module_urls = [qt_base_url + '/' + module + '/' + module + qt_mingw_postfix for module in qt_modules]
@@ -233,19 +227,20 @@ def mingw_training(base_path, qtcreator_path, environment, bitness):
'-DBUILD_PLUGIN_CORE=ON',
'-DBUILD_PLUGIN_TEXTEDITOR=ON',
'-DBUILD_PLUGIN_PROJECTEXPLORER=ON',
- '-DBUILD_PLUGIN_CPPTOOLS=ON',
'-DBUILD_PLUGIN_CPPEDITOR=ON',
'-DBUILD_PLUGIN_QMAKEPROJECTMANAGER=ON',
'-DBUILD_PLUGIN_CLANGCODEMODEL=ON',
'-DBUILD_PLUGIN_CLANGTOOLS=ON',
'-DBUILD_PLUGIN_DEBUGGER=ON',
'-DBUILD_PLUGIN_DESIGNER=ON',
+ '-DBUILD_PLUGIN_LANGUAGECLIENT=ON',
'-DBUILD_PLUGIN_QTSUPPORT=ON',
'-DBUILD_PLUGIN_RESOURCEEDITOR=ON',
'-DBUILD_EXECUTABLE_QTCREATOR=ON',
'-DBUILD_EXECUTABLE_ECHO=ON',
'-DBUILD_EXECUTABLE_CLANGBACKEND=ON',
+ '-DBUILD_EXECUTABLE_QTCREATOR_PROCESSLAUNCHER=ON',
'-DCMAKE_PREFIX_PATH=' + qt_mingw_dir + ';' + os.path.join(base_path, 'libclang'),
'-S' + qtcreator_path,
@@ -287,12 +282,20 @@ def profile_data_flags(toolchain, profile_data_path, first_run):
profile_flag = '-fprofile-generate' if first_run else '-fprofile-correction -Wno-error=coverage-mismatch -fprofile-use'
compiler_flags = profile_flag + '=' + profile_data_path
linker_flags = compiler_flags + ' -static-libgcc -static-libstdc++ -static'
- return [
+
+ cmake_flags = [
'-DCMAKE_C_FLAGS=' + compiler_flags,
'-DCMAKE_CXX_FLAGS=' + compiler_flags,
'-DCMAKE_SHARED_LINKER_FLAGS=' + linker_flags,
'-DCMAKE_EXE_LINKER_FLAGS=' + linker_flags,
]
+ if first_run:
+ stage1path = os.path.join(profile_data_path, '../build/bin')
+ cmake_flags.append('-DCLANG_TABLEGEN=' + os.path.join(stage1path, "clang-tblgen.exe"))
+ cmake_flags.append('-DLLVM_TABLEGEN=' + os.path.join(stage1path, "llvm-tblgen.exe"))
+ cmake_flags.append('-DLLVM_BUILD_RUNTIME=No')
+
+ return cmake_flags
if is_mingw_toolchain(toolchain):
linker_flags = '-static-libgcc -static-libstdc++ -static'
return ['-DCMAKE_SHARED_LINKER_FLAGS=' + linker_flags,
@@ -333,6 +336,10 @@ def build_and_install(toolchain, build_path, environment, build_targets, install
bldinstallercommon.do_execute_sub_process(install_cmd + install_targets, build_path, extra_env=environment)
def cmake_command(toolchain, src_path, build_path, install_path, profile_data_path, first_run, bitness, build_type):
+ enabled_projects = 'clang;clang-tools-extra'
+ if profile_data_path and first_run:
+ enabled_projects = 'clang'
+
command = ['cmake',
'-DCMAKE_INSTALL_PREFIX=' + install_path,
'-G',
@@ -343,7 +350,7 @@ def cmake_command(toolchain, src_path, build_path, install_path, profile_data_pa
'-DLLVM_ENABLE_ZLIB=OFF',
'-DLLVM_ENABLE_TERMINFO=OFF',
'-DLLVM_TARGETS_TO_BUILD=X86',
- '-DLLVM_ENABLE_PROJECTS=clang;clang-tools-extra',
+ '-DLLVM_ENABLE_PROJECTS=' + enabled_projects,
"-DLLVM_LIT_ARGS='-v'"]
if is_msvc_toolchain(toolchain):
command.append('-DLLVM_EXPORT_SYMBOLS_FOR_PLUGINS=1')
@@ -361,10 +368,18 @@ def build_clang(toolchain, src_path, build_path, install_path, profile_data_path
cmake_cmd = cmake_command(toolchain, src_path, build_path, install_path, profile_data_path, first_run, bitness, build_type)
bldinstallercommon.do_execute_sub_process(cmake_cmd, build_path, extra_env=environment)
- build_targets = ['install/strip']
+
+ build_targets = ['libclang', 'clang', 'llvm-config']
+ install_targets = ['install/strip']
+
if is_msvc_toolchain(toolchain):
- build_targets = ['install'] # There is no 'install/strip' for nmake.
- build_and_install(toolchain, build_path, environment, ['libclang', 'clang', 'llvm-config'], build_targets)
+ install_targets = ['install'] # There is no 'install/strip' for nmake.
+
+ if profile_data_path and first_run:
+ build_targets = ['libclang']
+ install_targets = ['tools/clang/tools/libclang/install/strip'] # we only want to build / install libclang
+
+ build_and_install(toolchain, build_path, environment, build_targets, install_targets)
def build_clazy(toolchain, src_path, build_path, install_path, bitness=64, environment=None):
if build_path and not os.path.lexists(build_path):
@@ -399,7 +414,7 @@ def check_clang(toolchain, build_path, environment):
environment[path_key] += ';' + tools_path
build_cmd = build_command(toolchain)
- bldinstallercommon.do_execute_sub_process(build_cmd + ['check-clang'], build_path, extra_env=environment)
+ bldinstallercommon.do_execute_sub_process(build_cmd + ['check-clang'], build_path, abort_on_fail=False, extra_env=environment)
def package_clang(install_path, result_file_path):
(basepath, dirname) = os.path.split(install_path)