packages feed

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 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