shake-c 0.4.1.0 → 0.4.2.0
raw patch · 3 files changed
+16/−28 lines, 3 files
Files
- CHANGELOG.md +4/−0
- shake-c.cabal +1/−1
- src/Development/Shake/C.hs +11/−27
CHANGELOG.md view
@@ -1,5 +1,9 @@ # shake-c +## 0.4.2.0++ * Do not use oracles; they cause problems+ ## 0.4.1.0 * Add `idOracle`
shake-c.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: shake-c-version: 0.4.1.0+version: 0.4.2.0 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2018-2019 Vanessa McHale
src/Development/Shake/C.hs view
@@ -7,7 +7,7 @@ -- libraries, and dynamic libraries. module Development.Shake.C ( -- * Types CConfig (..)- , CCompiler (..) -- (ICC, GCC, Clang, GHC, Other, GCCStd, GHCStd, CompCert)+ , CCompiler (..) -- * Rules , staticLibR , sharedLibR@@ -190,14 +190,10 @@ -> FilePattern -- ^ Shared object file to be generated. -> CConfig -> Rules ()-dynLibR cc objFiles shLib cfg = do- ccOracle <- idOracle- cconfOracle <- idOracle+dynLibR cc objFiles shLib cfg = shLib %> \out -> do need objFiles- cc' <- ccOracle cc- cfg' <- cconfOracle cfg- command [EchoStderr False] (ccToString cc') ("-shared" : "-o" : out : objFiles ++ cconfigToArgs cfg')+ command [EchoStderr False] (ccToString cc) ("-shared" : "-o" : out : objFiles ++ cconfigToArgs cfg) -- | These rules build an object file from a C source file. objectFileR :: CCompiler@@ -205,14 +201,10 @@ -> FilePath -- ^ C source file -> FilePattern -- ^ Object file output -> Rules ()-objectFileR cc cfg srcFile objFile = do- ccOracle <- idOracle- cconfOracle <- idOracle+objectFileR cc cfg srcFile objFile = objFile %> \out -> do need [srcFile]- cc' <- ccOracle cc- cfg' <- cconfOracle cfg- command [EchoStderr False] (ccToString cc') (srcFile : "-c" : "-fPIC" : "-o" : out : cconfigToArgs cfg')+ command [EchoStderr False] (ccToString cc) (srcFile : "-c" : "-fPIC" : "-o" : out : cconfigToArgs cfg) sharedLibA :: CmdResult r => CCompiler@@ -239,23 +231,15 @@ -> FilePattern -- ^ File pattern for shared library outputs -> CConfig -> Rules ()-sharedLibR cc objFiles shrLib cfg = do- ccOracle <- idOracle- cconfOracle <- idOracle- shrLib %> \out -> do- cc' <- ccOracle cc- cfg' <- cconfOracle cfg- sharedLibA cc' objFiles out cfg'+sharedLibR cc objFiles shrLib cfg =+ shrLib %> \out ->+ sharedLibA cc objFiles out cfg staticLibR :: CCompiler -> [FilePath] -- ^ Object files to be linked -> FilePattern -- ^ File pattern for static library outputs -> CConfig -> Rules ()-staticLibR ar objFiles stalib cfg = do- ccOracle <- idOracle- cconfOracle <- idOracle- stalib %> \out -> do- ar' <- ccOracle ar- cfg' <- cconfOracle cfg- staticLibA ar' objFiles out cfg'+staticLibR ar objFiles stalib cfg =+ stalib %> \out ->+ staticLibA ar objFiles out cfg