Use -package-id to specify libraries on command line.
authorEdward Z. Yang <ezyang@cs.stanford.edu>
Sat, 20 Jun 2015 22:35:28 +0000 (15:35 -0700)
committerEdward Z. Yang <ezyang@cs.stanford.edu>
Mon, 22 Jun 2015 17:32:27 +0000 (10:32 -0700)
Summary:
There's not really any good reason to use -package-key over
-package-id, so use the latter as standard practice.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate

Reviewers: austin

Subscribers: thomie, bgamari

Differential Revision: https://phabricator.haskell.org/D1000

rules/distdir-way-opts.mk
utils/ghc-cabal/Main.hs

index 8073093..7a4115c 100644 (file)
@@ -87,13 +87,12 @@ $4_USE_PACKAGE_KEY=NO
 endif
 endif
 
-ifeq "$($4_USE_PACKAGE_KEY)" "NO"
 $1_$2_$4_DEP_OPTS = \
- $$(foreach pkg,$$($1_$2_DEPS),-package $$(pkg))
+ $$(foreach pkg,$$($1_$2_DEP_IPIDS),-package-id $$(pkg))
+
+ifeq "$($4_USE_PACKAGE_KEY)" "NO"
 $4_THIS_PACKAGE_KEY = -package-name
 else
-$1_$2_$4_DEP_OPTS = \
- $$(foreach pkg,$$($1_$2_DEP_KEYS),-package-key $$(pkg))
 $4_THIS_PACKAGE_KEY = -this-package-key
 endif
 
index 3c049fe..6302349 100644 (file)
@@ -396,17 +396,17 @@ generate directory distdir dll0Modules config_args
 
           dep_ids  = map snd (externalPackageDeps lbi)
           deps     = map display dep_ids
+          dep_direct = map (fromMaybe (error "ghc-cabal: dep_keys failed")
+                           . PackageIndex.lookupInstalledPackageId
+                                            (installedPkgs lbi)
+                           . fst)
+                       . externalPackageDeps
+                       $ lbi
           dep_keys
             | packageKeySupported comp
-                   = map (display
-                        . Installed.packageKey
-                        . fromMaybe (error "ghc-cabal: dep_keys failed")
-                        . PackageIndex.lookupInstalledPackageId
-                                                           (installedPkgs lbi)
-                        . fst)
-                   . externalPackageDeps
-                   $ lbi
+                   = map (display . Installed.packageKey) dep_direct
             | otherwise = deps
+          dep_ipids = map (display . Installed.installedPackageId) dep_direct
           depNames = map (display . packageName) dep_ids
 
           transitive_dep_ids = map Installed.sourcePackageId dep_pkgs
@@ -448,6 +448,7 @@ generate directory distdir dll0Modules config_args
                 variablePrefix ++ "_HS_SRC_DIRS = " ++ unwords (hsSourceDirs bi),
                 variablePrefix ++ "_DEPS = " ++ unwords deps,
                 variablePrefix ++ "_DEP_KEYS = " ++ unwords dep_keys,
+                variablePrefix ++ "_DEP_IPIDS = " ++ unwords dep_ipids,
                 variablePrefix ++ "_DEP_NAMES = " ++ unwords depNames,
                 variablePrefix ++ "_TRANSITIVE_DEPS = " ++ unwords transitiveDeps,
                 variablePrefix ++ "_TRANSITIVE_DEP_KEYS = " ++ unwords transitiveDepKeys,