From 852dbc69d276e19add3917d17dff5541d84e29d4 Mon Sep 17 00:00:00 2001 From: Daniel Gröber Date: Sat, 11 Jan 2020 07:46:33 +0100 Subject: Fix Cabal version selection for build-type:Custom Previously we would pick up Stack's Cabal version with ghc-pkg on the global package-db. This however ignores that Stack also supports custom Setup.hs with the Cabal version from the snapshot instead. In cabal v2-build we have a similar problem. We used to assume that plan.json's cabal-lib-version is used uniformly across units but this is similarly untrue. To fix both of these we re-stage the cabal version query to after reconfiguring a unit, then we can just lookup the Cabal version in setup-config. Fixes #95 --- tests/custom-setup/Lib.hs | 8 ++++++++ tests/custom-setup/Setup.hs | 2 ++ tests/custom-setup/custom-setup.cabal | 13 +++++++++++++ tests/custom-setup/packages.list | 1 + tests/custom-setup/stack.yaml | 3 +++ 5 files changed, 27 insertions(+) create mode 100644 tests/custom-setup/Lib.hs create mode 100644 tests/custom-setup/Setup.hs create mode 100644 tests/custom-setup/custom-setup.cabal create mode 100644 tests/custom-setup/packages.list create mode 100644 tests/custom-setup/stack.yaml (limited to 'tests/custom-setup') diff --git a/tests/custom-setup/Lib.hs b/tests/custom-setup/Lib.hs new file mode 100644 index 0000000..417a0ad --- /dev/null +++ b/tests/custom-setup/Lib.hs @@ -0,0 +1,8 @@ +module Lib where + +import System.Directory +import System.FilePath + +filepath = "a" "b" +directory = doesFileExist "Exe.hs" +foo = 1 diff --git a/tests/custom-setup/Setup.hs b/tests/custom-setup/Setup.hs new file mode 100644 index 0000000..9a994af --- /dev/null +++ b/tests/custom-setup/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/tests/custom-setup/custom-setup.cabal b/tests/custom-setup/custom-setup.cabal new file mode 100644 index 0000000..63410ac --- /dev/null +++ b/tests/custom-setup/custom-setup.cabal @@ -0,0 +1,13 @@ +name: custom-setup +version: 0 +build-type: Custom +cabal-version: >=1.10 +extra-source-files: stack.yaml + +custom-setup + setup-depends: base, Cabal + +library + exposed-modules: Lib + build-depends: base, filepath, directory + default-language: Haskell2010 diff --git a/tests/custom-setup/packages.list b/tests/custom-setup/packages.list new file mode 100644 index 0000000..80e52ce --- /dev/null +++ b/tests/custom-setup/packages.list @@ -0,0 +1 @@ +./ diff --git a/tests/custom-setup/stack.yaml b/tests/custom-setup/stack.yaml new file mode 100644 index 0000000..27cc995 --- /dev/null +++ b/tests/custom-setup/stack.yaml @@ -0,0 +1,3 @@ +resolver: lts-0.0 # will be overridden on the commandline +packages: +- ./ -- cgit v1.2.3