Skip to content

Commit dd1dda7

Browse files
zlonastSwordlash
andcommitted
Add jsp-options, use 3.16 as min required cabal version
Add JSPOptions tests Add regressions tests Co-authored-by: Mateusz Goslinowski <[email protected]>
1 parent 96ce5a8 commit dd1dda7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+320
-3
lines changed

Cabal-syntax/src/Distribution/CabalSpecVersion.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ data CabalSpecVersion
3535
| -- 3.10: no changes
3636
CabalSpecV3_12
3737
| CabalSpecV3_14
38+
| CabalSpecV3_16
3839
deriving (Eq, Ord, Show, Read, Enum, Bounded, Data, Generic)
3940

4041
instance Binary CabalSpecVersion
@@ -45,6 +46,7 @@ instance NFData CabalSpecVersion where rnf = genericRnf
4546
--
4647
-- @since 3.0.0.0
4748
showCabalSpecVersion :: CabalSpecVersion -> String
49+
showCabalSpecVersion CabalSpecV3_16 = "3.16"
4850
showCabalSpecVersion CabalSpecV3_14 = "3.14"
4951
showCabalSpecVersion CabalSpecV3_12 = "3.12"
5052
showCabalSpecVersion CabalSpecV3_8 = "3.8"
@@ -67,13 +69,14 @@ showCabalSpecVersion CabalSpecV1_2 = "1.2"
6769
showCabalSpecVersion CabalSpecV1_0 = "1.0"
6870

6971
cabalSpecLatest :: CabalSpecVersion
70-
cabalSpecLatest = CabalSpecV3_14
72+
cabalSpecLatest = CabalSpecV3_16
7173

7274
-- | Parse 'CabalSpecVersion' from version digits.
7375
--
7476
-- It may fail if for recent versions the version is not exact.
7577
cabalSpecFromVersionDigits :: [Int] -> Maybe CabalSpecVersion
7678
cabalSpecFromVersionDigits v
79+
| v == [3, 16] = Just CabalSpecV3_16
7780
| v == [3, 14] = Just CabalSpecV3_14
7881
| v == [3, 12] = Just CabalSpecV3_12
7982
| v == [3, 8] = Just CabalSpecV3_8
@@ -98,6 +101,7 @@ cabalSpecFromVersionDigits v
98101

99102
-- | @since 3.4.0.0
100103
cabalSpecToVersionDigits :: CabalSpecVersion -> [Int]
104+
cabalSpecToVersionDigits CabalSpecV3_16 = [3, 16]
101105
cabalSpecToVersionDigits CabalSpecV3_14 = [3, 14]
102106
cabalSpecToVersionDigits CabalSpecV3_12 = [3, 12]
103107
cabalSpecToVersionDigits CabalSpecV3_8 = [3, 8]

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,8 @@ 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 "jspp-options" (alaList' NoCommaFSep Token') L.jsppOptions
625+
^^^ availableSince CabalSpecV3_16 []
624626
<*> monoidalFieldAla "ld-options" (alaList' NoCommaFSep Token') L.ldOptions
625627
<*> monoidalFieldAla "hsc2hs-options" (alaList' NoCommaFSep Token') L.hsc2hsOptions
626628
^^^ 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+
, jsppOptions :: [String]
65+
-- ^ options for pre-processing JavaScript code @since 3.16.0.0
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+
, jsppOptions = []
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+
, jsppOptions = combine jsppOptions
217221
, ldOptions = combine ldOptions
218222
, hsc2hsOptions = combine hsc2hsOptions
219223
, pkgconfigDepends = combine pkgconfigDepends

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

