Check for clang with an actual code check.
authorDavid Robillard <d@drobilla.net>
Tue, 25 Nov 2014 07:20:21 +0000 (02:20 -0500)
committerDavid Robillard <d@drobilla.net>
Tue, 25 Nov 2014 07:20:21 +0000 (02:20 -0500)
Turns out Apple in its infinite wisdom installs clang as /usr/bin/g++, so
guessing based on executable name doesn't work.

wscript

diff --git a/wscript b/wscript
index 275dfdfecca533ae8926e128851792ac3f55fe08..7e7e65489d9a09b6a2305d99134e4e099e025710 100644 (file)
--- a/wscript
+++ b/wscript
@@ -148,8 +148,16 @@ def set_compiler_flags (conf,opt):
     version = u[2]
 
     # waf adds -O0 -g itself. thanks waf!
-    is_clang = 'clang++' in conf.env['CXX'][0]
-    
+    is_clang = conf.check_cxx(fragment = '''
+#ifndef __clang__
+#error
+#endif
+int main() { return 0; }''',
+                         features  = 'cxx',
+                         mandatory = False,
+                         execute   = False,
+                         msg       = 'Checking for clang')
+
     if conf.options.asan:
         conf.check_cxx(cxxflags=["-fsanitize=address", "-fno-omit-frame-pointer"], linkflags=["-fsanitize=address"])
         cxx_flags.append('-fsanitize=address')