diff options
Diffstat (limited to 'utils/ghctags')
-rw-r--r-- | utils/ghctags/Main.hs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/utils/ghctags/Main.hs b/utils/ghctags/Main.hs index 9a2ab2cccf..138687e5fa 100644 --- a/utils/ghctags/Main.hs +++ b/utils/ghctags/Main.hs @@ -23,6 +23,8 @@ import Distribution.Simple.Configure ( getPersistBuildConfig ) import Distribution.Simple.Program.GHC ( renderGhcOptions ) import Distribution.PackageDescription ( libBuildInfo ) import Distribution.Simple.LocalBuildInfo +import Distribution.Types.LocalBuildInfo ( componentNameTargets' ) +import Distribution.Types.TargetInfo import qualified Distribution.Verbosity as V import Control.Monad hiding (mapM) @@ -179,14 +181,16 @@ flagsFromCabal :: FilePath -> IO [String] flagsFromCabal distPref = do lbi <- getPersistBuildConfig distPref let pd = localPkgDescr lbi - case maybeGetDefaultLibraryLocalBuildInfo lbi of - Just clbi -> - let CLib lib = getComponent pd (componentLocalName clbi) + case componentNameTargets' pd lbi CLibName of + [target] -> + let clbi = targetCLBI target + CLib lib = getComponent pd (componentLocalName clbi) bi = libBuildInfo lib odir = buildDir lbi opts = componentGhcOptions V.normal lbi bi clbi odir in return $ renderGhcOptions (compiler lbi) (hostPlatform lbi) opts - _ -> error "no library" + [] -> error "no library" + _ -> error "more libraries than we know how to handle" ---------------------------------------------------------------- --- LOADING HASKELL SOURCE |