Lines changed: 7 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+
jsppOptions :: Lens' a [String]
63+
jsppOptions = buildInfo . jsppOptions
64+
{-# INLINE jsppOptions #-}
65+
6266
ldOptions :: Lens' a [String]
6367
ldOptions = buildInfo . ldOptions
6468
{-# INLINE ldOptions #-}
@@ -243,6 +247,9 @@ instance HasBuildInfo BuildInfo where
243247
cxxOptions f s = fmap (\x -> s{T.cxxOptions = x}) (f (T.cxxOptions s))
244248
{-# INLINE cxxOptions #-}
245249

250+
jsppOptions f s = fmap (\x -> s{T.jsppOptions = x}) (f (T.jsppOptions s))
251+
{-# INLINE jsppOptions #-}
252+
246253
ldOptions f s = fmap (\x -> s{T.ldOptions = x}) (f (T.ldOptions s))
247254
{-# INLINE ldOptions #-}
248255

Cabal-tests/tests/ParserTests/regressions/Octree-0.5.expr

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ GenericPackageDescription {
8686
buildTools = [],
8787
buildToolDepends = [],
8888
cppOptions = [],
89+
jsppOptions = [],
8990
asmOptions = [],
9091
cmmOptions = [],
9192
ccOptions = [],
@@ -198,6 +199,7 @@ GenericPackageDescription {
198199
buildTools = [],
199200
buildToolDepends = [],
200201
cppOptions = [],
202+
jsppOptions = [],
201203
asmOptions = [],
202204
cmmOptions = [],
203205
ccOptions = [],
@@ -301,6 +303,7 @@ GenericPackageDescription {
301303
buildTools = [],
302304
buildToolDepends = [],
303305
cppOptions = [],
306+
jsppOptions = [],
304307
asmOptions = [],
305308
cmmOptions = [],
306309
ccOptions = [],

Cabal-tests/tests/ParserTests/regressions/anynone.expr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ GenericPackageDescription {
5252
buildTools = [],
5353
buildToolDepends = [],
5454
cppOptions = [],
55+
jsppOptions = [],
5556
asmOptions = [],
5657
cmmOptions = [],
5758
ccOptions = [],

Cabal-tests/tests/ParserTests/regressions/big-version.expr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ GenericPackageDescription {
5353
buildTools = [],
5454
buildToolDepends = [],
5555
cppOptions = [],
56+
jsppOptions = [],
5657
asmOptions = [],
5758
cmmOptions = [],
5859
ccOptions = [],

Cabal-tests/tests/ParserTests/regressions/common-conditional.expr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ GenericPackageDescription {
6969
buildTools = [],
7070
buildToolDepends = [],
7171
cppOptions = [],
72+
jsppOptions = [],
7273
asmOptions = [],
7374
cmmOptions = [],
7475
ccOptions = [],
@@ -147,6 +148,7 @@ GenericPackageDescription {
147148
buildTools = [],
148149
buildToolDepends = [],
149150
cppOptions = [],
151+
jsppOptions = [],
150152
asmOptions = [],
151153
cmmOptions = [],
152154
ccOptions = [],
@@ -240,6 +242,7 @@ GenericPackageDescription {
240242
buildTools = [],
241243
buildToolDepends = [],
242244
cppOptions = [],
245+
jsppOptions = [],
243246
asmOptions = [],
244247
cmmOptions = [],
245248
ccOptions = [],
@@ -320,6 +323,7 @@ GenericPackageDescription {
320323
buildTools = [],
321324
buildToolDepends = [],
322325
cppOptions = [],
326+
jsppOptions = [],
323327
asmOptions = [],
324328
cmmOptions = [],
325329
ccOptions = [],
@@ -398,6 +402,7 @@ GenericPackageDescription {
398402
buildTools = [],
399403
buildToolDepends = [],
400404
cppOptions = [],
405+
jsppOptions = [],
401406
asmOptions = [],
402407
cmmOptions = [],
403408
ccOptions = [],
@@ -469,6 +474,7 @@ GenericPackageDescription {
469474
buildTools = [],
470475
buildToolDepends = [],
471476
cppOptions = [],
477+
jsppOptions = [],
472478
asmOptions = [],
473479
cmmOptions = [],
474480
ccOptions = [],
@@ -563,6 +569,7 @@ GenericPackageDescription {
563569
buildTools = [],
564570
buildToolDepends = [],
565571
cppOptions = [],
572+
jsppOptions = [],
566573
asmOptions = [],
567574
cmmOptions = [],
568575
ccOptions = [],
@@ -642,6 +649,7 @@ GenericPackageDescription {
642649
buildTools = [],
643650
buildToolDepends = [],
644651
cppOptions = [],
652+
jsppOptions = [],
645653
asmOptions = [],
646654
cmmOptions = [],
647655
ccOptions = [],

Cabal-tests/tests/ParserTests/regressions/common.expr

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ GenericPackageDescription {
6767
buildTools = [],
6868
buildToolDepends = [],
6969
cppOptions = [],
70+
jsppOptions = [],
7071
asmOptions = [],
7172
cmmOptions = [],
7273
ccOptions = [],
@@ -146,6 +147,7 @@ GenericPackageDescription {
146147
buildTools = [],
147148
buildToolDepends = [],
148149
cppOptions = [],
150+
jsppOptions = [],
149151
asmOptions = [],
150152
cmmOptions = [],
151153
ccOptions = [],

Cabal-tests/tests/ParserTests/regressions/common2.expr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ GenericPackageDescription {
6363
buildTools = [],
6464
buildToolDepends = [],
6565
cppOptions = [],
66+
jsppOptions = [],
6667
asmOptions = [],
6768
cmmOptions = [],
6869
ccOptions = [],
@@ -165,6 +166,7 @@ GenericPackageDescription {
165166
buildTools = [],
166167
buildToolDepends = [],
167168
cppOptions = [],
169+
jsppOptions = [],
168170
asmOptions = [],
169171
cmmOptions = [],
170172
ccOptions = [],
@@ -246,6 +248,7 @@ GenericPackageDescription {
246248
buildTools = [],
247249
buildToolDepends = [],
248250
cppOptions = [],
251+
jsppOptions = [],
249252
asmOptions = [],
250253
cmmOptions = [],
251254
ccOptions = [],
@@ -350,6 +353,7 @@ GenericPackageDescription {
350353
buildTools = [],
351354
buildToolDepends = [],
352355
cppOptions = [],
356+
jsppOptions = [],
353357
asmOptions = [],
354358
cmmOptions = [],
355359
ccOptions = [],
@@ -428,6 +432,7 @@ GenericPackageDescription {
428432
buildTools = [],
429433
buildToolDepends = [],
430434
cppOptions = [],
435+
jsppOptions = [],
431436
asmOptions = [],
432437
cmmOptions = [],
433438
ccOptions = [],
@@ -530,6 +535,7 @@ GenericPackageDescription {
530535
buildTools = [],
531536
buildToolDepends = [],
532537
cppOptions = [],
538+
jsppOptions = [],
533539
asmOptions = [],
534540
cmmOptions = [],
535541
ccOptions = [],
@@ -609,6 +615,7 @@ GenericPackageDescription {
609615
buildTools = [],
610616
buildToolDepends = [],
611617
cppOptions = [],
618+
jsppOptions = [],
612619
asmOptions = [],
613620
cmmOptions = [],
614621
ccOptions = [],
@@ -688,6 +695,7 @@ GenericPackageDescription {
688695
buildTools = [],
689696
buildToolDepends = [],
690697
cppOptions = [],
698+
jsppOptions = [],
691699
asmOptions = [],
692700
cmmOptions = [],
693701
ccOptions = [],

Cabal-tests/tests/ParserTests/regressions/common3.expr

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ GenericPackageDescription {
6767
buildTools = [],
6868
buildToolDepends = [],
6969
cppOptions = [],
70+
jsppOptions = [],
7071
asmOptions = [],
7172
cmmOptions = [],
7273
ccOptions = [],
@@ -146,6 +147,7 @@ GenericPackageDescription {
146147
buildTools = [],
147148
buildToolDepends = [],
148149
cppOptions = [],
150+
jsppOptions = [],
149151
asmOptions = [],
150152
cmmOptions = [],
151153
ccOptions = [],

Cabal-tests/tests/ParserTests/regressions/elif.expr

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ GenericPackageDescription {
6262
buildTools = [],
6363
buildToolDepends = [],
6464
cppOptions = [],
65+
jsppOptions = [],
6566
asmOptions = [],
6667
cmmOptions = [],
6768
ccOptions = [],
@@ -132,6 +133,7 @@ GenericPackageDescription {
132133
buildTools = [],
133134
buildToolDepends = [],
134135
cppOptions = [],
136+
jsppOptions = [],
135137
asmOptions = [],
136138
cmmOptions = [],
137139
ccOptions = [],

Cabal-tests/tests/ParserTests/regressions/elif2.expr

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ GenericPackageDescription {
6262
buildTools = [],
6363
buildToolDepends = [],
6464
cppOptions = [],
65+
jsppOptions = [],
6566
asmOptions = [],
6667
cmmOptions = [],
6768
ccOptions = [],
@@ -132,6 +133,7 @@ GenericPackageDescription {
132133
buildTools = [],
133134
buildToolDepends = [],
134135
cppOptions = [],
136+
jsppOptions = [],
135137
asmOptions = [],
136138
cmmOptions = [],
137139
ccOptions = [],
@@ -207,6 +209,7 @@ GenericPackageDescription {
207209
buildTools = [],
208210
buildToolDepends = [],
209211
cppOptions = [],
212+
jsppOptions = [],
210213
asmOptions = [],
211214
cmmOptions = [],
212215
ccOptions = [],
@@ -276,6 +279,7 @@ GenericPackageDescription {
276279
buildTools = [],
277280
buildToolDepends = [],
278281
cppOptions = [],
282+
jsppOptions = [],
279283
asmOptions = [],
280284
cmmOptions = [],
281285
ccOptions = [],
@@ -351,6 +355,7 @@ GenericPackageDescription {
351355
buildTools = [],
352356
buildToolDepends = [],
353357
cppOptions = [],
358+
jsppOptions = [],
354359
asmOptions = [],
355360
cmmOptions = [],
356361
ccOptions = [],

Cabal-tests/tests/ParserTests/regressions/encoding-0.8.expr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ GenericPackageDescription {
6767
buildTools = [],
6868
buildToolDepends = [],
6969
cppOptions = [],
70+
jsppOptions = [],
7071
asmOptions = [],
7172
cmmOptions = [],
7273
ccOptions = [],

0 commit comments

Comments
 (0)