diff --git a/Cabal-syntax/src/Distribution/CabalSpecVersion.hs b/Cabal-syntax/src/Distribution/CabalSpecVersion.hs index a81e8921a94..2e6cbc2b19d 100644 --- a/Cabal-syntax/src/Distribution/CabalSpecVersion.hs +++ b/Cabal-syntax/src/Distribution/CabalSpecVersion.hs @@ -35,6 +35,7 @@ data CabalSpecVersion | -- 3.10: no changes CabalSpecV3_12 | CabalSpecV3_14 + | CabalSpecV3_16 deriving (Eq, Ord, Show, Read, Enum, Bounded, Data, Generic) instance Binary CabalSpecVersion @@ -45,6 +46,7 @@ instance NFData CabalSpecVersion where rnf = genericRnf -- -- @since 3.0.0.0 showCabalSpecVersion :: CabalSpecVersion -> String +showCabalSpecVersion CabalSpecV3_16 = "3.16" showCabalSpecVersion CabalSpecV3_14 = "3.14" showCabalSpecVersion CabalSpecV3_12 = "3.12" showCabalSpecVersion CabalSpecV3_8 = "3.8" @@ -67,13 +69,14 @@ showCabalSpecVersion CabalSpecV1_2 = "1.2" showCabalSpecVersion CabalSpecV1_0 = "1.0" cabalSpecLatest :: CabalSpecVersion -cabalSpecLatest = CabalSpecV3_14 +cabalSpecLatest = CabalSpecV3_16 -- | Parse 'CabalSpecVersion' from version digits. -- -- It may fail if for recent versions the version is not exact. cabalSpecFromVersionDigits :: [Int] -> Maybe CabalSpecVersion cabalSpecFromVersionDigits v + | v == [3, 16] = Just CabalSpecV3_16 | v == [3, 14] = Just CabalSpecV3_14 | v == [3, 12] = Just CabalSpecV3_12 | v == [3, 8] = Just CabalSpecV3_8 @@ -98,6 +101,7 @@ cabalSpecFromVersionDigits v -- | @since 3.4.0.0 cabalSpecToVersionDigits :: CabalSpecVersion -> [Int] +cabalSpecToVersionDigits CabalSpecV3_16 = [3, 16] cabalSpecToVersionDigits CabalSpecV3_14 = [3, 14] cabalSpecToVersionDigits CabalSpecV3_12 = [3, 12] cabalSpecToVersionDigits CabalSpecV3_8 = [3, 8] diff --git a/Cabal-syntax/src/Distribution/PackageDescription/FieldGrammar.hs b/Cabal-syntax/src/Distribution/PackageDescription/FieldGrammar.hs index 49db03ee3c1..0b04b446c04 100644 --- a/Cabal-syntax/src/Distribution/PackageDescription/FieldGrammar.hs +++ b/Cabal-syntax/src/Distribution/PackageDescription/FieldGrammar.hs @@ -621,6 +621,8 @@ buildInfoFieldGrammar = <*> monoidalFieldAla "cc-options" (alaList' NoCommaFSep Token') L.ccOptions <*> monoidalFieldAla "cxx-options" (alaList' NoCommaFSep Token') L.cxxOptions ^^^ availableSince CabalSpecV2_2 [] + <*> monoidalFieldAla "jspp-options" (alaList' NoCommaFSep Token') L.jsppOptions + ^^^ availableSince CabalSpecV3_16 [] <*> monoidalFieldAla "ld-options" (alaList' NoCommaFSep Token') L.ldOptions <*> monoidalFieldAla "hsc2hs-options" (alaList' NoCommaFSep Token') L.hsc2hsOptions ^^^ availableSince CabalSpecV3_6 [] diff --git a/Cabal-syntax/src/Distribution/Types/BuildInfo.hs b/Cabal-syntax/src/Distribution/Types/BuildInfo.hs index 2d7a5edeae1..e68fcbc5c22 100644 --- a/Cabal-syntax/src/Distribution/Types/BuildInfo.hs +++ b/Cabal-syntax/src/Distribution/Types/BuildInfo.hs @@ -61,6 +61,8 @@ data BuildInfo = BuildInfo -- ^ options for C compiler , cxxOptions :: [String] -- ^ options for C++ compiler + , jsppOptions :: [String] + -- ^ options for pre-processing JavaScript code @since 3.16.0.0 , ldOptions :: [String] -- ^ options for linker , hsc2hsOptions :: [String] @@ -161,6 +163,7 @@ instance Monoid BuildInfo where , cmmOptions = [] , ccOptions = [] , cxxOptions = [] + , jsppOptions = [] , ldOptions = [] , hsc2hsOptions = [] , pkgconfigDepends = [] @@ -214,6 +217,7 @@ instance Semigroup BuildInfo where , cmmOptions = combine cmmOptions , ccOptions = combine ccOptions , cxxOptions = combine cxxOptions + , jsppOptions = combine jsppOptions , ldOptions = combine ldOptions , hsc2hsOptions = combine hsc2hsOptions , pkgconfigDepends = combine pkgconfigDepends diff --git a/Cabal-syntax/src/Distribution/Types/BuildInfo/Lens.hs b/Cabal-syntax/src/Distribution/Types/BuildInfo/Lens.hs index ac99f3c65a5..72a24caa734 100644 --- a/Cabal-syntax/src/Distribution/Types/BuildInfo/Lens.hs +++ b/Cabal-syntax/src/Distribution/Types/BuildInfo/Lens.hs @@ -59,6 +59,10 @@ class HasBuildInfo a where cxxOptions = buildInfo . cxxOptions {-# INLINE cxxOptions #-} + jsppOptions :: Lens' a [String] + jsppOptions = buildInfo . jsppOptions + {-# INLINE jsppOptions #-} + ldOptions :: Lens' a [String] ldOptions = buildInfo . ldOptions {-# INLINE ldOptions #-} @@ -243,6 +247,9 @@ instance HasBuildInfo BuildInfo where cxxOptions f s = fmap (\x -> s{T.cxxOptions = x}) (f (T.cxxOptions s)) {-# INLINE cxxOptions #-} + jsppOptions f s = fmap (\x -> s{T.jsppOptions = x}) (f (T.jsppOptions s)) + {-# INLINE jsppOptions #-} + ldOptions f s = fmap (\x -> s{T.ldOptions = x}) (f (T.ldOptions s)) {-# INLINE ldOptions #-} diff --git a/Cabal-tests/tests/ParserTests/regressions/Octree-0.5.expr b/Cabal-tests/tests/ParserTests/regressions/Octree-0.5.expr index 04f54ea5d93..634b27b8828 100644 --- a/Cabal-tests/tests/ParserTests/regressions/Octree-0.5.expr +++ b/Cabal-tests/tests/ParserTests/regressions/Octree-0.5.expr @@ -86,6 +86,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -198,6 +199,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -301,6 +303,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/anynone.expr b/Cabal-tests/tests/ParserTests/regressions/anynone.expr index 919f554180a..927605d6058 100644 --- a/Cabal-tests/tests/ParserTests/regressions/anynone.expr +++ b/Cabal-tests/tests/ParserTests/regressions/anynone.expr @@ -52,6 +52,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/big-version.expr b/Cabal-tests/tests/ParserTests/regressions/big-version.expr index c219ac95241..4d3659e4592 100644 --- a/Cabal-tests/tests/ParserTests/regressions/big-version.expr +++ b/Cabal-tests/tests/ParserTests/regressions/big-version.expr @@ -53,6 +53,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/common-conditional.expr b/Cabal-tests/tests/ParserTests/regressions/common-conditional.expr index 8969ff6f5fa..41e0fd5377a 100644 --- a/Cabal-tests/tests/ParserTests/regressions/common-conditional.expr +++ b/Cabal-tests/tests/ParserTests/regressions/common-conditional.expr @@ -69,6 +69,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -147,6 +148,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -240,6 +242,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -320,6 +323,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -398,6 +402,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -469,6 +474,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -563,6 +569,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -642,6 +649,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/common.expr b/Cabal-tests/tests/ParserTests/regressions/common.expr index e39820ec833..e8c766460f2 100644 --- a/Cabal-tests/tests/ParserTests/regressions/common.expr +++ b/Cabal-tests/tests/ParserTests/regressions/common.expr @@ -67,6 +67,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -146,6 +147,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/common2.expr b/Cabal-tests/tests/ParserTests/regressions/common2.expr index ae85c83ea2b..af882207fc4 100644 --- a/Cabal-tests/tests/ParserTests/regressions/common2.expr +++ b/Cabal-tests/tests/ParserTests/regressions/common2.expr @@ -63,6 +63,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -165,6 +166,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -246,6 +248,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -350,6 +353,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -428,6 +432,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -530,6 +535,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -609,6 +615,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -688,6 +695,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/common3.expr b/Cabal-tests/tests/ParserTests/regressions/common3.expr index 5436936b3a2..be783c4cab6 100644 --- a/Cabal-tests/tests/ParserTests/regressions/common3.expr +++ b/Cabal-tests/tests/ParserTests/regressions/common3.expr @@ -67,6 +67,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -146,6 +147,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/elif.expr b/Cabal-tests/tests/ParserTests/regressions/elif.expr index 5bf616b7c15..e04821eaaef 100644 --- a/Cabal-tests/tests/ParserTests/regressions/elif.expr +++ b/Cabal-tests/tests/ParserTests/regressions/elif.expr @@ -62,6 +62,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -132,6 +133,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/elif2.expr b/Cabal-tests/tests/ParserTests/regressions/elif2.expr index f0ecd6bb111..88eb02d59d7 100644 --- a/Cabal-tests/tests/ParserTests/regressions/elif2.expr +++ b/Cabal-tests/tests/ParserTests/regressions/elif2.expr @@ -62,6 +62,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -132,6 +133,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -207,6 +209,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -276,6 +279,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -351,6 +355,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/encoding-0.8.expr b/Cabal-tests/tests/ParserTests/regressions/encoding-0.8.expr index 4e45a86b8c4..02c4a4222c7 100644 --- a/Cabal-tests/tests/ParserTests/regressions/encoding-0.8.expr +++ b/Cabal-tests/tests/ParserTests/regressions/encoding-0.8.expr @@ -67,6 +67,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/generics-sop.expr b/Cabal-tests/tests/ParserTests/regressions/generics-sop.expr index 60be619bd16..a7cdf1a4300 100644 --- a/Cabal-tests/tests/ParserTests/regressions/generics-sop.expr +++ b/Cabal-tests/tests/ParserTests/regressions/generics-sop.expr @@ -163,6 +163,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -333,6 +334,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -419,6 +421,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -523,6 +526,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -595,6 +599,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -668,6 +673,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -765,6 +771,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/hasktorch.expr b/Cabal-tests/tests/ParserTests/regressions/hasktorch.expr index 7eea76ce8c1..9dfa089a3d5 100644 --- a/Cabal-tests/tests/ParserTests/regressions/hasktorch.expr +++ b/Cabal-tests/tests/ParserTests/regressions/hasktorch.expr @@ -268,6 +268,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -602,6 +603,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -846,6 +848,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1048,6 +1051,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1387,6 +1391,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -2708,6 +2713,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -2799,6 +2805,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -5027,6 +5034,7 @@ GenericPackageDescription { cppOptions = [ "-DCUDA", "-DHASKTORCH_INTERNAL_CUDA"], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -6398,6 +6406,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -6490,6 +6499,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -8159,6 +8169,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -8649,6 +8660,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -9414,6 +9426,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -9536,6 +9549,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -9643,6 +9657,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -9750,6 +9765,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -9846,6 +9862,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -9943,6 +9960,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/hidden-main-lib.expr b/Cabal-tests/tests/ParserTests/regressions/hidden-main-lib.expr index 3e67f519199..553b88dc595 100644 --- a/Cabal-tests/tests/ParserTests/regressions/hidden-main-lib.expr +++ b/Cabal-tests/tests/ParserTests/regressions/hidden-main-lib.expr @@ -54,6 +54,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/indentation.expr b/Cabal-tests/tests/ParserTests/regressions/indentation.expr index ea8c219ca0a..f36a8997717 100644 --- a/Cabal-tests/tests/ParserTests/regressions/indentation.expr +++ b/Cabal-tests/tests/ParserTests/regressions/indentation.expr @@ -63,6 +63,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/indentation2.expr b/Cabal-tests/tests/ParserTests/regressions/indentation2.expr index f26c9a4e005..11afbcfd5d3 100644 --- a/Cabal-tests/tests/ParserTests/regressions/indentation2.expr +++ b/Cabal-tests/tests/ParserTests/regressions/indentation2.expr @@ -56,6 +56,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/indentation3.expr b/Cabal-tests/tests/ParserTests/regressions/indentation3.expr index 08db6b1fec6..964bad3f924 100644 --- a/Cabal-tests/tests/ParserTests/regressions/indentation3.expr +++ b/Cabal-tests/tests/ParserTests/regressions/indentation3.expr @@ -58,6 +58,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/issue-5055.expr b/Cabal-tests/tests/ParserTests/regressions/issue-5055.expr index 03fab0246e4..996fa26eece 100644 --- a/Cabal-tests/tests/ParserTests/regressions/issue-5055.expr +++ b/Cabal-tests/tests/ParserTests/regressions/issue-5055.expr @@ -57,6 +57,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -142,6 +143,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -229,6 +231,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/issue-5846.expr b/Cabal-tests/tests/ParserTests/regressions/issue-5846.expr index 0d031503a53..c3e08359046 100644 --- a/Cabal-tests/tests/ParserTests/regressions/issue-5846.expr +++ b/Cabal-tests/tests/ParserTests/regressions/issue-5846.expr @@ -51,6 +51,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/issue-6083-a.expr b/Cabal-tests/tests/ParserTests/regressions/issue-6083-a.expr index bbe56f81a5c..001d3c86515 100644 --- a/Cabal-tests/tests/ParserTests/regressions/issue-6083-a.expr +++ b/Cabal-tests/tests/ParserTests/regressions/issue-6083-a.expr @@ -51,6 +51,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -148,6 +149,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -217,6 +219,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -299,6 +302,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/issue-6083-b.expr b/Cabal-tests/tests/ParserTests/regressions/issue-6083-b.expr index 17b9f8319bb..ca99e3d554f 100644 --- a/Cabal-tests/tests/ParserTests/regressions/issue-6083-b.expr +++ b/Cabal-tests/tests/ParserTests/regressions/issue-6083-b.expr @@ -51,6 +51,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -148,6 +149,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -217,6 +219,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -309,6 +312,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/issue-6083-c.expr b/Cabal-tests/tests/ParserTests/regressions/issue-6083-c.expr index 8db694b7389..b2f47a1a938 100644 --- a/Cabal-tests/tests/ParserTests/regressions/issue-6083-c.expr +++ b/Cabal-tests/tests/ParserTests/regressions/issue-6083-c.expr @@ -51,6 +51,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -148,6 +149,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/issue-6083-pkg-pkg.expr b/Cabal-tests/tests/ParserTests/regressions/issue-6083-pkg-pkg.expr index 26a3c260959..ce7c453e697 100644 --- a/Cabal-tests/tests/ParserTests/regressions/issue-6083-pkg-pkg.expr +++ b/Cabal-tests/tests/ParserTests/regressions/issue-6083-pkg-pkg.expr @@ -51,6 +51,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/issue-774.expr b/Cabal-tests/tests/ParserTests/regressions/issue-774.expr index a9b2fc7bcc3..4aeb65cb960 100644 --- a/Cabal-tests/tests/ParserTests/regressions/issue-774.expr +++ b/Cabal-tests/tests/ParserTests/regressions/issue-774.expr @@ -61,6 +61,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/jaeger-flamegraph.expr b/Cabal-tests/tests/ParserTests/regressions/jaeger-flamegraph.expr index fd9b1fa3a28..b6dc81fee1b 100644 --- a/Cabal-tests/tests/ParserTests/regressions/jaeger-flamegraph.expr +++ b/Cabal-tests/tests/ParserTests/regressions/jaeger-flamegraph.expr @@ -93,6 +93,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -193,6 +194,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -359,6 +361,7 @@ GenericPackageDescription { (MajorBoundVersion (mkVersion [4, 2, 1]))], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/leading-comma-2.expr b/Cabal-tests/tests/ParserTests/regressions/leading-comma-2.expr index 37bb5adfea5..3a1d7d5f075 100644 --- a/Cabal-tests/tests/ParserTests/regressions/leading-comma-2.expr +++ b/Cabal-tests/tests/ParserTests/regressions/leading-comma-2.expr @@ -61,6 +61,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/leading-comma.expr b/Cabal-tests/tests/ParserTests/regressions/leading-comma.expr index 6b31a91ecc4..230ebf53136 100644 --- a/Cabal-tests/tests/ParserTests/regressions/leading-comma.expr +++ b/Cabal-tests/tests/ParserTests/regressions/leading-comma.expr @@ -54,6 +54,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/libpq1.expr b/Cabal-tests/tests/ParserTests/regressions/libpq1.expr index db39305d20f..b331abffcca 100644 --- a/Cabal-tests/tests/ParserTests/regressions/libpq1.expr +++ b/Cabal-tests/tests/ParserTests/regressions/libpq1.expr @@ -144,6 +144,7 @@ GenericPackageDescription { (mkVersion [0]))], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -249,6 +250,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -335,6 +337,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -421,6 +424,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -495,6 +499,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -564,6 +569,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -631,6 +637,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -700,6 +707,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/libpq2.expr b/Cabal-tests/tests/ParserTests/regressions/libpq2.expr index 80b558d0b91..9f6a16ada6e 100644 --- a/Cabal-tests/tests/ParserTests/regressions/libpq2.expr +++ b/Cabal-tests/tests/ParserTests/regressions/libpq2.expr @@ -149,6 +149,7 @@ GenericPackageDescription { (OrLaterVersion (mkVersion [0]))], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -254,6 +255,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -340,6 +342,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -426,6 +429,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -497,6 +501,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -566,6 +571,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -633,6 +639,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -702,6 +709,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/mixin-1.expr b/Cabal-tests/tests/ParserTests/regressions/mixin-1.expr index b8372437dd6..0a137660468 100644 --- a/Cabal-tests/tests/ParserTests/regressions/mixin-1.expr +++ b/Cabal-tests/tests/ParserTests/regressions/mixin-1.expr @@ -55,6 +55,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/mixin-2.expr b/Cabal-tests/tests/ParserTests/regressions/mixin-2.expr index a4d3459be3d..6c2239df825 100644 --- a/Cabal-tests/tests/ParserTests/regressions/mixin-2.expr +++ b/Cabal-tests/tests/ParserTests/regressions/mixin-2.expr @@ -55,6 +55,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/mixin-3.expr b/Cabal-tests/tests/ParserTests/regressions/mixin-3.expr index 2b1d37c79e9..a4a94aac32c 100644 --- a/Cabal-tests/tests/ParserTests/regressions/mixin-3.expr +++ b/Cabal-tests/tests/ParserTests/regressions/mixin-3.expr @@ -55,6 +55,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/monad-param.expr b/Cabal-tests/tests/ParserTests/regressions/monad-param.expr index aaeb1af1044..db28c928ddb 100644 --- a/Cabal-tests/tests/ParserTests/regressions/monad-param.expr +++ b/Cabal-tests/tests/ParserTests/regressions/monad-param.expr @@ -63,6 +63,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/multiple-libs-2.expr b/Cabal-tests/tests/ParserTests/regressions/multiple-libs-2.expr index dc6371bc75c..d2f1efdd913 100644 --- a/Cabal-tests/tests/ParserTests/regressions/multiple-libs-2.expr +++ b/Cabal-tests/tests/ParserTests/regressions/multiple-libs-2.expr @@ -54,6 +54,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -134,6 +135,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/noVersion.expr b/Cabal-tests/tests/ParserTests/regressions/noVersion.expr index 0d5bf636569..838f87733eb 100644 --- a/Cabal-tests/tests/ParserTests/regressions/noVersion.expr +++ b/Cabal-tests/tests/ParserTests/regressions/noVersion.expr @@ -54,6 +54,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/nothing-unicode.expr b/Cabal-tests/tests/ParserTests/regressions/nothing-unicode.expr index f6a8c64a566..ccfe4421c7b 100644 --- a/Cabal-tests/tests/ParserTests/regressions/nothing-unicode.expr +++ b/Cabal-tests/tests/ParserTests/regressions/nothing-unicode.expr @@ -69,6 +69,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -139,6 +140,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/shake.expr b/Cabal-tests/tests/ParserTests/regressions/shake.expr index 560c38e1dc4..5be08b04064 100644 --- a/Cabal-tests/tests/ParserTests/regressions/shake.expr +++ b/Cabal-tests/tests/ParserTests/regressions/shake.expr @@ -189,6 +189,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -479,6 +480,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = ["-DPORTABLE"], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -548,6 +550,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -624,6 +627,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -693,6 +697,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -773,6 +778,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -851,6 +857,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1176,6 +1183,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1245,6 +1253,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = ["-DPORTABLE"], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1311,6 +1320,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1384,6 +1394,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1450,6 +1461,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1527,6 +1539,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1604,6 +1617,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -1978,6 +1992,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -2049,6 +2064,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -2120,6 +2136,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = ["-DPORTABLE"], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -2190,6 +2207,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -2267,6 +2285,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -2337,6 +2356,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -2418,6 +2438,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/spdx-1.expr b/Cabal-tests/tests/ParserTests/regressions/spdx-1.expr index 24f0aff227a..88500d2d365 100644 --- a/Cabal-tests/tests/ParserTests/regressions/spdx-1.expr +++ b/Cabal-tests/tests/ParserTests/regressions/spdx-1.expr @@ -52,6 +52,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/spdx-2.expr b/Cabal-tests/tests/ParserTests/regressions/spdx-2.expr index 992486c3be5..9cd00ea1103 100644 --- a/Cabal-tests/tests/ParserTests/regressions/spdx-2.expr +++ b/Cabal-tests/tests/ParserTests/regressions/spdx-2.expr @@ -56,6 +56,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/spdx-3.expr b/Cabal-tests/tests/ParserTests/regressions/spdx-3.expr index f38e0b24b30..e8b2eca8989 100644 --- a/Cabal-tests/tests/ParserTests/regressions/spdx-3.expr +++ b/Cabal-tests/tests/ParserTests/regressions/spdx-3.expr @@ -56,6 +56,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/th-lift-instances.expr b/Cabal-tests/tests/ParserTests/regressions/th-lift-instances.expr index fa6fd5ee308..2db686aa40f 100644 --- a/Cabal-tests/tests/ParserTests/regressions/th-lift-instances.expr +++ b/Cabal-tests/tests/ParserTests/regressions/th-lift-instances.expr @@ -81,6 +81,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -253,6 +254,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -433,6 +435,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -541,6 +544,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/version-sets.expr b/Cabal-tests/tests/ParserTests/regressions/version-sets.expr index 8983fa4ea73..c086ae618aa 100644 --- a/Cabal-tests/tests/ParserTests/regressions/version-sets.expr +++ b/Cabal-tests/tests/ParserTests/regressions/version-sets.expr @@ -78,6 +78,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/ParserTests/regressions/wl-pprint-indef.expr b/Cabal-tests/tests/ParserTests/regressions/wl-pprint-indef.expr index a8b4fa3c604..e4e6a457a3d 100644 --- a/Cabal-tests/tests/ParserTests/regressions/wl-pprint-indef.expr +++ b/Cabal-tests/tests/ParserTests/regressions/wl-pprint-indef.expr @@ -72,6 +72,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], @@ -160,6 +161,7 @@ GenericPackageDescription { buildTools = [], buildToolDepends = [], cppOptions = [], + jsppOptions = [], asmOptions = [], cmmOptions = [], ccOptions = [], diff --git a/Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs b/Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs index e572eb1d4fc..bfde4536823 100644 --- a/Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs +++ b/Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs @@ -29,8 +29,8 @@ md5Check proxy md5Int = structureHash proxy @?= md5FromInteger md5Int md5CheckGenericPackageDescription :: Proxy GenericPackageDescription -> Assertion md5CheckGenericPackageDescription proxy = md5Check proxy - 0xe95038393adbd46b119188757a3a2b63 + 0x42685b0be2909b20bfcd2f32c503ec7b md5CheckLocalBuildInfo :: Proxy LocalBuildInfo -> Assertion md5CheckLocalBuildInfo proxy = md5Check proxy - 0x364f8e404df9ada84ea3b4e3b3084a10 + 0x3d5f7afb3f2f9d8a8ea0e9487a74a006 diff --git a/Cabal/src/Distribution/PackageDescription/Check/Target.hs b/Cabal/src/Distribution/PackageDescription/Check/Target.hs index 9e23b0af917..ee0fff7ca84 100644 --- a/Cabal/src/Distribution/PackageDescription/Check/Target.hs +++ b/Cabal/src/Distribution/PackageDescription/Check/Target.hs @@ -814,6 +814,7 @@ checkBuildInfoOptions t bi = do checkCLikeOptions LangC "cc-options" (ccOptions bi) ldOpts checkCLikeOptions LangCPlusPlus "cxx-options" (cxxOptions bi) ldOpts checkCPPOptions (cppOptions bi) + checkJSPOptions (jsppOptions bi) -- | Checks GHC options for commonly misused or non-portable flags. checkGHCOptions @@ -904,6 +905,12 @@ checkGHCOptions title t opts = do ( [(flag, flag) | flag@('-' : 'D' : _) <- ghcNoRts] ++ [(flag, flag) | flag@('-' : 'U' : _) <- ghcNoRts] ) + checkAlternatives + title + "jspp-options" + ( [(flag, flag) | flag@('-' : 'D' : _) <- ghcNoRts] + ++ [(flag, flag) | flag@('-' : 'U' : _) <- ghcNoRts] + ) checkAlternatives title "include-dirs" @@ -1093,3 +1100,20 @@ checkCPPOptions opts = do (PackageBuildWarning (COptCPP opt)) ) opts + +checkJSPOptions + :: Monad m + => [String] -- Options in String form. + -> CheckM m () +checkJSPOptions opts = do + checkAlternatives + "jspp-options" + "include-dirs" + [(flag, dir) | flag@('-' : 'I' : dir) <- opts] + mapM_ + ( \opt -> + checkP + (not $ any (`isPrefixOf` opt) ["-D", "-U", "-I"]) + (PackageBuildWarning (OptJSPP opt)) + ) + opts diff --git a/Cabal/src/Distribution/PackageDescription/Check/Warning.hs b/Cabal/src/Distribution/PackageDescription/Check/Warning.hs index 897137bda2b..3ff5430eac7 100644 --- a/Cabal/src/Distribution/PackageDescription/Check/Warning.hs +++ b/Cabal/src/Distribution/PackageDescription/Check/Warning.hs @@ -214,6 +214,7 @@ data CheckExplanation | OptWithRts String | COptONumber String WarnLang | COptCPP String + | OptJSPP String | OptAlternatives String String [(String, String)] | RelativeOutside String FilePath | AbsolutePath String FilePath @@ -380,6 +381,7 @@ data CheckExplanationID | CIOptWithRts | CICOptONumber | CICOptCPP + | CIOptJSPP | CIOptAlternatives | CIRelativeOutside | CIAbsolutePath @@ -525,6 +527,7 @@ checkExplanationId (OptRts{}) = CIOptRts checkExplanationId (OptWithRts{}) = CIOptWithRts checkExplanationId (COptONumber{}) = CICOptONumber checkExplanationId (COptCPP{}) = CICOptCPP +checkExplanationId (OptJSPP{}) = CIOptJSPP checkExplanationId (OptAlternatives{}) = CIOptAlternatives checkExplanationId (RelativeOutside{}) = CIRelativeOutside checkExplanationId (AbsolutePath{}) = CIAbsolutePath @@ -677,6 +680,7 @@ ppCheckExplanationId CIOptRts = "option-rtsopts" ppCheckExplanationId CIOptWithRts = "option-with-rtsopts" ppCheckExplanationId CICOptONumber = "option-opt-c" ppCheckExplanationId CICOptCPP = "cpp-options" +ppCheckExplanationId CIOptJSPP = "jspp-options" ppCheckExplanationId CIOptAlternatives = "misplaced-c-opt" ppCheckExplanationId CIRelativeOutside = "relative-path-outside" ppCheckExplanationId CIAbsolutePath = "absolute-path" @@ -1086,6 +1090,8 @@ ppExplanation (COptONumber prefix label) = ++ " --disable-optimization flag." ppExplanation (COptCPP opt) = "'cpp-options: " ++ opt ++ "' is not a portable C-preprocessor flag." +ppExplanation (OptJSPP opt) = + "'jspp-options: " ++ opt ++ "' is not a portable JavaScript-preprocessor flag." ppExplanation (OptAlternatives badField goodField flags) = "Instead of " ++ quote (badField ++ ": " ++ unwords badFlags) diff --git a/Cabal/src/Distribution/Simple/GHC/Internal.hs b/Cabal/src/Distribution/Simple/GHC/Internal.hs index 121e34549cb..9e252d7c889 100644 --- a/Cabal/src/Distribution/Simple/GHC/Internal.hs +++ b/Cabal/src/Distribution/Simple/GHC/Internal.hs @@ -505,6 +505,7 @@ componentJsGhcOptions verbosity lbi bi clbi odir filename = ghcOptVerbosity = toFlag (min verbosity normal) , ghcOptMode = toFlag GhcModeCompile , ghcOptInputFiles = toNubListR [filename] + , ghcOptJSppOptions = jsppOptions bi , ghcOptCppIncludePath = includePaths lbi bi clbi odir , ghcOptHideAllPackages = toFlag True , ghcOptPackageDBs = withPackageDB lbi @@ -568,6 +569,7 @@ componentGhcOptions verbosity lbi bi clbi odir = ++ [autogenPackageModulesDir lbi] , ghcOptCppIncludePath = includePaths lbi bi clbi odir , ghcOptCppOptions = cppOptions bi + , ghcOptJSppOptions = jsppOptions bi , ghcOptCppIncludes = toNubListR $ [coerceSymbolicPath (autogenComponentModulesDir lbi clbi makeRelativePathEx cppHeaderName)] diff --git a/Cabal/src/Distribution/Simple/Program/GHC.hs b/Cabal/src/Distribution/Simple/Program/GHC.hs index 8613653cba6..41ac96119ac 100644 --- a/Cabal/src/Distribution/Simple/Program/GHC.hs +++ b/Cabal/src/Distribution/Simple/Program/GHC.hs @@ -505,6 +505,8 @@ data GhcOptions = GhcOptions -- ^ Options to pass through to the Assembler. , ghcOptCppOptions :: [String] -- ^ Options to pass through to CPP; the @ghc -optP@ flag. + , ghcOptJSppOptions :: [String] + -- ^ Options to pass through to CPP; the @ghc -optJSP@ flag. @since 3.16.0.0 , ghcOptCppIncludePath :: NubListR (SymbolicPath Pkg (Dir Include)) -- ^ Search path for CPP includes like header files; the @ghc -I@ flag. , ghcOptCppIncludes :: NubListR (SymbolicPath Pkg File) @@ -856,6 +858,7 @@ renderGhcOptions comp _platform@(Platform _arch os) opts ["-I" ++ u dir | dir <- flags ghcOptCppIncludePath] , ["-optP" ++ opt | opt <- ghcOptCppOptions opts] + , ["-optJSP" ++ opt | opt <- ghcOptJSppOptions opts] , concat [ ["-optP-include", "-optP" ++ u inc] | inc <- flags ghcOptCppIncludes diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/JSPPOptions/JSPPNotPortable/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/JSPPOptions/JSPPNotPortable/cabal.out new file mode 100644 index 00000000000..a40cb90cb45 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/JSPPOptions/JSPPNotPortable/cabal.out @@ -0,0 +1,4 @@ +# cabal check +The following errors are likely to affect your build negatively: +Error: [jspp-options] 'jspp-options: -Q' is not a portable JavaScript-preprocessor flag. +Error: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/JSPPOptions/JSPPNotPortable/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/JSPPOptions/JSPPNotPortable/cabal.test.hs new file mode 100644 index 00000000000..44c64c6f35a --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/JSPPOptions/JSPPNotPortable/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- `jspp-options`, do not use use non portable flags. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/JSPPOptions/JSPPNotPortable/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/JSPPOptions/JSPPNotPortable/pkg.cabal new file mode 100644 index 00000000000..9dd54ff16bc --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/JSPPOptions/JSPPNotPortable/pkg.cabal @@ -0,0 +1,14 @@ +cabal-version: 3.16 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +library + exposed-modules: Module + default-language: Haskell2010 + if arch(JavaScript) + jspp-options: -Q diff --git a/cabal-testsuite/PackageTests/JS/JSPPOptions/cabal.project b/cabal-testsuite/PackageTests/JS/JSPPOptions/cabal.project new file mode 100644 index 00000000000..e6fdbadb439 --- /dev/null +++ b/cabal-testsuite/PackageTests/JS/JSPPOptions/cabal.project @@ -0,0 +1 @@ +packages: . diff --git a/cabal-testsuite/PackageTests/JS/JSPPOptions/demo/Main.hs b/cabal-testsuite/PackageTests/JS/JSPPOptions/demo/Main.hs new file mode 100644 index 00000000000..19e67f001f8 --- /dev/null +++ b/cabal-testsuite/PackageTests/JS/JSPPOptions/demo/Main.hs @@ -0,0 +1,6 @@ +module Main where + +import Lib + +main :: IO () +main = foo diff --git a/cabal-testsuite/PackageTests/JS/JSPPOptions/js-arch.test.hs b/cabal-testsuite/PackageTests/JS/JSPPOptions/js-arch.test.hs new file mode 100644 index 00000000000..c7df6e8e986 --- /dev/null +++ b/cabal-testsuite/PackageTests/JS/JSPPOptions/js-arch.test.hs @@ -0,0 +1,9 @@ +import Test.Cabal.Prelude + +main = do + skipUnlessJavaScript + skipIfWindows "" + setupAndCabalTest $ do + skipUnlessGhcVersion ">= 9.12" + res <- cabal' "v2-run" ["demo"] + assertOutputContains "Hello definition!" res diff --git a/cabal-testsuite/PackageTests/JS/JSPPOptions/jsbits/lib.js b/cabal-testsuite/PackageTests/JS/JSPPOptions/jsbits/lib.js new file mode 100644 index 00000000000..b3b8beb78fb --- /dev/null +++ b/cabal-testsuite/PackageTests/JS/JSPPOptions/jsbits/lib.js @@ -0,0 +1,9 @@ +//#OPTIONS: CPP + +function foo() { +#ifdef PRINT_DEF + console.log("Hello definition!"); +#else + console.log("Hello!"); +#endif +} diff --git a/cabal-testsuite/PackageTests/JS/JSPPOptions/jsppoptions.cabal b/cabal-testsuite/PackageTests/JS/JSPPOptions/jsppoptions.cabal new file mode 100644 index 00000000000..15883ab6b62 --- /dev/null +++ b/cabal-testsuite/PackageTests/JS/JSPPOptions/jsppoptions.cabal @@ -0,0 +1,19 @@ +cabal-version: 3.16 +name: jsppoptions +version: 0 +build-type: Simple + +library + default-language: Haskell2010 + js-sources: jsbits/lib.js + if arch(JavaScript) + jspp-options: -DPRINT_DEF + hs-source-dirs: src + exposed-modules: Lib + build-depends: base + +executable demo + default-language: Haskell2010 + main-is: Main.hs + hs-source-dirs: demo + build-depends: base, jsppoptions diff --git a/cabal-testsuite/PackageTests/JS/JSPPOptions/other-arch.out b/cabal-testsuite/PackageTests/JS/JSPPOptions/other-arch.out new file mode 100644 index 00000000000..fcf3a48349b --- /dev/null +++ b/cabal-testsuite/PackageTests/JS/JSPPOptions/other-arch.out @@ -0,0 +1,14 @@ +# cabal v2-run +Configuration is affected by the following files: +- cabal.project +Resolving dependencies... +Build profile: -w ghc- -O1 +In order, the following will be built: + - jsppoptions-0 (lib) (first run) + - jsppoptions-0 (exe:demo) (first run) +Configuring library for jsppoptions-0... +Preprocessing library for jsppoptions-0... +Building library for jsppoptions-0... +Configuring executable 'demo' for jsppoptions-0... +Preprocessing executable 'demo' for jsppoptions-0... +Building executable 'demo' for jsppoptions-0... diff --git a/cabal-testsuite/PackageTests/JS/JSPPOptions/other-arch.test.hs b/cabal-testsuite/PackageTests/JS/JSPPOptions/other-arch.test.hs new file mode 100644 index 00000000000..5f1f0caa20b --- /dev/null +++ b/cabal-testsuite/PackageTests/JS/JSPPOptions/other-arch.test.hs @@ -0,0 +1,8 @@ +import Test.Cabal.Prelude + +main = do + skipIfJavaScript + cabalTest $ do + -- Ensure the field `js-sources` does not raise issues + res <- cabal' "v2-run" ["demo"] + assertOutputContains "Not JS foo" res diff --git a/cabal-testsuite/PackageTests/JS/JSPPOptions/src/Lib.hs b/cabal-testsuite/PackageTests/JS/JSPPOptions/src/Lib.hs new file mode 100644 index 00000000000..5cd25eb2f87 --- /dev/null +++ b/cabal-testsuite/PackageTests/JS/JSPPOptions/src/Lib.hs @@ -0,0 +1,9 @@ +{-# LANGUAGE CPP #-} +module Lib where + +#if defined(javascript_HOST_ARCH) +foreign import javascript foo :: IO () +#else +foo :: IO () +foo = putStrLn "Not JS foo" +#endif diff --git a/changelog.d/pr-10967.md b/changelog.d/pr-10967.md new file mode 100644 index 00000000000..96d59d6de36 --- /dev/null +++ b/changelog.d/pr-10967.md @@ -0,0 +1,13 @@ +--- +synopsis: Adding JavaScript Preprocessor Support +packages: [Cabal, Cabal-syntax] +prs: 10967 +--- + +Adding new syntax jspp-options that would support the -optJSP preprocessor flag for js sources. + +``` + js-sources: jsbits/lib.js + jspp-options: -DYOUR_FLAG +``` + diff --git a/doc/buildinfo-fields-reference.rst b/doc/buildinfo-fields-reference.rst index b1bb35d6d6c..21ad93188fc 100644 --- a/doc/buildinfo-fields-reference.rst +++ b/doc/buildinfo-fields-reference.rst @@ -485,6 +485,14 @@ js-sources .. math:: \mathrm{commalist}\left\{ \mathop{\mathit{hs\text{-}string}}\mid{{[\mathop{\mathord{``}\mathtt{\ }\mathord{"}}\mathop{\mathord{``}\mathtt{\text{,}}\mathord{"}}]^c}}^+_{} \right\} +jspp-options + * Monoidal field + * Available since ``cabal-version: 3.16``. + * Documentation of :pkg-field:`library:jspp-options` + + .. math:: + {\left\{ \mathop{\mathit{hs\text{-}string}}\mid{{[\mathop{\mathord{``}\mathtt{\ }\mathord{"}}]^c}}^+_{} \right\}}^\ast_{\bullet} + ld-options * Monoidal field * Documentation of :pkg-field:`library:ld-options` diff --git a/doc/cabal-commands.rst b/doc/cabal-commands.rst index 22f1a9089a6..9ad5e716875 100644 --- a/doc/cabal-commands.rst +++ b/doc/cabal-commands.rst @@ -1405,6 +1405,7 @@ A list of all warnings with their constructor: - ``option-with-rtsopts``: unnecessary ``-with-rtsopts``. - ``option-opt-c``: unnecessary ``-O[n]`` in C code. - ``cpp-options``: unportable ``-cpp-options`` flag. +- ``jspp-options``: unportable ``-jspp-options`` flag. - ``misplaced-c-opt``: C-like options in wrong cabal field. - ``relative-path-outside``: relative path outside of source tree. - ``absolute-path``: absolute path where not allowed. diff --git a/doc/cabal-package-description-file.rst b/doc/cabal-package-description-file.rst index d1b5d3971ad..5b52ed212f0 100644 --- a/doc/cabal-package-description-file.rst +++ b/doc/cabal-package-description-file.rst @@ -1992,6 +1992,11 @@ system-dependent values for these fields. arguments are compiler-dependent, this field is more useful with the setup described in the section on `system-dependent parameters`_. +.. pkg-field:: jspp-options: token list + + Command-line arguments for pre-processing JS code. Applies to pre-processed + Haskell source like .js. Flags here will be passed as ``-optJSP`` flags to GHC. + .. pkg-field:: cpp-options: token list Command-line arguments for pre-processing Haskell code. Applies to diff --git a/editors/vim/syntax/cabal.vim b/editors/vim/syntax/cabal.vim index 2e578307a7e..3d2600253e5 100644 --- a/editors/vim/syntax/cabal.vim +++ b/editors/vim/syntax/cabal.vim @@ -65,6 +65,7 @@ syn keyword cabalFieldName contained \ cmm-options \ cmm-sources \ copyright + \ jspp-options \ cpp-options \ cxx-options \ cxx-sources