packages feed

llvm-general 3.2.0.7 → 3.2.0.8

raw patch · 2 files changed

+34/−11 lines, 2 filessetup-changed

Files

Setup.hs view
@@ -5,24 +5,49 @@ import Data.List (isPrefixOf, (\\), intercalate, stripPrefix) import Data.Map (Map) import qualified Data.Map as Map+import Data.Char import Distribution.Simple import Distribution.Simple.Program import Distribution.Simple.Setup hiding (Flag) import Distribution.Simple.LocalBuildInfo import Distribution.PackageDescription+import Distribution.Version import System.Environment import System.SetEnv import Distribution.System -- -- define these selectively in C files (where _not_ using HsFFI.h), -- rather than universally in the ccOptions, because HsFFI.h currently defines them -- without checking they're already defined and so causes warnings. uncheckedHsFFIDefines = ["__STDC_LIMIT_MACROS"] -llvmProgram = simpleProgram "llvm-config"+llvmVersion = Version [3,2] [] +llvmConfigNames = [+  "llvm-config-" ++ (intercalate "." . map show . versionBranch $ llvmVersion),+  "llvm-config"+ ]++llvmProgram = (simpleProgram "llvm-config") {+  programFindLocation = +    let+      findJustBy :: Monad m => (a -> m (Maybe b)) -> [a] -> m (Maybe b)+      findJustBy f (x:xs) = do+        x' <- f x+        case x' of+          Nothing -> findJustBy f xs+          j -> return j+    in +      \v -> findJustBy (findProgramLocation v) llvmConfigNames,+  programFindVersion = +    let+      stripSuffix suf str = let r = reverse in liftM r (stripPrefix (r suf) (r str))+      svnToTag v = maybe v (++"-svn") (stripSuffix "svn" v)+      trim = dropWhile isSpace . reverse . dropWhile isSpace . reverse+    in+      \v p -> findProgramVersion "--version" (svnToTag . trim) v p+ }+ main = do   let (ldLibraryPathVar, ldLibraryPathSep) =          case buildOS of@@ -33,13 +58,11 @@          setEnv ldLibraryPathVar (s ++ either (const "") (ldLibraryPathSep ++) v)       getLLVMConfig configFlags = do          let verbosity = fromFlag $ configVerbosity configFlags-         -- preconfigure the configuration-generating program "llvm-config"-         programDb <- configureProgram verbosity llvmProgram-                      . userSpecifyPaths (configProgramPaths configFlags)-                      . userSpecifyArgss (configProgramArgs configFlags)-                      $ configPrograms configFlags+         (program, _, _) <- requireProgramVersion verbosity llvmProgram+                            (withinVersion llvmVersion)+                            (configPrograms configFlags)          let llvmConfig :: [String] -> IO String-             llvmConfig = getDbProgramOutput verbosity llvmProgram programDb+             llvmConfig = getProgramOutput verbosity program          return llvmConfig       addLLVMToLdLibraryPath configFlags = do         llvmConfig <- getLLVMConfig configFlags
llvm-general.cabal view
@@ -1,5 +1,5 @@ name: llvm-general-version: 3.2.0.7+version: 3.2.0.8 license: BSD3 license-file: LICENSE author: Benjamin S.Scarlet <fgthb0@greynode.net>@@ -33,7 +33,7 @@   type: git   location: git://github.com/bscarlet/llvm-general.git   branch: llvm-3.2-  tag: v3.2.0.7+  tag: v3.2.0.8  flag shared-llvm   description: link against llvm shared rather than static library