hlibsass 0.1.5.1 → 0.1.5.2
raw patch · 3 files changed
+48/−41 lines, 3 filessetup-changedPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +5/−0
- Setup.hs +42/−40
- hlibsass.cabal +1/−1
CHANGELOG.md view
@@ -1,6 +1,10 @@ # Change Log All notable changes to this project will be documented in this file. +## [0.1.5.2] - 2017-03-19+### Fixed+- Build process for dependant libraries works with Cabal 1.24 & Stack 1.4+ ## [0.1.5.0] - 2015-12-19 ### Added - Bindings to `sass_value_op`, `sass_import_get_imp_path` and@@ -59,6 +63,7 @@ - Bindings to Libsass C API - Basic tests +[0.1.5.2]: https://github.com/jakubfijalkowski/hlibsass/compare/v0.1.5.0...v0.1.5.2 [0.1.5.0]: https://github.com/jakubfijalkowski/hlibsass/compare/v0.1.4.0...v0.1.5.0 [0.1.4.0]: https://github.com/jakubfijalkowski/hlibsass/compare/v0.1.3.0...v0.1.4.0 [0.1.3.0]: https://github.com/jakubfijalkowski/hlibsass/compare/v0.1.2.1...v0.1.3.0
Setup.hs view
@@ -18,11 +18,13 @@ main = defaultMainWithHooks hooksFix where hooks = simpleUserHooks {- preConf = \a f -> makeLibsass a f >> preConf simpleUserHooks a f- , confHook = \a f -> confHook simpleUserHooks a f >>= updateExtraLibDirs+ preConf = makeLibsass+ , confHook = (\a f -> confHook simpleUserHooks a f >>= updateExtraLibDirs)+ , postConf = disablePostConfHooks+ , preBuild = updateLibDirs , postCopy = copyLibsass , postClean = cleanLibsass- , preSDist = \a f -> (updateLibsassVersion a f >> preSDist simpleUserHooks a f)+ , preSDist = updateLibsassVersion } -- Fix for Cabal-1.18 - it does not `copy` on `install`, so we `copy` on -- `install` manually. ;)@@ -30,43 +32,51 @@ then hooks { postInst = installLibsass } else hooks -makeLibsass :: Args -> ConfigFlags -> IO ()-makeLibsass _ f =+makeLibsass :: Args -> ConfigFlags -> IO HookedBuildInfo+makeLibsass _ f = do let verbosity = fromFlag $ configVerbosity f external = getCabalFlag "externalLibsass" f target = if getCabalFlag "sharedLibsass" f then "shared" else "static"- in unless external $ rawSystemExit verbosity "env"+ unless external $ rawSystemExit verbosity "env" ["BUILD=" ++ target, "make", "--directory=libsass"]+ return emptyHookedBuildInfo +disablePostConfHooks :: Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()+disablePostConfHooks args flags pd lbi+ | getCabalFlag "externalLibsass" flags = postConf simpleUserHooks args flags pd lbi+ | otherwise = return ()++updateLibDirs :: Args -> BuildFlags -> IO HookedBuildInfo+updateLibDirs _ _ = do+ dir <- getCurrentDirectory+ let libsassDir = dir ++ "/libsass/lib"+ bi = emptyBuildInfo { extraLibDirs = [ libsassDir ] }+ return (Just bi, [])+ updateExtraLibDirs :: LocalBuildInfo -> IO LocalBuildInfo updateExtraLibDirs lbi | getCabalFlag "externalLibsass" $ configFlags lbi = return lbi | otherwise = do- let packageDescription = localPkgDescr lbi- lib = fromJust $ library packageDescription+ let pkg_descr = localPkgDescr lbi+ lib = fromJust $ library pkg_descr libBuild = libBuildInfo lib- dir <- getCurrentDirectory+ libPref = libdir $ absoluteInstallDirs pkg_descr lbi NoCopyDest return lbi {- localPkgDescr = packageDescription {+ localPkgDescr = pkg_descr { library = Just $ lib { libBuildInfo = libBuild {- extraLibDirs = (dir ++ "/libsass/lib") :- extraLibDirs libBuild+ extraLibDirs = libPref : extraLibDirs libBuild } } } } -copyLibsass :: Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()-copyLibsass _ flags pkg_descr lbi =- let libPref = libdir . absoluteInstallDirs pkg_descr lbi- . fromFlag . copyDest- $ flags- verb = fromFlag $ copyVerbosity flags- config = configFlags lbi- external = getCabalFlag "externalLibsass" config+copyLib :: ConfigFlags -> LocalBuildInfo -> FilePath -> IO ()+copyLib fl lbi libPref =+ let verb = fromFlag $ configVerbosity fl+ external = getCabalFlag "externalLibsass" fl Platform _ os = hostPlatform lbi- shared = getCabalFlag "sharedLibsass" config+ shared = getCabalFlag "sharedLibsass" fl ext = if shared then "so" else "a" in unless external $ if os == Windows@@ -82,40 +92,32 @@ ("libsass/lib/libsass." ++ ext) (libPref ++ "/libsass." ++ ext) +copyLibsass :: Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()+copyLibsass _ flags pkg_descr lbi =+ let libPref = libdir . absoluteInstallDirs pkg_descr lbi+ . fromFlag . copyDest+ $ flags+ config = configFlags lbi+ in copyLib config lbi libPref+ installLibsass :: Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO () installLibsass _ flags pkg_descr lbi = let libPref = libdir $ absoluteInstallDirs pkg_descr lbi NoCopyDest- verb = fromFlag $ installVerbosity flags config = configFlags lbi- external = getCabalFlag "externalLibsass" config- Platform _ os = hostPlatform lbi- shared = getCabalFlag "sharedLibsass" config- ext = if shared then "so" else "a"- in unless external $- if os == Windows- then do- installExecutableFile verb- "libsass/lib/libsass.a"- (libPref ++ "/libsass.a")- when shared $ installExecutableFile verb- "libsass/lib/libsass.dll"- (libPref ++ "/libsass.dll")- else- installExecutableFile verb- ("libsass/lib/libsass." ++ ext)- (libPref ++ "/libsass." ++ ext)+ in copyLib config lbi libPref cleanLibsass :: Args -> CleanFlags -> PackageDescription -> () -> IO () cleanLibsass _ flags _ _ = rawSystemExit (fromFlag $ cleanVerbosity flags) "env" ["make", "--directory=libsass", "clean"] -updateLibsassVersion :: Args -> SDistFlags -> IO ()+updateLibsassVersion :: Args -> SDistFlags -> IO HookedBuildInfo updateLibsassVersion _ flags = do let verbosity = fromFlag $ sDistVerbosity flags ver <- rawSystemStdout verbosity "env" [ "git", "-C", "libsass", "describe", "--abbrev=4", "--dirty", "--always", "--tags" ] writeFile "libsass/VERSION" ver+ return emptyHookedBuildInfo getCabalFlag :: String -> ConfigFlags -> Bool getCabalFlag name flags = fromMaybe False (lookup (FlagName name') allFlags)
hlibsass.cabal view
@@ -1,5 +1,5 @@ name: hlibsass-version: 0.1.5.1+version: 0.1.5.2 license: MIT license-file: LICENSE author: Jakub Fijałkowski <fiolek94@gmail.com>