From 2018988c4692c8955235fec756d1af24ed04bd45 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Thu, 30 May 2024 14:47:35 -0700 Subject: [PATCH 01/27] added print statement for debug --- builder/core/toolchain.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index c33fc9815..07c5eb73c 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -148,12 +148,15 @@ def __init__(self, **kwargs): self.compiler_version, self.target, self.arch]) def compiler_path(self): + print("DEBUG_CLANG: in compiler_path") assert not self.cross_compile if self.compiler == 'default': return Toolchain.default_compiler()[0] + print("DEBUG_CLANG: try access compiler {}".format(self.compiler)) return Toolchain.find_compiler(self.compiler, self.compiler_version if self.compiler_version != 'default' else None)[0] def cxx_compiler_path(self): + print("DEBUG_CLANG: in cxx_compiler_path, compiler is {}".format(self.compiler)) assert not self.cross_compile compiler = self.compiler if self.compiler == 'default': From 2f704aa8582418862bc4183101e3e377ad240d1c Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Thu, 30 May 2024 15:09:00 -0700 Subject: [PATCH 02/27] setup compiler print --- builder/core/toolchain.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index 07c5eb73c..dfeb7be2a 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -14,7 +14,7 @@ def _compiler_version(cc): if current_os() != 'windows': result = util.run_command(cc, '--version', quiet=True) lines = result.output.split('\n') - + print("DEBUG_CLANG: compiler version {}".format(lines)) for text in lines: # Apple clang m = re.match(r'Apple (LLVM|clang) version (\d+)', text) @@ -38,6 +38,7 @@ def _compiler_version(cc): def _find_compiler_tool(name, versions): # look for the default tool, and see if the version is in the search set path = util.where(name, resolve_symlinks=False) + print("DEBUG_CLANG: find compiler path {}".format(path)) if path: version = _compiler_version(path)[1] if version in versions: From 81d31fbd0d52ace25e40df6f614e40fb62acc9f5 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Thu, 30 May 2024 15:36:41 -0700 Subject: [PATCH 03/27] more prints --- builder/actions/install.py | 1 + builder/core/toolchain.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/builder/actions/install.py b/builder/actions/install.py index 22132bd0d..0419ba983 100644 --- a/builder/actions/install.py +++ b/builder/actions/install.py @@ -102,6 +102,7 @@ def export_compiler(compiler, env): if not env.shell.getenv('CC'): cc_path = toolchain.compiler_path() + print("DEBUG_CLANG: print cc_path {}".format(cc_path)) if cc_path: env.shell.setenv('CC', cc_path) else: diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index dfeb7be2a..79a47b1f4 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -42,13 +42,16 @@ def _find_compiler_tool(name, versions): if path: version = _compiler_version(path)[1] if version in versions: + print("DEBUG_CLANG: find compiler path return1") return path, version for version in versions: for pattern in ('{name}-{version}', '{name}-{version}.0'): exe = pattern.format(name=name, version=version) path = util.where(exe, resolve_symlinks=False) if path: + print("DEBUG_CLANG: find compiler path return2") return path, version + print("DEBUG_CLANG: find compiler path return3") return None, None @@ -237,6 +240,7 @@ def find_compiler(compiler, version=None): if current_os() == "macos": return Toolchain.find_apple_llvm_compiler(compiler, version) else: + print("DEBUG_CLANG: try find_compiler() in clang") return Toolchain.find_llvm_tool(compiler, version) elif compiler == 'appleclang': return Toolchain.find_apple_llvm_compiler('clang', version) From 02abdbcc035f8ec2b55e72b4a3eab4014b0d7049 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Thu, 30 May 2024 16:23:30 -0700 Subject: [PATCH 04/27] check versions --- builder/core/toolchain.py | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index 79a47b1f4..d7935640f 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -60,6 +60,7 @@ def _clang_versions(): ['versions'].keys() if v != 'default'] versions.sort() versions.reverse() + print("DEBUG_CLANG: versions {}".format(versions)) return versions From cad239f992b6c3c0fc28a5980f640f8500d40096 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Mon, 3 Jun 2024 09:20:17 -0700 Subject: [PATCH 05/27] appended clang 3.9 --- builder/core/data.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/builder/core/data.py b/builder/core/data.py index c1e226666..aec145bdd 100644 --- a/builder/core/data.py +++ b/builder/core/data.py @@ -509,6 +509,10 @@ class PKG_TOOLS(Enum): 'c': "clang-3.9", 'cxx': "clang++-3.9", }, + '3.9': { + 'c': "clang-3.9", + 'cxx': "clang++-3.9", + }, '6': { 'c': "clang-6.0", 'cxx': "clang++-6.0", From 466dbf2090353082301f0f8639a10378c9a0edfb Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Mon, 3 Jun 2024 09:50:49 -0700 Subject: [PATCH 06/27] print version --- builder/core/toolchain.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index d7935640f..d0ee64b0e 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -45,8 +45,10 @@ def _find_compiler_tool(name, versions): print("DEBUG_CLANG: find compiler path return1") return path, version for version in versions: + print("DEBUG_CLANG VERSION {}".format(version)) for pattern in ('{name}-{version}', '{name}-{version}.0'): exe = pattern.format(name=name, version=version) + print("version: {}".format(exe)) path = util.where(exe, resolve_symlinks=False) if path: print("DEBUG_CLANG: find compiler path return2") From 9a9b27931463ede662b02f92ed8daa6c616928e1 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Mon, 3 Jun 2024 10:29:00 -0700 Subject: [PATCH 07/27] test versions --- builder/core/data.py | 6 ++---- builder/core/toolchain.py | 14 ++++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/builder/core/data.py b/builder/core/data.py index aec145bdd..078fe19a0 100644 --- a/builder/core/data.py +++ b/builder/core/data.py @@ -508,10 +508,8 @@ class PKG_TOOLS(Enum): '3': { 'c': "clang-3.9", 'cxx': "clang++-3.9", - }, - '3.9': { - 'c': "clang-3.9", - 'cxx': "clang++-3.9", + # specific version number in use + 'releases': ['3.9'] }, '6': { 'c': "clang-6.0", diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index d0ee64b0e..43c094fcb 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -57,9 +57,15 @@ def _find_compiler_tool(name, versions): return None, None -def _clang_versions(): - versions = [v for v in COMPILERS['clang'] - ['versions'].keys() if v != 'default'] +def _clang_versions(version=None): + versions = [] + if version: + versions = [version] + versions.append(COMPILERS['clang']['versions'] + [version]['releases']) + else: + versions = [v for v in COMPILERS['clang'] + ['versions'].keys() if v != 'default'] versions.sort() versions.reverse() print("DEBUG_CLANG: versions {}".format(versions)) @@ -191,7 +197,7 @@ def find_gcc_tool(name, version=None): def find_llvm_tool(name, version=None): """ Finds clang, clang-tidy, lld, etc at a specific version, or the latest one available """ - versions = [version] if version else _clang_versions() + versions = _clang_versions() return _find_compiler_tool(name, versions) @staticmethod From a84c35c5a2a93f81c9e57e636f8dd58b3868089b Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Mon, 3 Jun 2024 11:27:59 -0700 Subject: [PATCH 08/27] fix clang version --- builder/core/toolchain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index 43c094fcb..1e647abc1 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -197,7 +197,7 @@ def find_gcc_tool(name, version=None): def find_llvm_tool(name, version=None): """ Finds clang, clang-tidy, lld, etc at a specific version, or the latest one available """ - versions = _clang_versions() + versions = _clang_versions(version) return _find_compiler_tool(name, versions) @staticmethod From f859289a9a7aa9cfe2b99cc7dfa333f622da05ca Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Mon, 3 Jun 2024 13:38:34 -0700 Subject: [PATCH 09/27] append versions --- builder/core/toolchain.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index 1e647abc1..270e5de08 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -59,10 +59,12 @@ def _find_compiler_tool(name, versions): def _clang_versions(version=None): versions = [] + print('DEBUG_CLANG: _clang_versions {}'.format(version)) if version: versions = [version] - versions.append(COMPILERS['clang']['versions'] - [version]['releases']) + specific_versions = COMPILERS['clang']['versions'][str(version)]['releases'] + if specific_versions: + versions.append(specific_versions) else: versions = [v for v in COMPILERS['clang'] ['versions'].keys() if v != 'default'] From bbb0766c62876b19c048c3178d1a0a0f2608f929 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Mon, 3 Jun 2024 14:06:44 -0700 Subject: [PATCH 10/27] update algorithm --- builder/core/toolchain.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index 270e5de08..24b3d4d4d 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -58,16 +58,16 @@ def _find_compiler_tool(name, versions): def _clang_versions(version=None): - versions = [] print('DEBUG_CLANG: _clang_versions {}'.format(version)) + all_versions = [v for v in COMPILERS['clang'] + ['versions'].keys() if v != 'default'] if version: - versions = [version] - specific_versions = COMPILERS['clang']['versions'][str(version)]['releases'] - if specific_versions: - versions.append(specific_versions) + if version in all_versions: + versions = [version] + if 'releases' in COMPILERS['clang']['versions'][str(version)]: + versions += COMPILERS['clang']['versions'][str(version)]['releases'] else: - versions = [v for v in COMPILERS['clang'] - ['versions'].keys() if v != 'default'] + versions += all_versions versions.sort() versions.reverse() print("DEBUG_CLANG: versions {}".format(versions)) From a0a04efc3351dbd88e2059af580901833f7e4e06 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Mon, 3 Jun 2024 14:26:42 -0700 Subject: [PATCH 11/27] setup versions array --- builder/core/toolchain.py | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index 24b3d4d4d..2a6434bbc 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -58,6 +58,7 @@ def _find_compiler_tool(name, versions): def _clang_versions(version=None): + versions = [] print('DEBUG_CLANG: _clang_versions {}'.format(version)) all_versions = [v for v in COMPILERS['clang'] ['versions'].keys() if v != 'default'] From 5cacd6c2a3a854ccfb4184af6a3fb1927c0ad2ba Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Tue, 4 Jun 2024 10:00:52 -0700 Subject: [PATCH 12/27] remove debug print --- builder/actions/install.py | 1 - builder/core/toolchain.py | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/builder/actions/install.py b/builder/actions/install.py index 0419ba983..22132bd0d 100644 --- a/builder/actions/install.py +++ b/builder/actions/install.py @@ -102,7 +102,6 @@ def export_compiler(compiler, env): if not env.shell.getenv('CC'): cc_path = toolchain.compiler_path() - print("DEBUG_CLANG: print cc_path {}".format(cc_path)) if cc_path: env.shell.setenv('CC', cc_path) else: diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index 2a6434bbc..ce74c930b 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -14,7 +14,6 @@ def _compiler_version(cc): if current_os() != 'windows': result = util.run_command(cc, '--version', quiet=True) lines = result.output.split('\n') - print("DEBUG_CLANG: compiler version {}".format(lines)) for text in lines: # Apple clang m = re.match(r'Apple (LLVM|clang) version (\d+)', text) @@ -38,28 +37,22 @@ def _compiler_version(cc): def _find_compiler_tool(name, versions): # look for the default tool, and see if the version is in the search set path = util.where(name, resolve_symlinks=False) - print("DEBUG_CLANG: find compiler path {}".format(path)) if path: version = _compiler_version(path)[1] if version in versions: - print("DEBUG_CLANG: find compiler path return1") return path, version for version in versions: - print("DEBUG_CLANG VERSION {}".format(version)) for pattern in ('{name}-{version}', '{name}-{version}.0'): exe = pattern.format(name=name, version=version) print("version: {}".format(exe)) path = util.where(exe, resolve_symlinks=False) if path: - print("DEBUG_CLANG: find compiler path return2") return path, version - print("DEBUG_CLANG: find compiler path return3") return None, None def _clang_versions(version=None): versions = [] - print('DEBUG_CLANG: _clang_versions {}'.format(version)) all_versions = [v for v in COMPILERS['clang'] ['versions'].keys() if v != 'default'] if version: @@ -71,7 +64,6 @@ def _clang_versions(version=None): versions += all_versions versions.sort() versions.reverse() - print("DEBUG_CLANG: versions {}".format(versions)) return versions @@ -164,15 +156,12 @@ def __init__(self, **kwargs): self.compiler_version, self.target, self.arch]) def compiler_path(self): - print("DEBUG_CLANG: in compiler_path") assert not self.cross_compile if self.compiler == 'default': return Toolchain.default_compiler()[0] - print("DEBUG_CLANG: try access compiler {}".format(self.compiler)) return Toolchain.find_compiler(self.compiler, self.compiler_version if self.compiler_version != 'default' else None)[0] def cxx_compiler_path(self): - print("DEBUG_CLANG: in cxx_compiler_path, compiler is {}".format(self.compiler)) assert not self.cross_compile compiler = self.compiler if self.compiler == 'default': @@ -252,7 +241,6 @@ def find_compiler(compiler, version=None): if current_os() == "macos": return Toolchain.find_apple_llvm_compiler(compiler, version) else: - print("DEBUG_CLANG: try find_compiler() in clang") return Toolchain.find_llvm_tool(compiler, version) elif compiler == 'appleclang': return Toolchain.find_apple_llvm_compiler('clang', version) From 0e57f95c39e11a35bc6b2084325affa8691178a7 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Tue, 4 Jun 2024 10:03:36 -0700 Subject: [PATCH 13/27] fix lint --- builder/core/toolchain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/core/toolchain.py b/builder/core/toolchain.py index ce74c930b..2a3e160b1 100644 --- a/builder/core/toolchain.py +++ b/builder/core/toolchain.py @@ -54,7 +54,7 @@ def _find_compiler_tool(name, versions): def _clang_versions(version=None): versions = [] all_versions = [v for v in COMPILERS['clang'] - ['versions'].keys() if v != 'default'] + ['versions'].keys() if v != 'default'] if version: if version in all_versions: versions = [version] From 78b0ccf7b3e8c75cb39fffd7bdfce73cd9499749 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Tue, 4 Jun 2024 11:57:35 -0700 Subject: [PATCH 14/27] try setup flag for clang3 --- builder/actions/cmake.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index 5d1d31335..592c1b412 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -142,6 +142,8 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme if value: compiler_flags.append( '-DCMAKE_{}_COMPILER={}'.format(opt.upper(), value)) + if 'clang-3' in value: + compiler_flags.append("-Wno-missing-field-initializers") cmake_args = UniqueList([ "-B{}".format(project_build_dir), "-H{}".format(project_source_dir), From 3ed386b076fe36a0657947e2d2abccc5f2ffb0dd Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Tue, 4 Jun 2024 13:06:54 -0700 Subject: [PATCH 15/27] enable extra flag --- builder/actions/cmake.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index 592c1b412..d0f29bfe4 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -143,6 +143,8 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme compiler_flags.append( '-DCMAKE_{}_COMPILER={}'.format(opt.upper(), value)) if 'clang-3' in value: + # enable extra compiler flags + compiler_flags.append("-Wextra") compiler_flags.append("-Wno-missing-field-initializers") cmake_args = UniqueList([ "-B{}".format(project_build_dir), From 8b89cda930c236662f170100eae9caee043839bf Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Tue, 4 Jun 2024 13:27:16 -0700 Subject: [PATCH 16/27] try setup cmake compile flags --- builder/actions/cmake.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index d0f29bfe4..ba7bc4878 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -144,8 +144,7 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme '-DCMAKE_{}_COMPILER={}'.format(opt.upper(), value)) if 'clang-3' in value: # enable extra compiler flags - compiler_flags.append("-Wextra") - compiler_flags.append("-Wno-missing-field-initializers") + compiler_flags.append("COMPILE_FLAGS=\"-Wextra,-Wno-missing-field-initializers\"") cmake_args = UniqueList([ "-B{}".format(project_build_dir), "-H{}".format(project_source_dir), From 2d2f30f43822ff21103b20465b8661e00dcf9b5a Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Tue, 4 Jun 2024 13:43:57 -0700 Subject: [PATCH 17/27] revert compile flag --- builder/actions/cmake.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index ba7bc4878..5d1d31335 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -142,9 +142,6 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme if value: compiler_flags.append( '-DCMAKE_{}_COMPILER={}'.format(opt.upper(), value)) - if 'clang-3' in value: - # enable extra compiler flags - compiler_flags.append("COMPILE_FLAGS=\"-Wextra,-Wno-missing-field-initializers\"") cmake_args = UniqueList([ "-B{}".format(project_build_dir), "-H{}".format(project_source_dir), From 32bfc125b125fe8f6ccf9a88ce896b391a2e41d7 Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Fri, 7 Jun 2024 16:23:58 -0700 Subject: [PATCH 18/27] Add CMAKE_C_FLAGS for clang-3 --- builder/actions/cmake.py | 34 +++++++++++++++++++++++++++++++++- builder/core/data.py | 3 ++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index 5d1d31335..754b2615e 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -2,8 +2,10 @@ # SPDX-License-Identifier: Apache-2.0. import os +import pprint import re import shutil +from collections import defaultdict from functools import lru_cache, partial from pathlib import Path @@ -100,6 +102,28 @@ def _project_dirs(env, project): return source_dir, build_dir, install_dir +def _merge_cmake_lang_flags(cmake_args): + print("=== _merge_cmake_lang_flags: cmake args") + pprint.pprint(cmake_args, indent=4, depth=4) + pattern = re.compile(r'''-D(CMAKE_C(?:XX)?_FLAGS)=["']?([^"']+)''') + + new_cmake_args = [] + + cmake_lang_flags = defaultdict(list) + for arg in cmake_args: + m = pattern.match(arg) + if m: + cmake_lang_flags[m.group(1)].append(m.group(2)) + else: + new_cmake_args.append(arg) + + pprint.pprint(cmake_lang_flags, indent=4, depth=4) + + for (k, v) in cmake_lang_flags.items(): + new_cmake_args.append('-D{}={}'.format(k, ' '.join(v))) + + return new_cmake_args + def _build_project(env, project, cmake_extra, build_tests=False, args_transformer=None, coverage=False): sh = env.shell config = project.get_config(env.spec) @@ -135,6 +159,7 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme # Set compiler flags compiler_flags = [] + c_path = None if toolchain.compiler != 'default' and toolchain.compiler != 'msvc' and not toolchain.cross_compile: c_path = toolchain.compiler_path() cxx_path = toolchain.cxx_compiler_path() @@ -177,6 +202,13 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme else: raise Exception('--coverage only support GCC as compiler. Current compiler is: {}'.format(c_path)) + # If there are multiple of the same -DCMAKE__FLAGS arguments, CMake takes only the last one. + # Since -DCMAKE__FLAGS can be set in multiple places (e.g. in a default config for a specific platform or + # compiler, in a user project's config, in this Python module, etc.), we should merge language flags into one per + # language. + cmake_args = _merge_cmake_lang_flags(cmake_args) + print("=== _build_project: cmake_args: {}".format(cmake_args)) + # Allow caller to programmatically tweak the cmake_args, # as a last resort in case data merging wasn't working out if args_transformer: @@ -199,7 +231,7 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme # build & install sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", - build_config, "--target", "install", working_dir=working_dir, check=True) + build_config, "--verbose", "--target", "install", working_dir=working_dir, check=True) class CMakeBuild(Action): diff --git a/builder/core/data.py b/builder/core/data.py index 078fe19a0..cf9adf6e6 100644 --- a/builder/core/data.py +++ b/builder/core/data.py @@ -509,7 +509,8 @@ class PKG_TOOLS(Enum): 'c': "clang-3.9", 'cxx': "clang++-3.9", # specific version number in use - 'releases': ['3.9'] + 'releases': ['3.9'], + 'cmake_args': ['-DCMAKE_C_FLAGS=-Wno-missing-field-initializers'], }, '6': { 'c': "clang-6.0", From e97ac6b23eaaa3fe64c34449a611ea1b9c14ce23 Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Fri, 7 Jun 2024 16:27:50 -0700 Subject: [PATCH 19/27] Format --- builder/actions/cmake.py | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index 754b2615e..881f55b19 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -124,6 +124,7 @@ def _merge_cmake_lang_flags(cmake_args): return new_cmake_args + def _build_project(env, project, cmake_extra, build_tests=False, args_transformer=None, coverage=False): sh = env.shell config = project.get_config(env.spec) From 05e0e07950b78e25e2222ae409097e3ea41f9736 Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Fri, 7 Jun 2024 16:32:47 -0700 Subject: [PATCH 20/27] Remove verbose arg --- builder/actions/cmake.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index 881f55b19..d48b76213 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -232,7 +232,7 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme # build & install sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", - build_config, "--verbose", "--target", "install", working_dir=working_dir, check=True) + build_config, "--target", "install", working_dir=working_dir, check=True) class CMakeBuild(Action): From b2d8752e60fb69f87861d184476220bc8bb03077 Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Fri, 7 Jun 2024 16:55:53 -0700 Subject: [PATCH 21/27] Add -Wno-extended-offsetof for clang-3 --- builder/core/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/core/data.py b/builder/core/data.py index cf9adf6e6..d2c3d2951 100644 --- a/builder/core/data.py +++ b/builder/core/data.py @@ -510,7 +510,7 @@ class PKG_TOOLS(Enum): 'cxx': "clang++-3.9", # specific version number in use 'releases': ['3.9'], - 'cmake_args': ['-DCMAKE_C_FLAGS=-Wno-missing-field-initializers'], + 'cmake_args': ['-DCMAKE_C_FLAGS="-Wno-missing-field-initializers -Wno-extended-offsetof"'], }, '6': { 'c': "clang-6.0", From e93a246dadb0416bb259ad8d000fa4c3fd91b9cf Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Mon, 10 Jun 2024 10:52:33 -0700 Subject: [PATCH 22/27] Add verbose for linux only --- builder/actions/cmake.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index d48b76213..7cea7a02b 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -231,8 +231,12 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme sh.exec(*toolchain.shell_env, cmake, cmake_args, working_dir=working_dir, check=True) # build & install - sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", - build_config, "--target", "install", working_dir=working_dir, check=True) + if toolchain.host == 'linux': + sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", + build_config, "--verbose", "--target", "install", working_dir=working_dir, check=True) + else: + sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", + build_config, "--target", "install", working_dir=working_dir, check=True) class CMakeBuild(Action): From 9cb753a87e8f946aa52f0a912fe5ce47ea167b42 Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Mon, 10 Jun 2024 10:58:12 -0700 Subject: [PATCH 23/27] Add debug message --- builder/actions/cmake.py | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index 7cea7a02b..f6cb5c46a 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -230,6 +230,7 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme # configure sh.exec(*toolchain.shell_env, cmake, cmake_args, working_dir=working_dir, check=True) + print("=== toolchain.host is {}".format(toolchain.host)) # build & install if toolchain.host == 'linux': sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", From 8bb506f040c551c02a101041d89222754aa60eb8 Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Mon, 10 Jun 2024 11:16:59 -0700 Subject: [PATCH 24/27] fixup --- builder/actions/cmake.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index f6cb5c46a..baa6922ef 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -232,7 +232,7 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme print("=== toolchain.host is {}".format(toolchain.host)) # build & install - if toolchain.host == 'linux': + if toolchain.host == 'ubuntu': sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", build_config, "--verbose", "--target", "install", working_dir=working_dir, check=True) else: From 99c285ab4475619ba3b8624fe9c5367e0cf34889 Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Mon, 10 Jun 2024 13:37:17 -0700 Subject: [PATCH 25/27] fixup --- builder/actions/cmake.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index baa6922ef..45dd0f400 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -189,6 +189,7 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme # as off. Without UniqueList cmake will treat it as on. cmake_args += project.cmake_args(env) cmake_args += cmake_extra + cmake_args += '-DCMAKE_VERBOSE_MAKEFILE=ON' if coverage: if c_path and "gcc" in c_path: # Tell cmake to add coverage related configuration. And make sure GCC is used to compile the project. @@ -232,12 +233,8 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme print("=== toolchain.host is {}".format(toolchain.host)) # build & install - if toolchain.host == 'ubuntu': - sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", - build_config, "--verbose", "--target", "install", working_dir=working_dir, check=True) - else: - sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", - build_config, "--target", "install", working_dir=working_dir, check=True) + sh.exec(*toolchain.shell_env, cmake, "--build", project_build_dir, "--config", + build_config, "--target", "install", working_dir=working_dir, check=True) class CMakeBuild(Action): From af6194cd63730a5e13f49cb4e3328e1fc54b5cec Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Mon, 10 Jun 2024 13:43:56 -0700 Subject: [PATCH 26/27] fixup --- builder/actions/cmake.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/actions/cmake.py b/builder/actions/cmake.py index 45dd0f400..4031aee7d 100644 --- a/builder/actions/cmake.py +++ b/builder/actions/cmake.py @@ -189,7 +189,7 @@ def _build_project(env, project, cmake_extra, build_tests=False, args_transforme # as off. Without UniqueList cmake will treat it as on. cmake_args += project.cmake_args(env) cmake_args += cmake_extra - cmake_args += '-DCMAKE_VERBOSE_MAKEFILE=ON' + cmake_args += ['-DCMAKE_VERBOSE_MAKEFILE=ON'] if coverage: if c_path and "gcc" in c_path: # Tell cmake to add coverage related configuration. And make sure GCC is used to compile the project. From 817c8d8223e81805b92e2d9d186a2fa5c83868ad Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Mon, 10 Jun 2024 15:09:41 -0700 Subject: [PATCH 27/27] Remove -Werror for clang-3 --- builder/core/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/core/data.py b/builder/core/data.py index d2c3d2951..70a507fe9 100644 --- a/builder/core/data.py +++ b/builder/core/data.py @@ -510,7 +510,7 @@ class PKG_TOOLS(Enum): 'cxx': "clang++-3.9", # specific version number in use 'releases': ['3.9'], - 'cmake_args': ['-DCMAKE_C_FLAGS="-Wno-missing-field-initializers -Wno-extended-offsetof"'], + 'cmake_args': ['-DAWS_WARNINGS_ARE_ERRORS=OFF'], }, '6': { 'c': "clang-6.0",