llvm-general 3.2.0.7 → 3.2.0.8
raw patch · 2 files changed
+34/−11 lines, 2 filessetup-changed
Files
- Setup.hs +32/−9
- llvm-general.cabal +2/−2
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