@@ -55,6 +55,7 @@ import Stack.Types.Component
5555 , StackExecutable (.. ), StackLibrary (.. )
5656 , StackTestSuite (.. ), StackUnqualCompName (.. )
5757 )
58+ import Stack.Types.ComponentUtils ( unqualCompToString , emptyCompName )
5859import Stack.Types.Config
5960 ( Config (.. ), HasConfig (.. ), prettyStackDevL )
6061import Stack.Types.NamedComponent ( NamedComponent (.. ) )
@@ -77,7 +78,7 @@ stackBenchmarkFiles ::
7778 StackBenchmark
7879 -> RIO GetPackageFileContext (NamedComponent , ComponentFile )
7980stackBenchmarkFiles bench =
80- resolveComponentFiles (CBench bench. name. unqualCompToText ) build names
81+ resolveComponentFiles (CBench bench. name) build names
8182 where
8283 names = bnames <> exposed
8384 exposed =
@@ -92,7 +93,7 @@ stackTestSuiteFiles ::
9293 StackTestSuite
9394 -> RIO GetPackageFileContext (NamedComponent , ComponentFile )
9495stackTestSuiteFiles test =
95- resolveComponentFiles (CTest test. name. unqualCompToText ) build names
96+ resolveComponentFiles (CTest test. name) build names
9697 where
9798 names = bnames <> exposed
9899 exposed =
@@ -108,7 +109,7 @@ stackExecutableFiles ::
108109 StackExecutable
109110 -> RIO GetPackageFileContext (NamedComponent , ComponentFile )
110111stackExecutableFiles exe =
111- resolveComponentFiles (CExe exe. name. unqualCompToText ) build names
112+ resolveComponentFiles (CExe exe. name) build names
112113 where
113114 build = exe. buildInfo
114115 names =
@@ -122,9 +123,9 @@ stackLibraryFiles ::
122123stackLibraryFiles lib =
123124 resolveComponentFiles componentName build names
124125 where
125- componentRawName = lib. name. unqualCompToText
126+ componentRawName = lib. name
126127 componentName
127- | componentRawName == mempty = CLib
128+ | componentRawName == emptyCompName = CLib
128129 | otherwise = CSubLib componentRawName
129130 build = lib. buildInfo
130131 names = bnames ++ exposed
@@ -341,7 +342,7 @@ componentOutputDir namedComponent distDir =
341342 CBench name -> makeTmp name
342343 where
343344 makeTmp name =
344- buildDir distDir </> componentNameToDir (name <> " / " <> name <> " -tmp " )
345+ buildDir distDir </> componentNameToDirNormOrTmp True name
345346
346347-- | Try to resolve the list of base names in the given directory by
347348-- looking for unique instances of base names applied with the given
@@ -545,10 +546,15 @@ buildDir distDir = distDir </> relDirBuild
545546
546547-- NOTE: don't export this, only use it for valid paths based on
547548-- component names.
548- componentNameToDir :: Text -> Path Rel Dir
549- componentNameToDir name =
550- fromMaybe (throw $ ComponentNotParsedBug sName) (parseRelDir sName)
551- where sName = T. unpack name
549+ componentNameToDir :: StackUnqualCompName -> Path Rel Dir
550+ componentNameToDir = componentNameToDirNormOrTmp False
551+
552+ componentNameToDirNormOrTmp :: Bool -> StackUnqualCompName -> Path Rel Dir
553+ componentNameToDirNormOrTmp isTemp name =
554+ fromMaybe (throw $ ComponentNotParsedBug sName) (parseRelDir fullName)
555+ where
556+ fullName = if isTemp then sName <> " /" <> sName <> " -tmp" else sName
557+ sName = unqualCompToString name
552558
553559-- | See 'Distribution.Simple.LocalBuildInfo.componentBuildDir'
554560componentBuildDir :: NamedComponent -> Path Abs Dir -> Path Abs Dir
0 commit comments