On 27/04/15 11:23, olivier.pena...@gmail.com wrote:
From: Olivier Pena <op...@isagri.fr>

llvm/Config/llvm-config.h is parsed instead of llvm/Config/config.h for 
detecting LLVM version 
(http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/073707.html)
---
  scons/llvm.py | 33 ++++++++++++++++++++++++++-------
  1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/scons/llvm.py b/scons/llvm.py
index be7df9f..6c6b733 100644
--- a/scons/llvm.py
+++ b/scons/llvm.py
@@ -72,18 +72,25 @@ def generate(env):
              return

          # Try to determine the LLVM version from llvm/Config/config.h
-        llvm_config = os.path.join(llvm_dir, 'include/llvm/Config/config.h')
+        llvm_config = os.path.join(llvm_dir, 
'include/llvm/Config/llvm-config.h')

          if not os.path.exists(llvm_config):

We must keep supporting down to LLVM version 3.3, so the patch needs to be updated re-try with config.h (and the old regular expressions) when llvm-config.h does not exist.

              print 'scons: could not find %s' % llvm_config
              return
-        llvm_version_re = re.compile(r'^#define PACKAGE_VERSION "([^"]*)"')
+        llvm_version_major_re = re.compile(r'^#define LLVM_VERSION_MAJOR 
([0-9]+)')
+        llvm_version_minor_re = re.compile(r'^#define LLVM_VERSION_MINOR 
([0-9]+)')
          llvm_version = None
+        llvm_version_major = None
+        llvm_version_minor = None
          for line in open(llvm_config, 'rt'):
-            mo = llvm_version_re.match(line)
+            mo = llvm_version_major_re.match(line)
              if mo:
-                llvm_version = mo.group(1)
-                llvm_version = distutils.version.LooseVersion(llvm_version)
-                break
+                llvm_version_major = mo.group(1)
+            mo = llvm_version_minor_re.match(line)
+            if mo:
+                llvm_version_minor = mo.group(1)
+        if (llvm_version_major is not None) and (llvm_version_minor is not 
None):
+            llvm_version = 
distutils.version.LooseVersion('{0}.{1}'.format(llvm_version_major, 
llvm_version_minor))
+
          if llvm_version is None:
              print 'scons: could not determine the LLVM version from %s' % 
llvm_config
              return
@@ -99,7 +106,19 @@ def generate(env):
          ])
          env.Prepend(LIBPATH = [os.path.join(llvm_dir, 'lib')])
          # LIBS should match the output of `llvm-config --libs engine mcjit 
bitwriter x86asmprinter`
-        if llvm_version >= distutils.version.LooseVersion('3.5'):
+        if llvm_version >= distutils.version.LooseVersion('3.6'):
+            env.Prepend(LIBS = [
+                'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
+                'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
+                'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMProfileData',
+                'LLVMInstCombine', 'LLVMTransformUtils', 'LLVMipa',
+                'LLVMAnalysis', 'LLVMX86Desc', 'LLVMMCDisassembler',
+                'LLVMX86Info', 'LLVMX86AsmPrinter', 'LLVMX86Utils',
+                'LLVMMCJIT', 'LLVMTarget', 'LLVMExecutionEngine',
+                'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
+                'LLVMBitReader', 'LLVMMC', 'LLVMCore', 'LLVMSupport'

Is there any actual change in the LIBS content? Just for my info, what is it?

Jose

+            ])
+        elif llvm_version >= distutils.version.LooseVersion('3.5'):
              env.Prepend(LIBS = [
                  'LLVMBitWriter', 'LLVMMCJIT', 'LLVMRuntimeDyld',
                  'LLVMX86Disassembler', 'LLVMX86AsmParser', 'LLVMX86CodeGen',


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to