shake-ats 1.10.3.0 → 1.10.4.0
raw patch · 3 files changed
+20/−5 lines, 3 filesdep +cdepsdep ~language-ats
Dependencies added: cdeps
Dependency ranges changed: language-ats
Files
- CHANGELOG.md +4/−0
- shake-ats.cabal +4/−3
- src/Development/Shake/ATS.hs +12/−2
CHANGELOG.md view
@@ -1,5 +1,9 @@ # shake-ats +## 1.10.4.0++ * Track C dependencies as well.+ ## 1.10.3.0 * Don't copy files to `$PATSHOME`
shake-ats.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: shake-ats-version: 1.10.3.0+version: 1.10.4.0 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2018-2019 Vanessa McHale@@ -41,7 +41,7 @@ ghc-options: -Wall build-depends: base >=4.9 && <5,- language-ats -any,+ language-ats >=1.7.7.0, shake-ext >=3.0.0.0, hs2ats >=0.5.0.0, directory -any,@@ -51,7 +51,8 @@ shake >=0.14, binary -any, shake-cabal -any,- shake-c >=0.4.0.0+ shake-c >=0.4.0.0,+ cdeps >=0.1.3.0 if flag(development) ghc-options: -Werror
src/Development/Shake/ATS.hs view
@@ -49,6 +49,7 @@ import Development.Shake.FilePath import Development.Shake.Version import Language.ATS+import Language.C.Dependency (getIncludesStr) import System.Directory (doesFileExist) import System.Environment (getEnv) import System.Exit (ExitCode (ExitSuccess))@@ -231,6 +232,15 @@ let (ats, err) = (fromRight mempty &&& id) . parseM $ contents maybeError p err let dir = takeDirectory p- deps <- filterM (\f -> ((f `elem` gen) ||) <$> (liftIO . doesFileExist) f) $ fixDir dir . trim <$> getDependencies ats+ let (atsDeps, cBlocks) = getDependenciesC ats+ let preCDeps = cIncls cBlocks+ cDeps <- foldMapA (getAll ["."]) preCDeps+ deps <- filterM existsAndNotGen $ fixDir dir . trim <$> atsDeps deps' <- transitiveDeps gen deps- pure $ (p:deps) ++ deps'+ pure $ (p:deps) ++ deps' ++ preCDeps ++ cDeps++ where existsAndNotGen f = liftIO $+ do { b <- doesFileExist f ; pure (f `elem` gen || b) }+ cIncls cBlocks = concat $ fromRight [] $+ traverse getIncludesStr cBlocks+ foldMapA = (fmap fold .) . traverse