diff options
author | Daniel Gröber <dxld@darkboxed.org> | 2018-10-13 20:12:31 +0200 |
---|---|---|
committer | Daniel Gröber <dxld@darkboxed.org> | 2018-10-26 04:33:07 +0200 |
commit | f071b83fd84ebfdaa3444b202afd38061016a9df (patch) | |
tree | 97ee1527a51a2e28da0ee4e0d9e4df627dfc59e8 /src/CabalHelper | |
parent | fbbb3590c7f6eca69a5c77a5215c29363595cd0d (diff) |
Include source hash in helper binary output path
Diffstat (limited to 'src/CabalHelper')
-rw-r--r-- | src/CabalHelper/Compiletime/Compile.hs | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/CabalHelper/Compiletime/Compile.hs b/src/CabalHelper/Compiletime/Compile.hs index 2b80b2f..305c11c 100644 --- a/src/CabalHelper/Compiletime/Compile.hs +++ b/src/CabalHelper/Compiletime/Compile.hs @@ -75,7 +75,7 @@ data Compile } data CompPaths = CompPaths - { compSrcDir :: FilePath + { compBuildDir:: FilePath , compOutDir :: FilePath , compExePath :: FilePath } @@ -93,7 +93,7 @@ compileHelper -> Maybe (PlanJson, FilePath) -> FilePath -> IO (Either ExitCode FilePath) -compileHelper opts hdrCabalVersion projdir mnewstyle distdir = do +compileHelper opts hdrCabalVersion projdir mnewstyle cachedir = do let ?opts = opts ghcVer <- ghcVersion @@ -112,7 +112,7 @@ compileHelper opts hdrCabalVersion projdir mnewstyle distdir = do appdir <- appCacheDir - let cp@CompPaths {compExePath} = compPaths appdir distdir comp + let cp@CompPaths {compExePath} = compPaths appdir cachedir comp exists <- doesFileExist compExePath if exists then do @@ -175,7 +175,7 @@ compileHelper opts hdrCabalVersion projdir mnewstyle distdir = do db_exists <- liftIO $ cabalVersionExistsInPkgDb hdrCabalVersion db when (not db_exists) $ void $ installCabal (Right hdrCabalVersion) `E.catch` - \(SomeException _) -> errorInstallCabal hdrCabalVersion distdir + \(SomeException _) -> errorInstallCabal hdrCabalVersion cachedir -- | See if we're in a cabal source tree compileCabalSource :: Env => MaybeT IO (IO (), Compile) @@ -219,30 +219,30 @@ compileHelper opts hdrCabalVersion projdir mnewstyle distdir = do compile :: Env => Compile -> CompPaths -> IO (Either ExitCode FilePath) compile comp paths@CompPaths {..} = do createDirectoryIfMissing True compOutDir - createHelperSources compSrcDir + createHelperSources compBuildDir - vLog $ "compSrcDir: " ++ compSrcDir + vLog $ "compBuildDir: " ++ compBuildDir vLog $ "compOutDir: " ++ compOutDir vLog $ "compExePath: " ++ compExePath invokeGhc $ compGhcInvocation comp paths compPaths :: FilePath -> FilePath -> Compile -> CompPaths -compPaths appdir distdir c = +compPaths appdir cachedir c = case c of CompileWithCabalPackage {compProductTarget=CPSGlobal,..} -> CompPaths {..} where - compSrcDir = appdir </> exeName compCabalVersion <.> "build" - compOutDir = compSrcDir - compExePath = appdir </> exeName compCabalVersion + compBuildDir = appdir </> sourceHash <.> "build" + compOutDir = compBuildDir + compExePath = compBuildDir </> "cabal-helper" - CompileWithCabalPackage {compProductTarget=CPSProject,..} -> distdirPaths - CompileWithCabalSource {..} -> distdirPaths + CompileWithCabalPackage {compProductTarget=CPSProject,..} -> cachedirPaths + CompileWithCabalSource {..} -> cachedirPaths where - distdirPaths = CompPaths {..} + cachedirPaths = CompPaths {..} where - compSrcDir = distdir </> "cabal-helper" - compOutDir = compSrcDir + compBuildDir = cachedir </> "cabal-helper" + compOutDir = compBuildDir compExePath = compOutDir </> "cabal-helper" data GhcInvocation = GhcInvocation @@ -262,7 +262,7 @@ compGhcInvocation comp CompPaths {..} = case comp of CompileWithCabalSource {..} -> GhcInvocation - { giIncludeDirs = [compSrcDir, unCabalSourceDir compCabalSourceDir] + { giIncludeDirs = [compBuildDir, unCabalSourceDir compCabalSourceDir] , giPackageDBs = [] , giHideAllPackages = False , giPackages = [] @@ -272,7 +272,7 @@ compGhcInvocation comp CompPaths {..} = } CompileWithCabalPackage {..} -> GhcInvocation - { giIncludeDirs = [compSrcDir] + { giIncludeDirs = [compBuildDir] , giPackageDBs = maybeToList compPackageDb , giHideAllPackages = True , giPackages = @@ -300,7 +300,7 @@ compGhcInvocation comp CompPaths {..} = giOutDir = compOutDir giOutput = compExePath giWarningFlags = [ "-w" ] -- no point in bothering end users with warnings - giInputs = [compSrcDir</>"CabalHelper"</>"Runtime"</>"Main.hs"] + giInputs = [compBuildDir</>"CabalHelper"</>"Runtime"</>"Main.hs"] cabalVersionMacro :: Version -> String cabalVersionMacro (Version vs _) = |