]> gitweb.michael.orlitzky.com - hath.git/commitdiff
makefile,hath.cabal: move ghc-options into the makefile.
authorMichael Orlitzky <michael@orlitzky.com>
Tue, 23 Aug 2022 23:24:59 +0000 (19:24 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Tue, 23 Aug 2022 23:24:59 +0000 (19:24 -0400)
hath.cabal
makefile

index 81d1ec11c606336b4c8e58cc65b4f53b600a3a01..8b1b4fe71939951f98ab599833c69b633b28ae48 100644 (file)
@@ -113,18 +113,6 @@ executable hath
     tasty-hunit                 >= 0.8,
     tasty-quickcheck            >= 0.8.1
 
-  ghc-options:
-    -Weverything
-    -Wno-implicit-prelude
-    -Wno-safe
-    -Wno-unsafe
-    -Wno-all-missed-specialisations
-    -rtsopts
-    -threaded
-    -optc-O3
-    -optc-march=native
-    -O2
-
 
 test-suite testsuite
   type: exitcode-stdio-1.0
@@ -148,20 +136,6 @@ test-suite testsuite
     tasty-quickcheck            >= 0.8.1
 
 
-  -- It's not entirely clear to me why I have to reproduce all of this.
-  ghc-options:
-    -Weverything
-    -Wno-implicit-prelude
-    -Wno-safe
-    -Wno-unsafe
-    -Wno-all-missed-specialisations
-    -rtsopts
-    -threaded
-    -optc-O3
-    -optc-march=native
-    -O2
-
-
 -- These won't work without shelltestrunner installed in your
 -- $PATH. Maybe there is some way to tell Cabal that.
 test-suite shelltests
@@ -173,18 +147,6 @@ test-suite shelltests
     base                        == 4.*,
     process                     >= 1.1
 
-  -- It's not entirely clear to me why I have to reproduce all of this.
-  ghc-options:
-    -Weverything
-    -Wno-implicit-prelude
-    -Wno-safe
-    -Wno-unsafe
-    -Wno-all-missed-specialisations
-    -rtsopts
-    -threaded
-    -optc-O3
-    -optc-march=native
-    -O2
 
 source-repository head
   type: git
index 3091caaf41b4d8b3f9b7cd990ffde55e10ead3ee..81e6f3b8b68b77e88b6e5a735de2a2f3d29ccd31 100644 (file)
--- a/makefile
+++ b/makefile
@@ -1,14 +1,26 @@
-PN            = hath
-BIN           = dist/build/$(PN)/$(PN)
-SRCS          = $(shell find src/ -type f -name '*.hs')
-
+PN   = hath
+BIN  = dist/build/$(PN)/$(PN)
+SRCS = $(shell find src/ -type f -name '*.hs')
+
+# Append these warnings to the HCFLAGS environment variable that gets
+# passed as options to GHC. We want to see the warnings while developing
+# but don't want them hard-coded in the cabal file for end users.
+HCFLAGS += -Weverything \
+           -Wno-implicit-prelude \
+           -Wno-safe \
+           -Wno-unsafe \
+           -Wno-all-missed-specialisations \
+           -Wno-prepositive-qualified-module \
+           -Wno-missing-safe-haskell-mode \
+           -Wno-missing-deriving-strategies \
+           -rtsopts \
+           -threaded
 
 .PHONY : dist hlint
 
 $(BIN): $(PN).cabal $(SRCS)
        runghc Setup.hs configure --user
-       runghc Setup.hs build
-
+       runghc Setup.hs build --ghc-options="${HCFLAGS}"
 
 doc: $(PN).cabal $(SRCS)
        runghc Setup.hs haddock --all \
@@ -24,7 +36,7 @@ TEST_SRCS := $(shell find test/ -type f -name '*.hs')
 
 $(TESTSUITE_BIN): $(PN).cabal $(SRCS) $(TEST_SRCS)
        runghc Setup.hs configure --user --enable-tests --prefix=/
-       runghc Setup.hs build
+       runghc Setup.hs build --ghc-options="${HCFLAGS}"
 
 
 test: $(BIN) $(TESTSUITE_BIN)