Skip to content

Commit eca0d2e

Browse files
committed
Add js-sources field to cabal file to allow passing custom preprocessing options for js (#10721)
1 parent 2040d21 commit eca0d2e

File tree

4 files changed

+10
-0
lines changed

4 files changed

+10
-0
lines changed

Cabal-syntax/src/Distribution/PackageDescription/FieldGrammar.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,7 @@ buildInfoFieldGrammar =
621621
<*> monoidalFieldAla "cc-options" (alaList' NoCommaFSep Token') L.ccOptions
622622
<*> monoidalFieldAla "cxx-options" (alaList' NoCommaFSep Token') L.cxxOptions
623623
^^^ availableSince CabalSpecV2_2 []
624+
<*> monoidalFieldAla "js-options" (alaList' NoCommaFSep Token') L.jsOptions
624625
<*> monoidalFieldAla "ld-options" (alaList' NoCommaFSep Token') L.ldOptions
625626
<*> monoidalFieldAla "hsc2hs-options" (alaList' NoCommaFSep Token') L.hsc2hsOptions
626627
^^^ availableSince CabalSpecV3_6 []

Cabal-syntax/src/Distribution/Types/BuildInfo.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ data BuildInfo = BuildInfo
6161
-- ^ options for C compiler
6262
, cxxOptions :: [String]
6363
-- ^ options for C++ compiler
64+
, jsOptions :: [String]
65+
-- ^ options for pre-processing JavaScript code
6466
, ldOptions :: [String]
6567
-- ^ options for linker
6668
, hsc2hsOptions :: [String]
@@ -161,6 +163,7 @@ instance Monoid BuildInfo where
161163
, cmmOptions = []
162164
, ccOptions = []
163165
, cxxOptions = []
166+
, jsOptions = []
164167
, ldOptions = []
165168
, hsc2hsOptions = []
166169
, pkgconfigDepends = []
@@ -214,6 +217,7 @@ instance Semigroup BuildInfo where
214217
, cmmOptions = combine cmmOptions
215218
, ccOptions = combine ccOptions
216219
, cxxOptions = combine cxxOptions
220+
, jsOptions = combine jsOptions
217221
, ldOptions = combine ldOptions
218222
, hsc2hsOptions = combine hsc2hsOptions
219223
, pkgconfigDepends = combine pkgconfigDepends

Cabal-syntax/src/Distribution/Types/BuildInfo/Lens.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ class HasBuildInfo a where
5959
cxxOptions = buildInfo . cxxOptions
6060
{-# INLINE cxxOptions #-}
6161

62+
jsOptions :: Lens' a [String]
63+
jsOptions = buildInfo . jsOptions
64+
{-# INLINE jsOptions #-}
65+
6266
ldOptions :: Lens' a [String]
6367
ldOptions = buildInfo . ldOptions
6468
{-# INLINE ldOptions #-}

Cabal/src/Distribution/Simple/GHC/Internal.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,7 @@ componentJsGhcOptions verbosity lbi bi clbi odir filename =
489489
, ghcOptPackageDBs = withPackageDB lbi
490490
, ghcOptPackages = toNubListR $ mkGhcOptPackages (promisedPkgs lbi) clbi
491491
, ghcOptObjDir = toFlag odir
492+
, ghcOptExtra = jsOptions bi
492493
}
493494

494495
componentGhcOptions

0 commit comments

Comments
 (0)