scons: Recognize LLVM_CONFIG environment variable.
authorVinson Lee <vlee@freedesktop.org>
Wed, 23 Nov 2016 01:01:35 +0000 (17:01 -0800)
committerVinson Lee <vlee@freedesktop.org>
Thu, 24 Nov 2016 21:37:33 +0000 (13:37 -0800)
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
common.py
scons/llvm.py
src/gallium/drivers/swr/SConscript

index 704ad2e4d58db6b0fb891e23699ca9a6de9c462f..24a7e8a611df56620955ca84d468e26cddc510b0 100644 (file)
--- a/common.py
+++ b/common.py
@@ -59,7 +59,7 @@ if target_platform == 'windows' and host_platform != 'windows':
 
 
 # find default_llvm value
-if 'LLVM' in os.environ:
+if 'LLVM' in os.environ or 'LLVM_CONFIG' in os.environ:
     default_llvm = 'yes'
 else:
     default_llvm = 'no'
index 977e47a8e1933aab16ed620a550fa53434648f40..2d0f05b02797e6254c994f97b3e6beacdae63340 100644 (file)
@@ -194,11 +194,12 @@ def generate(env):
                 # that.
                 env.Append(LINKFLAGS = ['/nodefaultlib:LIBCMT'])
     else:
-        if not env.Detect('llvm-config'):
-            print 'scons: llvm-config script not found'
+        llvm_config = os.environ.get('LLVM_CONFIG', 'llvm-config')
+        if not env.Detect(llvm_config):
+            print 'scons: %s script not found' % llvm_config
             return
 
-        llvm_version = env.backtick('llvm-config --version').rstrip()
+        llvm_version = env.backtick('%s --version' % llvm_config).rstrip()
         llvm_version = distutils.version.LooseVersion(llvm_version)
 
         if llvm_version < distutils.version.LooseVersion(required_llvm_version):
@@ -208,7 +209,7 @@ def generate(env):
         try:
             # Treat --cppflags specially to prevent NDEBUG from disabling
             # assertion failures in debug builds.
-            cppflags = env.ParseFlags('!llvm-config --cppflags')
+            cppflags = env.ParseFlags('!%s --cppflags' % llvm_config)
             try:
                 cppflags['CPPDEFINES'].remove('NDEBUG')
             except ValueError:
@@ -216,16 +217,16 @@ def generate(env):
             env.MergeFlags(cppflags)
 
             # Match llvm --fno-rtti flag
-            cxxflags = env.backtick('llvm-config --cxxflags').split()
+            cxxflags = env.backtick('%s --cxxflags' % llvm_config).split()
             if '-fno-rtti' in cxxflags:
                 env.Append(CXXFLAGS = ['-fno-rtti'])
 
             components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter', 'mcdisassembler', 'irreader']
 
-            env.ParseConfig('llvm-config --libs ' + ' '.join(components))
-            env.ParseConfig('llvm-config --ldflags')
+            env.ParseConfig('%s --libs ' % llvm_config + ' '.join(components))
+            env.ParseConfig('%s --ldflags' % llvm_config)
             if llvm_version >= distutils.version.LooseVersion('3.5'):
-                env.ParseConfig('llvm-config --system-libs')
+                env.ParseConfig('%s --system-libs' % llvm_config)
                 env.Append(CXXFLAGS = ['-std=c++11'])
         except OSError:
             print 'scons: llvm-config version %s failed' % llvm_version
index 0de51a791693d56c333cbac5ae6743f4ad507a3b..3f0517b36cf96eebd8f6f697a8f38e62702a6ae9 100644 (file)
@@ -31,7 +31,8 @@ if env['platform'] == 'windows':
     # on windows there is no llvm-config, so LLVM is defined
     llvm_includedir = os.path.join(os.environ['LLVM'], 'include')
 else:
-    llvm_includedir = env.backtick('llvm-config --includedir').rstrip()
+    llvm_config = os.environ.get('LLVM_CONFIG', 'llvm-config')
+    llvm_includedir = env.backtick('%s --includedir' % llvm_config).rstrip()
     print "llvm include dir %s" % llvm_includedir
 
 # the loader is included in the mesa lib itself