blob: cca5bf88f02c0611a5db60381493582bac9813d4 [file]
#!/usr/bin/env python
#
# Copyright 2026 Google LLC
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Checks whether a compiler supports a given flag.
# Prints "true" or "false" to stdout for consumption by GN's exec_script().
import os
import shlex
import subprocess
import sys
def main():
if len(sys.argv) != 3:
print("false")
return
compiler = sys.argv[1]
flag = sys.argv[2]
compiler_cmd = shlex.split(compiler, posix=(os.name != 'nt'))
cmd = compiler_cmd + ['-Werror', flag, '-fsyntax-only', '-x', 'c++', os.devnull]
try:
subprocess.check_call(
cmd,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
timeout=10,
)
print("true")
except (subprocess.CalledProcessError, subprocess.TimeoutExpired, OSError):
print("false")
if __name__ == '__main__':
main()