aboutsummaryrefslogtreecommitdiffstats
path: root/build_scripts
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-12-09 07:38:22 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-12-09 16:31:32 +0000
commit215568cba4ff4f0c70573d8ecb6c2066700ba627 (patch)
treead09806d2f7ad84a52d8f89da418719fce8a3a5b /build_scripts
parentc9ac6f54c61ebbf5d4d445193a5c3975af355365 (diff)
Windows: Fix the build against complete LLVM packages
When compiling a dummy project for determining config values, CMake is fooled to use clang++ as a compiler if it finds it. Force it to use MSVC as is done for the build. Change-Id: Ic1031a9aa078c0d05adf6495b4db665a0813e3f9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit bda973a2b0a288d0bc7390244ce6b563fe8dbe34) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'build_scripts')
-rw-r--r--build_scripts/main.py8
-rw-r--r--build_scripts/qtinfo.py3
-rw-r--r--build_scripts/utils.py9
3 files changed, 15 insertions, 5 deletions
diff --git a/build_scripts/main.py b/build_scripts/main.py
index a0b9335bb..82b0f31aa 100644
--- a/build_scripts/main.py
+++ b/build_scripts/main.py
@@ -76,7 +76,7 @@ from setuptools import Command
from .qtinfo import QtInfo
from .utils import (rmtree, detect_clang, copyfile, copydir, run_process_output, run_process,
update_env_path, init_msvc_env, filter_match, macos_fix_rpaths_for_library,
- linux_fix_rpaths_for_library)
+ linux_fix_rpaths_for_library, platform_cmake_options)
from .platforms.unix import prepare_packages_posix
from .platforms.windows_desktop import prepare_packages_win32
from .wheel_override import wheel_module_exists, get_bdist_wheel_override
@@ -652,6 +652,8 @@ class PysideBuild(_build, DistUtilsCommandMixin, BuildInfoCollectorMixin):
cmake_cmd.append("-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=yes")
cmake_cmd.append("-DUSE_PYTHON_VERSION=3.6")
+ cmake_cmd += platform_cmake_options()
+
if sys.platform == 'darwin':
if OPTION["MACOS_ARCH"]:
# also tell cmake which architecture to use
@@ -688,10 +690,6 @@ class PysideBuild(_build, DistUtilsCommandMixin, BuildInfoCollectorMixin):
deployment_target = macos_pyside_min_deployment_target()
cmake_cmd.append(f"-DCMAKE_OSX_DEPLOYMENT_TARGET={deployment_target}")
os.environ['MACOSX_DEPLOYMENT_TARGET'] = deployment_target
- elif sys.platform == 'win32':
- # Prevent cmake from auto-detecting clang if it is in path.
- cmake_cmd.append("-DCMAKE_C_COMPILER=cl.exe")
- cmake_cmd.append("-DCMAKE_CXX_COMPILER=cl.exe")
if not OPTION["SKIP_DOCS"]:
# Build the whole documentation (rst + API) by default
diff --git a/build_scripts/qtinfo.py b/build_scripts/qtinfo.py
index 749342679..f038adddc 100644
--- a/build_scripts/qtinfo.py
+++ b/build_scripts/qtinfo.py
@@ -44,6 +44,8 @@ import subprocess
import tempfile
from pathlib import Path
+from .utils import platform_cmake_options
+
_CMAKE_LISTS = """cmake_minimum_required(VERSION 3.16)
project(dummy LANGUAGES CXX)
@@ -264,6 +266,7 @@ class QtInfo(object):
cmd = [self._cmake_command, '-G', 'Ninja', '.']
qt_prefix = self.prefix_dir
cmd.extend([f'-DCMAKE_PREFIX_PATH={qt_prefix}'])
+ cmd += platform_cmake_options()
# FIXME Python 3.7: Use subprocess.run()
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=False,
diff --git a/build_scripts/utils.py b/build_scripts/utils.py
index d5cfd8d67..45e7bdcd7 100644
--- a/build_scripts/utils.py
+++ b/build_scripts/utils.py
@@ -244,6 +244,15 @@ def init_msvc_env(platform_arch, build_type):
log.info("Done initializing MSVC env")
+def platform_cmake_options():
+ result = []
+ if sys.platform == 'win32':
+ # Prevent cmake from auto-detecting clang if it is in path.
+ result.append("-DCMAKE_C_COMPILER=cl.exe")
+ result.append("-DCMAKE_CXX_COMPILER=cl.exe")
+ return result
+
+
def copyfile(src, dst, force=True, vars=None, force_copy_symlink=False,
make_writable_by_owner=False):
if vars is not None: