Use Fuchsia Clang toolchain distribution on Linux This is needed to ensure that the host compiler has C++14 support. Change-Id: I42de5d0e2552032d043e50dd69875ed99d827a78 Reviewed-on: https://gn-review.googlesource.com/1400 Reviewed-by: Scott Graham <scottmg@chromium.org>
diff --git a/infra/recipes/gn.expected/ci_linux.json b/infra/recipes/gn.expected/ci_linux.json index a9265a5..81f6cb2 100644 --- a/infra/recipes/gn.expected/ci_linux.json +++ b/infra/recipes/gn.expected/ci_linux.json
@@ -49,7 +49,7 @@ "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2", + "fuchsia/clang/${platform} goma\ninfra/ninja/${platform} version:1.8.2", "-json-output", "/path/to/tmp/json" ], @@ -60,6 +60,10 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-goma------------\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/${platform}\"@@@", + "@@@STEP_LOG_LINE@json.output@ }, @@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/ninja/${platform}\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", @@ -80,10 +84,11 @@ "[START_DIR]/gn/build/gen.py" ], "cwd": "[START_DIR]/gn", - "env_prefixes": { - "PATH": [ - "[START_DIR]/cipd" - ] + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-static-libstdc++ -ldl -lpthread" }, "name": "build.generate", "~followup_annotations": [ @@ -96,11 +101,6 @@ "-C", "[START_DIR]/gn/out" ], - "env_prefixes": { - "PATH": [ - "[START_DIR]/cipd" - ] - }, "name": "build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/infra/recipes/gn.expected/ci_mac.json b/infra/recipes/gn.expected/ci_mac.json index a9265a5..7619c6f 100644 --- a/infra/recipes/gn.expected/ci_mac.json +++ b/infra/recipes/gn.expected/ci_mac.json
@@ -80,11 +80,6 @@ "[START_DIR]/gn/build/gen.py" ], "cwd": "[START_DIR]/gn", - "env_prefixes": { - "PATH": [ - "[START_DIR]/cipd" - ] - }, "name": "build.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" @@ -96,11 +91,6 @@ "-C", "[START_DIR]/gn/out" ], - "env_prefixes": { - "PATH": [ - "[START_DIR]/cipd" - ] - }, "name": "build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/infra/recipes/gn.expected/ci_win.json b/infra/recipes/gn.expected/ci_win.json index 0a3d7b5..b78f9ae 100644 --- a/infra/recipes/gn.expected/ci_win.json +++ b/infra/recipes/gn.expected/ci_win.json
@@ -80,11 +80,6 @@ "[START_DIR]\\gn\\build\\gen.py" ], "cwd": "[START_DIR]\\gn", - "env_prefixes": { - "PATH": [ - "[START_DIR]\\cipd" - ] - }, "name": "build.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" @@ -96,11 +91,6 @@ "-C", "[START_DIR]\\gn\\out" ], - "env_prefixes": { - "PATH": [ - "[START_DIR]\\cipd" - ] - }, "name": "build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/infra/recipes/gn.expected/cq_linux.json b/infra/recipes/gn.expected/cq_linux.json index e5dd9d4..4fe3e09 100644 --- a/infra/recipes/gn.expected/cq_linux.json +++ b/infra/recipes/gn.expected/cq_linux.json
@@ -76,7 +76,7 @@ "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2", + "fuchsia/clang/${platform} goma\ninfra/ninja/${platform} version:1.8.2", "-json-output", "/path/to/tmp/json" ], @@ -87,6 +87,10 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-goma------------\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/${platform}\"@@@", + "@@@STEP_LOG_LINE@json.output@ }, @@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/ninja/${platform}\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", @@ -107,10 +111,11 @@ "[START_DIR]/gn/build/gen.py" ], "cwd": "[START_DIR]/gn", - "env_prefixes": { - "PATH": [ - "[START_DIR]/cipd" - ] + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-static-libstdc++ -ldl -lpthread" }, "name": "build.generate", "~followup_annotations": [ @@ -123,11 +128,6 @@ "-C", "[START_DIR]/gn/out" ], - "env_prefixes": { - "PATH": [ - "[START_DIR]/cipd" - ] - }, "name": "build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/infra/recipes/gn.expected/cq_mac.json b/infra/recipes/gn.expected/cq_mac.json index e5dd9d4..2f59a09 100644 --- a/infra/recipes/gn.expected/cq_mac.json +++ b/infra/recipes/gn.expected/cq_mac.json
@@ -107,11 +107,6 @@ "[START_DIR]/gn/build/gen.py" ], "cwd": "[START_DIR]/gn", - "env_prefixes": { - "PATH": [ - "[START_DIR]/cipd" - ] - }, "name": "build.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" @@ -123,11 +118,6 @@ "-C", "[START_DIR]/gn/out" ], - "env_prefixes": { - "PATH": [ - "[START_DIR]/cipd" - ] - }, "name": "build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/infra/recipes/gn.expected/cq_win.json b/infra/recipes/gn.expected/cq_win.json index 70f96ab..d8da1a0 100644 --- a/infra/recipes/gn.expected/cq_win.json +++ b/infra/recipes/gn.expected/cq_win.json
@@ -107,11 +107,6 @@ "[START_DIR]\\gn\\build\\gen.py" ], "cwd": "[START_DIR]\\gn", - "env_prefixes": { - "PATH": [ - "[START_DIR]\\cipd" - ] - }, "name": "build.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" @@ -123,11 +118,6 @@ "-C", "[START_DIR]\\gn\\out" ], - "env_prefixes": { - "PATH": [ - "[START_DIR]\\cipd" - ] - }, "name": "build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/infra/recipes/gn.py b/infra/recipes/gn.py index 8268374..9c7bf33 100644 --- a/infra/recipes/gn.py +++ b/infra/recipes/gn.py
@@ -43,17 +43,31 @@ packages = { 'infra/ninja/${platform}': 'version:1.8.2', } + packages.update({ + 'linux': { + 'fuchsia/clang/${platform}': 'goma', + }, + 'mac': {}, + 'win': {}, + }[api.platform.name]) api.cipd.ensure(cipd_dir, packages) - with api.step.nest('build'): - with api.context(env_prefixes={'PATH': [cipd_dir]}, cwd=src_dir): - api.python( - 'generate', - src_dir.join('build', 'gen.py')) + environ = { + 'linux': { + 'CC': cipd_dir.join('bin', 'clang'), + 'CXX': cipd_dir.join('bin', 'clang++'), + 'AR': cipd_dir.join('bin', 'llvm-ar'), + 'LDFLAGS': '-static-libstdc++ -ldl -lpthread', + }, + 'mac': {}, + 'win': {}, + }[api.platform.name] - with api.context(env_prefixes={'PATH': [cipd_dir]}): - api.step('ninja', - ['ninja', '-C', src_dir.join('out')]) + with api.step.nest('build'): + with api.context(env=environ, cwd=src_dir): + api.python('generate', src_dir.join('build', 'gen.py')) + + api.step('ninja', ['ninja', '-C', src_dir.join('out')]) with api.context(cwd=src_dir): api.step('test', [src_dir.join('out', 'gn_unittests')])