diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-12-09 07:38:22 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-12-09 16:31:32 +0000 |
commit | 215568cba4ff4f0c70573d8ecb6c2066700ba627 (patch) | |
tree | ad09806d2f7ad84a52d8f89da418719fce8a3a5b /build_scripts | |
parent | c9ac6f54c61ebbf5d4d445193a5c3975af355365 (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.py | 8 | ||||
-rw-r--r-- | build_scripts/qtinfo.py | 3 | ||||
-rw-r--r-- | build_scripts/utils.py | 9 |
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: |