@@ -35,7 +35,6 @@ import qualified Data.ByteArray as Mem ( convert )
3535import Data.ByteString.Builder ( byteString )
3636import qualified Data.Map as M
3737import qualified Data.Set as Set
38- import qualified Data.Text as T
3938import qualified Data.Yaml as Yaml
4039import Foreign.C.Types ( CTime )
4140import Path ( (</>) , filename , parent , parseRelFile )
@@ -63,6 +62,8 @@ import Stack.Types.Build
6362 )
6463import Stack.Types.Cache ( ConfigCacheType (.. ) )
6564import Stack.Types.CompilerPaths ( cabalVersionL )
65+ import Stack.Types.ComponentUtils
66+ ( StackUnqualCompName , unqualCompToString )
6667import Stack.Types.Config ( stackRootL )
6768import Stack.Types.ConfigureOpts
6869 ( BaseConfigOpts (.. ), ConfigureOpts (.. ) )
@@ -74,10 +75,11 @@ import Stack.Types.EnvConfig
7475import Stack.Types.GhcPkgId ( ghcPkgIdString )
7576import Stack.Types.Installed
7677 (InstalledLibraryInfo (.. ), foldOnGhcPkgId' )
77- import Stack.Types.NamedComponent ( NamedComponent (.. ) )
78+ import Stack.Types.NamedComponent
79+ ( NamedComponent (.. ), componentCachePath )
7880import Stack.Types.SourceMap ( smRelDir )
7981import System.PosixCompat.Files
80- ( modificationTime , getFileStatus , setFileTimes )
82+ ( getFileStatus , modificationTime , setFileTimes )
8183
8284-- | Directory containing files to mark an executable as installed
8385exeInstalledDir :: (HasEnvConfig env )
@@ -134,14 +136,7 @@ buildCacheFile dir component = do
134136 cachesDir <- buildCachesDir dir
135137 smh <- view $ envConfigL . to (. sourceMapHash)
136138 smDirName <- smRelDir smh
137- let nonLibComponent prefix name = prefix <> " -" <> T. unpack name
138- cacheFileName <- parseRelFile $ case component of
139- CLib -> " lib"
140- CSubLib name -> nonLibComponent " sub-lib" name
141- CFlib name -> nonLibComponent " flib" name
142- CExe name -> nonLibComponent " exe" name
143- CTest name -> nonLibComponent " test" name
144- CBench name -> nonLibComponent " bench" name
139+ cacheFileName <- parseRelFile $ componentCachePath component
145140 pure $ cachesDir </> smDirName </> cacheFileName
146141
147142-- | Try to read the dirtiness cache for the given package directory.
@@ -376,7 +371,7 @@ writePrecompiledCache ::
376371 -> ConfigureOpts
377372 -> Bool -- ^ build haddocks
378373 -> Installed -- ^ library
379- -> Set Text -- ^ executables
374+ -> Set StackUnqualCompName -- ^ executables
380375 -> RIO env ()
381376writePrecompiledCache
382377 baseConfigOpts
@@ -390,7 +385,7 @@ writePrecompiledCache
390385 ec <- view envConfigL
391386 let stackRootRelative = makeRelative (view stackRootL ec)
392387 exes' <- forM (Set. toList exes) $ \ exe -> do
393- name <- parseRelFile $ T. unpack exe
388+ name <- parseRelFile $ unqualCompToString exe
394389 stackRootRelative $
395390 baseConfigOpts. snapInstallRoot </> bindirSuffix </> name
396391 let installedLibToPath libName ghcPkgId pcAction = do
0 commit comments