From 500505cde66c3b0bb0f6adf318b9820da4d74d66 Mon Sep 17 00:00:00 2001 From: Sergey Vinokurov Date: Wed, 18 Jun 2025 09:46:49 +0100 Subject: [PATCH 1/5] Add test --- .../PreProcess/TooManyCommandLineArgs/Foo.hsc | 99 +++++++++++++++++++ .../PreProcess/TooManyCommandLineArgs/Main.hs | 6 ++ .../TooManyCommandLineArgs/cabal.project | 34 +++++++ .../deps/my-dep-dep01/FooDepDep01.hs | 4 + .../include/include_FooDepDep01.h | 1 + .../my-dep-dep01/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep01/my-dep-dep01.cabal | 10 ++ .../deps/my-dep-dep02/FooDepDep02.hs | 4 + .../include/include_FooDepDep02.h | 1 + .../my-dep-dep02/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep02/my-dep-dep02.cabal | 10 ++ .../deps/my-dep-dep03/FooDepDep03.hs | 4 + .../include/include_FooDepDep03.h | 1 + .../my-dep-dep03/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep03/my-dep-dep03.cabal | 10 ++ .../deps/my-dep-dep04/FooDepDep04.hs | 4 + .../include/include_FooDepDep04.h | 1 + .../my-dep-dep04/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep04/my-dep-dep04.cabal | 10 ++ .../deps/my-dep-dep05/FooDepDep05.hs | 4 + .../include/include_FooDepDep05.h | 1 + .../my-dep-dep05/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep05/my-dep-dep05.cabal | 10 ++ .../deps/my-dep-dep06/FooDepDep06.hs | 4 + .../include/include_FooDepDep06.h | 1 + .../my-dep-dep06/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep06/my-dep-dep06.cabal | 10 ++ .../deps/my-dep-dep07/FooDepDep07.hs | 4 + .../include/include_FooDepDep07.h | 1 + .../my-dep-dep07/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep07/my-dep-dep07.cabal | 10 ++ .../deps/my-dep-dep08/FooDepDep08.hs | 4 + .../include/include_FooDepDep08.h | 1 + .../my-dep-dep08/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep08/my-dep-dep08.cabal | 10 ++ .../deps/my-dep-dep09/FooDepDep09.hs | 4 + .../include/include_FooDepDep09.h | 1 + .../my-dep-dep09/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep09/my-dep-dep09.cabal | 10 ++ .../deps/my-dep-dep10/FooDepDep10.hs | 4 + .../include/include_FooDepDep10.h | 1 + .../my-dep-dep10/lib/libdummy-unused-lib.a | 0 .../deps/my-dep-dep10/my-dep-dep10.cabal | 10 ++ .../deps/my-dep01/FooDep01.hs | 27 +++++ .../deps/my-dep01/include/include_FooDep01.h | 1 + .../deps/my-dep01/lib/libdummy-unused-lib.a | 0 .../deps/my-dep01/my-dep01.cabal | 21 ++++ .../deps/my-dep02/FooDep02.hs | 27 +++++ .../deps/my-dep02/include/include_FooDep02.h | 1 + .../deps/my-dep02/lib/libdummy-unused-lib.a | 0 .../deps/my-dep02/my-dep02.cabal | 21 ++++ .../deps/my-dep03/FooDep03.hs | 27 +++++ .../deps/my-dep03/include/include_FooDep03.h | 1 + .../deps/my-dep03/lib/libdummy-unused-lib.a | 0 .../deps/my-dep03/my-dep03.cabal | 21 ++++ .../deps/my-dep04/FooDep04.hs | 27 +++++ .../deps/my-dep04/include/include_FooDep04.h | 1 + .../deps/my-dep04/lib/libdummy-unused-lib.a | 0 .../deps/my-dep04/my-dep04.cabal | 21 ++++ .../deps/my-dep05/FooDep05.hs | 27 +++++ .../deps/my-dep05/include/include_FooDep05.h | 1 + .../deps/my-dep05/lib/libdummy-unused-lib.a | 0 .../deps/my-dep05/my-dep05.cabal | 21 ++++ .../deps/my-dep06/FooDep06.hs | 27 +++++ .../deps/my-dep06/include/include_FooDep06.h | 1 + .../deps/my-dep06/lib/libdummy-unused-lib.a | 0 .../deps/my-dep06/my-dep06.cabal | 21 ++++ .../deps/my-dep07/FooDep07.hs | 27 +++++ .../deps/my-dep07/include/include_FooDep07.h | 1 + .../deps/my-dep07/lib/libdummy-unused-lib.a | 0 .../deps/my-dep07/my-dep07.cabal | 21 ++++ .../deps/my-dep08/FooDep08.hs | 27 +++++ .../deps/my-dep08/include/include_FooDep08.h | 1 + .../deps/my-dep08/lib/libdummy-unused-lib.a | 0 .../deps/my-dep08/my-dep08.cabal | 21 ++++ .../deps/my-dep09/FooDep09.hs | 27 +++++ .../deps/my-dep09/include/include_FooDep09.h | 1 + .../deps/my-dep09/lib/libdummy-unused-lib.a | 0 .../deps/my-dep09/my-dep09.cabal | 21 ++++ .../deps/my-dep10/FooDep10.hs | 27 +++++ .../deps/my-dep10/include/include_FooDep10.h | 1 + .../deps/my-dep10/lib/libdummy-unused-lib.a | 0 .../deps/my-dep10/my-dep10.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my01/Foo01.hs | 27 +++++ .../deps/my01/include/include_Foo01.h | 1 + .../deps/my01/lib/libdummy-unused-lib.a | 0 .../deps/my01/my01.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my02/Foo02.hs | 27 +++++ .../deps/my02/include/include_Foo02.h | 1 + .../deps/my02/lib/libdummy-unused-lib.a | 0 .../deps/my02/my02.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my03/Foo03.hs | 27 +++++ .../deps/my03/include/include_Foo03.h | 1 + .../deps/my03/lib/libdummy-unused-lib.a | 0 .../deps/my03/my03.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my04/Foo04.hs | 27 +++++ .../deps/my04/include/include_Foo04.h | 1 + .../deps/my04/lib/libdummy-unused-lib.a | 0 .../deps/my04/my04.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my05/Foo05.hs | 27 +++++ .../deps/my05/include/include_Foo05.h | 1 + .../deps/my05/lib/libdummy-unused-lib.a | 0 .../deps/my05/my05.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my06/Foo06.hs | 27 +++++ .../deps/my06/include/include_Foo06.h | 1 + .../deps/my06/lib/libdummy-unused-lib.a | 0 .../deps/my06/my06.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my07/Foo07.hs | 27 +++++ .../deps/my07/include/include_Foo07.h | 1 + .../deps/my07/lib/libdummy-unused-lib.a | 0 .../deps/my07/my07.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my08/Foo08.hs | 27 +++++ .../deps/my08/include/include_Foo08.h | 1 + .../deps/my08/lib/libdummy-unused-lib.a | 0 .../deps/my08/my08.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my09/Foo09.hs | 27 +++++ .../deps/my09/include/include_Foo09.h | 1 + .../deps/my09/lib/libdummy-unused-lib.a | 0 .../deps/my09/my09.cabal | 21 ++++ .../TooManyCommandLineArgs/deps/my10/Foo10.hs | 27 +++++ .../deps/my10/include/include_Foo10.h | 1 + .../deps/my10/lib/libdummy-unused-lib.a | 0 .../deps/my10/my10.cabal | 21 ++++ .../TooManyCommandLineArgs/my-toplevel.cabal | 33 +++++++ .../TooManyCommandLineArgs/setup.out | 2 + .../TooManyCommandLineArgs/setup.test.hs | 96 ++++++++++++++++++ 126 files changed, 1400 insertions(+) create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/Foo.hsc create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/Main.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/cabal.project create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/FooDepDep01.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/include/include_FooDepDep01.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/my-dep-dep01.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/FooDepDep02.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/include/include_FooDepDep02.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/my-dep-dep02.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/FooDepDep03.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/include/include_FooDepDep03.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/my-dep-dep03.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/FooDepDep04.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/include/include_FooDepDep04.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/my-dep-dep04.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/FooDepDep05.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/include/include_FooDepDep05.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/my-dep-dep05.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/FooDepDep06.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/include/include_FooDepDep06.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/my-dep-dep06.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/FooDepDep07.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/include/include_FooDepDep07.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/my-dep-dep07.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/FooDepDep08.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/include/include_FooDepDep08.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/my-dep-dep08.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/FooDepDep09.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/include/include_FooDepDep09.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/my-dep-dep09.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/FooDepDep10.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/include/include_FooDepDep10.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/my-dep-dep10.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/FooDep01.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/include/include_FooDep01.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/my-dep01.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/FooDep02.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/include/include_FooDep02.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/my-dep02.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/FooDep03.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/include/include_FooDep03.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/my-dep03.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/FooDep04.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/include/include_FooDep04.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/my-dep04.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/FooDep05.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/include/include_FooDep05.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/my-dep05.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/FooDep06.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/include/include_FooDep06.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/my-dep06.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/FooDep07.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/include/include_FooDep07.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/my-dep07.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/FooDep08.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/include/include_FooDep08.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/my-dep08.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/FooDep09.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/include/include_FooDep09.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/my-dep09.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/FooDep10.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/include/include_FooDep10.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/my-dep10.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/Foo01.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/include/include_Foo01.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/my01.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/Foo02.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/include/include_Foo02.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/my02.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/Foo03.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/include/include_Foo03.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/my03.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/Foo04.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/include/include_Foo04.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/my04.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/Foo05.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/include/include_Foo05.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/my05.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/Foo06.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/include/include_Foo06.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/my06.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/Foo07.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/include/include_Foo07.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/my07.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/Foo08.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/include/include_Foo08.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/my08.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/Foo09.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/include/include_Foo09.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/my09.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/Foo10.hs create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/include/include_Foo10.h create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/lib/libdummy-unused-lib.a create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/my10.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/my-toplevel.cabal create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.out create mode 100644 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.test.hs diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/Foo.hsc b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/Foo.hsc new file mode 100644 index 00000000000..d1e0418a5e8 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/Foo.hsc @@ -0,0 +1,99 @@ +-- | +-- Module: Foo +-- Copyright: (c) Sergey Vinokurov 2025 +-- License: Apache-2.0 (see LICENSE) +-- Maintainer: serg.foo@gmail.com + +{-# LANGUAGE CPP #-} + +module Foo (foo) where + +import Foo01 +import Foo02 +import Foo03 +import Foo04 +import Foo05 +import Foo06 +import Foo07 +import Foo08 +import Foo09 +import Foo10 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +foo :: Int +foo = sum + [ #{const TEST_OPTION} + , foo01 + , foo02 + , foo03 + , foo04 + , foo05 + , foo06 + , foo07 + , foo08 + , foo09 + , foo10 + + , #{const DEF_foo01} + , #{const DEF_foo02} + , #{const DEF_foo03} + , #{const DEF_foo04} + , #{const DEF_foo05} + , #{const DEF_foo06} + , #{const DEF_foo07} + , #{const DEF_foo08} + , #{const DEF_foo09} + , #{const DEF_foo10} + + , #{const DEF_fooDep01} + , #{const DEF_fooDep02} + , #{const DEF_fooDep03} + , #{const DEF_fooDep04} + , #{const DEF_fooDep05} + , #{const DEF_fooDep06} + , #{const DEF_fooDep07} + , #{const DEF_fooDep08} + , #{const DEF_fooDep09} + , #{const DEF_fooDep10} + + , #{const DEF_fooDepDep01} + , #{const DEF_fooDepDep02} + , #{const DEF_fooDepDep03} + , #{const DEF_fooDepDep04} + , #{const DEF_fooDepDep05} + , #{const DEF_fooDepDep06} + , #{const DEF_fooDepDep07} + , #{const DEF_fooDepDep08} + , #{const DEF_fooDepDep09} + , #{const DEF_fooDepDep10} + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/Main.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/Main.hs new file mode 100644 index 00000000000..fb4e301094d --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/Main.hs @@ -0,0 +1,6 @@ +module Main (main) where + +import Foo + +main :: IO () +main = putStrLn $ "Result = " ++ show foo diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/cabal.project b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/cabal.project new file mode 100644 index 00000000000..004271c651b --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/cabal.project @@ -0,0 +1,34 @@ +packages: + my-toplevel.cabal + deps/my01/my01.cabal + deps/my02/my02.cabal + deps/my03/my03.cabal + deps/my04/my04.cabal + deps/my05/my05.cabal + deps/my06/my06.cabal + deps/my07/my07.cabal + deps/my08/my08.cabal + deps/my09/my09.cabal + deps/my10/my10.cabal + + deps/my-dep01/my-dep01.cabal + deps/my-dep02/my-dep02.cabal + deps/my-dep03/my-dep03.cabal + deps/my-dep04/my-dep04.cabal + deps/my-dep05/my-dep05.cabal + deps/my-dep06/my-dep06.cabal + deps/my-dep07/my-dep07.cabal + deps/my-dep08/my-dep08.cabal + deps/my-dep09/my-dep09.cabal + deps/my-dep10/my-dep10.cabal + + deps/my-dep-dep01/my-dep-dep01.cabal + deps/my-dep-dep02/my-dep-dep02.cabal + deps/my-dep-dep03/my-dep-dep03.cabal + deps/my-dep-dep04/my-dep-dep04.cabal + deps/my-dep-dep05/my-dep-dep05.cabal + deps/my-dep-dep06/my-dep-dep06.cabal + deps/my-dep-dep07/my-dep-dep07.cabal + deps/my-dep-dep08/my-dep-dep08.cabal + deps/my-dep-dep09/my-dep-dep09.cabal + deps/my-dep-dep10/my-dep-dep10.cabal diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/FooDepDep01.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/FooDepDep01.hs new file mode 100644 index 00000000000..9e6837fb409 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/FooDepDep01.hs @@ -0,0 +1,4 @@ +module FooDepDep01 (fooDepDep01) where + +fooDepDep01 :: Int +fooDepDep01 = 01 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/include/include_FooDepDep01.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/include/include_FooDepDep01.h new file mode 100644 index 00000000000..1e2a0c2d3fd --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/include/include_FooDepDep01.h @@ -0,0 +1 @@ +#define DEF_fooDepDep01 1 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/my-dep-dep01.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/my-dep-dep01.cabal new file mode 100644 index 00000000000..075c6dadcf6 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep01/my-dep-dep01.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep01 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep01 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/FooDepDep02.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/FooDepDep02.hs new file mode 100644 index 00000000000..564798ff0e7 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/FooDepDep02.hs @@ -0,0 +1,4 @@ +module FooDepDep02 (fooDepDep02) where + +fooDepDep02 :: Int +fooDepDep02 = 02 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/include/include_FooDepDep02.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/include/include_FooDepDep02.h new file mode 100644 index 00000000000..a05f788abf5 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/include/include_FooDepDep02.h @@ -0,0 +1 @@ +#define DEF_fooDepDep02 2 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/my-dep-dep02.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/my-dep-dep02.cabal new file mode 100644 index 00000000000..a21e8fa002f --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep02/my-dep-dep02.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep02 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep02 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/FooDepDep03.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/FooDepDep03.hs new file mode 100644 index 00000000000..90d7ab99948 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/FooDepDep03.hs @@ -0,0 +1,4 @@ +module FooDepDep03 (fooDepDep03) where + +fooDepDep03 :: Int +fooDepDep03 = 03 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/include/include_FooDepDep03.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/include/include_FooDepDep03.h new file mode 100644 index 00000000000..716d517d278 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/include/include_FooDepDep03.h @@ -0,0 +1 @@ +#define DEF_fooDepDep03 3 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/my-dep-dep03.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/my-dep-dep03.cabal new file mode 100644 index 00000000000..84b24170e2a --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep03/my-dep-dep03.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep03 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep03 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/FooDepDep04.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/FooDepDep04.hs new file mode 100644 index 00000000000..9101849a9c6 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/FooDepDep04.hs @@ -0,0 +1,4 @@ +module FooDepDep04 (fooDepDep04) where + +fooDepDep04 :: Int +fooDepDep04 = 04 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/include/include_FooDepDep04.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/include/include_FooDepDep04.h new file mode 100644 index 00000000000..79fd9374863 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/include/include_FooDepDep04.h @@ -0,0 +1 @@ +#define DEF_fooDepDep04 4 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/my-dep-dep04.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/my-dep-dep04.cabal new file mode 100644 index 00000000000..9617302f33b --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep04/my-dep-dep04.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep04 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep04 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/FooDepDep05.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/FooDepDep05.hs new file mode 100644 index 00000000000..1e0a4cf206f --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/FooDepDep05.hs @@ -0,0 +1,4 @@ +module FooDepDep05 (fooDepDep05) where + +fooDepDep05 :: Int +fooDepDep05 = 05 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/include/include_FooDepDep05.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/include/include_FooDepDep05.h new file mode 100644 index 00000000000..2f305c8d829 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/include/include_FooDepDep05.h @@ -0,0 +1 @@ +#define DEF_fooDepDep05 5 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/my-dep-dep05.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/my-dep-dep05.cabal new file mode 100644 index 00000000000..18a94b86684 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep05/my-dep-dep05.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep05 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep05 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/FooDepDep06.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/FooDepDep06.hs new file mode 100644 index 00000000000..50b2b0d3f0f --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/FooDepDep06.hs @@ -0,0 +1,4 @@ +module FooDepDep06 (fooDepDep06) where + +fooDepDep06 :: Int +fooDepDep06 = 06 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/include/include_FooDepDep06.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/include/include_FooDepDep06.h new file mode 100644 index 00000000000..a005ad17115 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/include/include_FooDepDep06.h @@ -0,0 +1 @@ +#define DEF_fooDepDep06 6 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/my-dep-dep06.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/my-dep-dep06.cabal new file mode 100644 index 00000000000..492161e6751 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep06/my-dep-dep06.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep06 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep06 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/FooDepDep07.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/FooDepDep07.hs new file mode 100644 index 00000000000..4ee00b0d8e9 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/FooDepDep07.hs @@ -0,0 +1,4 @@ +module FooDepDep07 (fooDepDep07) where + +fooDepDep07 :: Int +fooDepDep07 = 07 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/include/include_FooDepDep07.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/include/include_FooDepDep07.h new file mode 100644 index 00000000000..cd4d9c62a90 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/include/include_FooDepDep07.h @@ -0,0 +1 @@ +#define DEF_fooDepDep07 7 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/my-dep-dep07.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/my-dep-dep07.cabal new file mode 100644 index 00000000000..d5e129e224d --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep07/my-dep-dep07.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep07 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep07 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/FooDepDep08.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/FooDepDep08.hs new file mode 100644 index 00000000000..bff75a8857e --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/FooDepDep08.hs @@ -0,0 +1,4 @@ +module FooDepDep08 (fooDepDep08) where + +fooDepDep08 :: Int +fooDepDep08 = 08 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/include/include_FooDepDep08.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/include/include_FooDepDep08.h new file mode 100644 index 00000000000..1a81f6ecc2c --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/include/include_FooDepDep08.h @@ -0,0 +1 @@ +#define DEF_fooDepDep08 8 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/my-dep-dep08.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/my-dep-dep08.cabal new file mode 100644 index 00000000000..5070df765be --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep08/my-dep-dep08.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep08 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep08 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/FooDepDep09.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/FooDepDep09.hs new file mode 100644 index 00000000000..df01fa36f21 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/FooDepDep09.hs @@ -0,0 +1,4 @@ +module FooDepDep09 (fooDepDep09) where + +fooDepDep09 :: Int +fooDepDep09 = 09 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/include/include_FooDepDep09.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/include/include_FooDepDep09.h new file mode 100644 index 00000000000..7e009d23532 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/include/include_FooDepDep09.h @@ -0,0 +1 @@ +#define DEF_fooDepDep09 9 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/my-dep-dep09.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/my-dep-dep09.cabal new file mode 100644 index 00000000000..e8ca1a6f25b --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep09/my-dep-dep09.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep09 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep09 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/FooDepDep10.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/FooDepDep10.hs new file mode 100644 index 00000000000..f2230e5ad60 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/FooDepDep10.hs @@ -0,0 +1,4 @@ +module FooDepDep10 (fooDepDep10) where + +fooDepDep10 :: Int +fooDepDep10 = 10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/include/include_FooDepDep10.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/include/include_FooDepDep10.h new file mode 100644 index 00000000000..94ec0123768 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/include/include_FooDepDep10.h @@ -0,0 +1 @@ +#define DEF_fooDepDep10 10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/my-dep-dep10.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/my-dep-dep10.cabal new file mode 100644 index 00000000000..fc873543421 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep-dep10/my-dep-dep10.cabal @@ -0,0 +1,10 @@ +cabal-version: 3.0 +name: my-dep-dep10 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDepDep10 + default-language: Haskell2010 + build-depends: base diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/FooDep01.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/FooDep01.hs new file mode 100644 index 00000000000..4f4e5022a05 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/FooDep01.hs @@ -0,0 +1,27 @@ +module FooDep01 (fooDep01) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep01 :: Int +fooDep01 = sum + [ 01 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/include/include_FooDep01.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/include/include_FooDep01.h new file mode 100644 index 00000000000..a2beee766db --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/include/include_FooDep01.h @@ -0,0 +1 @@ +#define DEF_fooDep01 1 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/my-dep01.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/my-dep01.cabal new file mode 100644 index 00000000000..04f1112df0d --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep01/my-dep01.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep01 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep01 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/FooDep02.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/FooDep02.hs new file mode 100644 index 00000000000..d3768a947dd --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/FooDep02.hs @@ -0,0 +1,27 @@ +module FooDep02 (fooDep02) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep02 :: Int +fooDep02 = sum + [ 02 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/include/include_FooDep02.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/include/include_FooDep02.h new file mode 100644 index 00000000000..26bb3371de3 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/include/include_FooDep02.h @@ -0,0 +1 @@ +#define DEF_fooDep02 2 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/my-dep02.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/my-dep02.cabal new file mode 100644 index 00000000000..7c5050f6804 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep02/my-dep02.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep02 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep02 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/FooDep03.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/FooDep03.hs new file mode 100644 index 00000000000..0e05fcb1662 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/FooDep03.hs @@ -0,0 +1,27 @@ +module FooDep03 (fooDep03) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep03 :: Int +fooDep03 = sum + [ 03 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/include/include_FooDep03.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/include/include_FooDep03.h new file mode 100644 index 00000000000..400b14465ba --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/include/include_FooDep03.h @@ -0,0 +1 @@ +#define DEF_fooDep03 3 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/my-dep03.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/my-dep03.cabal new file mode 100644 index 00000000000..fca04e84901 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep03/my-dep03.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep03 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep03 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/FooDep04.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/FooDep04.hs new file mode 100644 index 00000000000..99ad7dd90ba --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/FooDep04.hs @@ -0,0 +1,27 @@ +module FooDep04 (fooDep04) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep04 :: Int +fooDep04 = sum + [ 04 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/include/include_FooDep04.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/include/include_FooDep04.h new file mode 100644 index 00000000000..705321a768a --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/include/include_FooDep04.h @@ -0,0 +1 @@ +#define DEF_fooDep04 4 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/my-dep04.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/my-dep04.cabal new file mode 100644 index 00000000000..0443c45392b --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep04/my-dep04.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep04 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep04 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/FooDep05.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/FooDep05.hs new file mode 100644 index 00000000000..ba763dc729f --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/FooDep05.hs @@ -0,0 +1,27 @@ +module FooDep05 (fooDep05) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep05 :: Int +fooDep05 = sum + [ 05 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/include/include_FooDep05.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/include/include_FooDep05.h new file mode 100644 index 00000000000..cb4ef9e3b90 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/include/include_FooDep05.h @@ -0,0 +1 @@ +#define DEF_fooDep05 5 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/my-dep05.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/my-dep05.cabal new file mode 100644 index 00000000000..13525f75522 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep05/my-dep05.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep05 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep05 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/FooDep06.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/FooDep06.hs new file mode 100644 index 00000000000..877571f3625 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/FooDep06.hs @@ -0,0 +1,27 @@ +module FooDep06 (fooDep06) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep06 :: Int +fooDep06 = sum + [ 06 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/include/include_FooDep06.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/include/include_FooDep06.h new file mode 100644 index 00000000000..121a0893a6d --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/include/include_FooDep06.h @@ -0,0 +1 @@ +#define DEF_fooDep06 6 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/my-dep06.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/my-dep06.cabal new file mode 100644 index 00000000000..8f4fc14e383 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep06/my-dep06.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep06 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep06 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/FooDep07.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/FooDep07.hs new file mode 100644 index 00000000000..c0102c376f0 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/FooDep07.hs @@ -0,0 +1,27 @@ +module FooDep07 (fooDep07) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep07 :: Int +fooDep07 = sum + [ 07 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/include/include_FooDep07.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/include/include_FooDep07.h new file mode 100644 index 00000000000..890388e96f4 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/include/include_FooDep07.h @@ -0,0 +1 @@ +#define DEF_fooDep07 7 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/my-dep07.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/my-dep07.cabal new file mode 100644 index 00000000000..26f852fd4eb --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep07/my-dep07.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep07 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep07 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/FooDep08.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/FooDep08.hs new file mode 100644 index 00000000000..a867fe7416f --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/FooDep08.hs @@ -0,0 +1,27 @@ +module FooDep08 (fooDep08) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep08 :: Int +fooDep08 = sum + [ 08 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/include/include_FooDep08.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/include/include_FooDep08.h new file mode 100644 index 00000000000..a7959662c0b --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/include/include_FooDep08.h @@ -0,0 +1 @@ +#define DEF_fooDep08 8 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/my-dep08.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/my-dep08.cabal new file mode 100644 index 00000000000..6f65812163d --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep08/my-dep08.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep08 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep08 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/FooDep09.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/FooDep09.hs new file mode 100644 index 00000000000..c2cd57e98b7 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/FooDep09.hs @@ -0,0 +1,27 @@ +module FooDep09 (fooDep09) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep09 :: Int +fooDep09 = sum + [ 09 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/include/include_FooDep09.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/include/include_FooDep09.h new file mode 100644 index 00000000000..aa38edd5b88 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/include/include_FooDep09.h @@ -0,0 +1 @@ +#define DEF_fooDep09 9 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/my-dep09.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/my-dep09.cabal new file mode 100644 index 00000000000..a2393c87226 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep09/my-dep09.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep09 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep09 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/FooDep10.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/FooDep10.hs new file mode 100644 index 00000000000..3cc38207580 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/FooDep10.hs @@ -0,0 +1,27 @@ +module FooDep10 (fooDep10) where + +import FooDepDep01 +import FooDepDep02 +import FooDepDep03 +import FooDepDep04 +import FooDepDep05 +import FooDepDep06 +import FooDepDep07 +import FooDepDep08 +import FooDepDep09 +import FooDepDep10 + +fooDep10 :: Int +fooDep10 = sum + [ 10 + , fooDepDep01 + , fooDepDep02 + , fooDepDep03 + , fooDepDep04 + , fooDepDep05 + , fooDepDep06 + , fooDepDep07 + , fooDepDep08 + , fooDepDep09 + , fooDepDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/include/include_FooDep10.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/include/include_FooDep10.h new file mode 100644 index 00000000000..2c4e63c62ed --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/include/include_FooDep10.h @@ -0,0 +1 @@ +#define DEF_fooDep10 10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/my-dep10.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/my-dep10.cabal new file mode 100644 index 00000000000..dfe7156d032 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my-dep10/my-dep10.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my-dep10 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: FooDep10 + default-language: Haskell2010 + build-depends: + , base + , my-dep-dep01 + , my-dep-dep02 + , my-dep-dep03 + , my-dep-dep04 + , my-dep-dep05 + , my-dep-dep06 + , my-dep-dep07 + , my-dep-dep08 + , my-dep-dep09 + , my-dep-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/Foo01.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/Foo01.hs new file mode 100644 index 00000000000..007e3df90b6 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/Foo01.hs @@ -0,0 +1,27 @@ +module Foo01 (foo01) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo01 :: Int +foo01 = sum + [ 01 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/include/include_Foo01.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/include/include_Foo01.h new file mode 100644 index 00000000000..6ce0ec798ac --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/include/include_Foo01.h @@ -0,0 +1 @@ +#define DEF_foo01 1 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/my01.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/my01.cabal new file mode 100644 index 00000000000..3aa3c5b1f12 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my01/my01.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my01 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo01 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/Foo02.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/Foo02.hs new file mode 100644 index 00000000000..daeb7e06689 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/Foo02.hs @@ -0,0 +1,27 @@ +module Foo02 (foo02) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo02 :: Int +foo02 = sum + [ 02 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/include/include_Foo02.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/include/include_Foo02.h new file mode 100644 index 00000000000..016f6956b67 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/include/include_Foo02.h @@ -0,0 +1 @@ +#define DEF_foo02 2 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/my02.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/my02.cabal new file mode 100644 index 00000000000..63dc442984e --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my02/my02.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my02 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo02 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/Foo03.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/Foo03.hs new file mode 100644 index 00000000000..bf9cc8c495b --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/Foo03.hs @@ -0,0 +1,27 @@ +module Foo03 (foo03) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo03 :: Int +foo03 = sum + [ 03 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/include/include_Foo03.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/include/include_Foo03.h new file mode 100644 index 00000000000..1ed4f567d95 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/include/include_Foo03.h @@ -0,0 +1 @@ +#define DEF_foo03 3 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/my03.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/my03.cabal new file mode 100644 index 00000000000..534c5e914fb --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my03/my03.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my03 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo03 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/Foo04.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/Foo04.hs new file mode 100644 index 00000000000..654a7e0c661 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/Foo04.hs @@ -0,0 +1,27 @@ +module Foo04 (foo04) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo04 :: Int +foo04 = sum + [ 04 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/include/include_Foo04.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/include/include_Foo04.h new file mode 100644 index 00000000000..f973f5e2e28 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/include/include_Foo04.h @@ -0,0 +1 @@ +#define DEF_foo04 4 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/my04.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/my04.cabal new file mode 100644 index 00000000000..b3e7cb025e9 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my04/my04.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my04 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo04 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/Foo05.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/Foo05.hs new file mode 100644 index 00000000000..6f011299199 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/Foo05.hs @@ -0,0 +1,27 @@ +module Foo05 (foo05) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo05 :: Int +foo05 = sum + [ 05 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/include/include_Foo05.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/include/include_Foo05.h new file mode 100644 index 00000000000..d1554139188 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/include/include_Foo05.h @@ -0,0 +1 @@ +#define DEF_foo05 5 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/my05.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/my05.cabal new file mode 100644 index 00000000000..4d55d71db4d --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my05/my05.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my05 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo05 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/Foo06.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/Foo06.hs new file mode 100644 index 00000000000..4ba7567a5b2 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/Foo06.hs @@ -0,0 +1,27 @@ +module Foo06 (foo06) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo06 :: Int +foo06 = sum + [ 06 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/include/include_Foo06.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/include/include_Foo06.h new file mode 100644 index 00000000000..b27035afce2 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/include/include_Foo06.h @@ -0,0 +1 @@ +#define DEF_foo06 6 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/my06.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/my06.cabal new file mode 100644 index 00000000000..7e4a1f00028 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my06/my06.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my06 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo06 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/Foo07.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/Foo07.hs new file mode 100644 index 00000000000..6701e0b2619 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/Foo07.hs @@ -0,0 +1,27 @@ +module Foo07 (foo07) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo07 :: Int +foo07 = sum + [ 07 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/include/include_Foo07.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/include/include_Foo07.h new file mode 100644 index 00000000000..64d8cc6a7b9 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/include/include_Foo07.h @@ -0,0 +1 @@ +#define DEF_foo07 7 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/my07.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/my07.cabal new file mode 100644 index 00000000000..8f77521878d --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my07/my07.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my07 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo07 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/Foo08.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/Foo08.hs new file mode 100644 index 00000000000..294c7db3384 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/Foo08.hs @@ -0,0 +1,27 @@ +module Foo08 (foo08) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo08 :: Int +foo08 = sum + [ 08 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/include/include_Foo08.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/include/include_Foo08.h new file mode 100644 index 00000000000..361e7a289a6 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/include/include_Foo08.h @@ -0,0 +1 @@ +#define DEF_foo08 8 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/my08.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/my08.cabal new file mode 100644 index 00000000000..2bf62465840 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my08/my08.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my08 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo08 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/Foo09.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/Foo09.hs new file mode 100644 index 00000000000..74b5d2ecb7f --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/Foo09.hs @@ -0,0 +1,27 @@ +module Foo09 (foo09) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo09 :: Int +foo09 = sum + [ 09 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/include/include_Foo09.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/include/include_Foo09.h new file mode 100644 index 00000000000..7d61d6507e2 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/include/include_Foo09.h @@ -0,0 +1 @@ +#define DEF_foo09 9 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/my09.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/my09.cabal new file mode 100644 index 00000000000..c47b759958e --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my09/my09.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my09 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo09 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/Foo10.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/Foo10.hs new file mode 100644 index 00000000000..896730ca8bd --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/Foo10.hs @@ -0,0 +1,27 @@ +module Foo10 (foo10) where + +import FooDep01 +import FooDep02 +import FooDep03 +import FooDep04 +import FooDep05 +import FooDep06 +import FooDep07 +import FooDep08 +import FooDep09 +import FooDep10 + +foo10 :: Int +foo10 = sum + [ 10 + , fooDep01 + , fooDep02 + , fooDep03 + , fooDep04 + , fooDep05 + , fooDep06 + , fooDep07 + , fooDep08 + , fooDep09 + , fooDep10 + ] diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/include/include_Foo10.h b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/include/include_Foo10.h new file mode 100644 index 00000000000..d8d5ad21d36 --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/include/include_Foo10.h @@ -0,0 +1 @@ +#define DEF_foo10 10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/lib/libdummy-unused-lib.a b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/lib/libdummy-unused-lib.a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/my10.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/my10.cabal new file mode 100644 index 00000000000..fe9d8542e1b --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/deps/my10/my10.cabal @@ -0,0 +1,21 @@ +cabal-version: 3.0 +name: my10 +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + exposed-modules: Foo10 + default-language: Haskell2010 + build-depends: + , base + , my-dep01 + , my-dep02 + , my-dep03 + , my-dep04 + , my-dep05 + , my-dep06 + , my-dep07 + , my-dep08 + , my-dep09 + , my-dep10 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/my-toplevel.cabal b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/my-toplevel.cabal new file mode 100644 index 00000000000..62f16048d3e --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/my-toplevel.cabal @@ -0,0 +1,33 @@ +cabal-version: 3.6 +name: my-toplevel +description: Test that extra-include-dirs and extra-lib-dirs are not duplicated unnecessarily when e.g. gcc gets ultimately invoked +version: 0.1 +license: BSD-3-Clause +build-type: Simple + +library + default-language: + Haskell2010 + exposed-modules: + Foo + -- build-tool-depends: + -- , hsc2hs:hsc2hs + hsc2hs-options: + -DTEST_OPTION=42 + build-depends: + , base + , my01 + , my02 + , my03 + , my04 + , my05 + , my06 + , my07 + , my08 + , my09 + , my10 + +executable my-executable + main-is: Main.hs + build-depends: base, my-toplevel + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.out b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.out new file mode 100644 index 00000000000..485946cb20a --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.out @@ -0,0 +1,2 @@ +# my-toplevel my-executable +Result = 6312 diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.test.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.test.hs new file mode 100644 index 00000000000..0a89a85e6fa --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.test.hs @@ -0,0 +1,96 @@ + +import Test.Cabal.Prelude + +-- --extra-include-dirs have to be absolute paths so this cannot +-- be specified in the cabal.project nor cabal.config. +includeDirs :: [String] +includeDirs = + [ "deps/my01/include" + , "deps/my02/include" + , "deps/my03/include" + , "deps/my04/include" + , "deps/my05/include" + , "deps/my06/include" + , "deps/my07/include" + , "deps/my08/include" + , "deps/my09/include" + , "deps/my10/include" + , "deps/my-dep01/include" + , "deps/my-dep02/include" + , "deps/my-dep03/include" + , "deps/my-dep04/include" + , "deps/my-dep05/include" + , "deps/my-dep06/include" + , "deps/my-dep07/include" + , "deps/my-dep08/include" + , "deps/my-dep09/include" + , "deps/my-dep10/include" + , "deps/my-dep-dep01/include" + , "deps/my-dep-dep02/include" + , "deps/my-dep-dep03/include" + , "deps/my-dep-dep04/include" + , "deps/my-dep-dep05/include" + , "deps/my-dep-dep06/include" + , "deps/my-dep-dep07/include" + , "deps/my-dep-dep08/include" + , "deps/my-dep-dep09/include" + , "deps/my-dep-dep10/include" + ] + +-- --extra-lib-dirs have to be absolute paths so this cannot +-- be specified in the cabal.project nor cabal.config. +libDirs :: [String] +libDirs = + [ "deps/my01/lib" + , "deps/my02/lib" + , "deps/my03/lib" + , "deps/my04/lib" + , "deps/my05/lib" + , "deps/my06/lib" + , "deps/my07/lib" + , "deps/my08/lib" + , "deps/my09/lib" + , "deps/my10/lib" + , "deps/my-dep01/lib" + , "deps/my-dep02/lib" + , "deps/my-dep03/lib" + , "deps/my-dep04/lib" + , "deps/my-dep05/lib" + , "deps/my-dep06/lib" + , "deps/my-dep07/lib" + , "deps/my-dep08/lib" + , "deps/my-dep09/lib" + , "deps/my-dep10/lib" + , "deps/my-dep-dep01/lib" + , "deps/my-dep-dep02/lib" + , "deps/my-dep-dep03/lib" + , "deps/my-dep-dep04/lib" + , "deps/my-dep-dep05/lib" + , "deps/my-dep-dep06/lib" + , "deps/my-dep-dep07/lib" + , "deps/my-dep-dep08/lib" + , "deps/my-dep-dep09/lib" + , "deps/my-dep-dep10/lib" + ] + + +main :: IO () +main = cabalTest $ do + cwd <- testSourceDir <$> getTestEnv + + -- The intention is to pass these flags via cabal.project or cabal.config, + -- but these directories must be absolute paths so we cannot commit + -- necessary cabal.project in the repository and have to resort to + -- the command-line arguments instead. + let includeFlags = + concatMap (\x -> ["--extra-include-dirs", cwd x]) includeDirs + libFlags = + concatMap (\x -> ["--extra-lib-dirs", cwd x]) libDirs + + -- Parallel flag means output of this test is nondeterministic + _<- recordMode DoNotRecord $ + cabal "v2-build" $ ["-j", "my-toplevel:exe:my-executable"] ++ includeFlags ++ libFlags + r <- withPlan $ runPlanExe' "my-toplevel" "my-executable" [] + assertOutputContains + ("Result = " ++ show (42 + 55 + 10 * (55 + 10 * 55) + 3 * 55)) + r From 2317a6708d64cc131a36973f482ae68d317c4ae9 Mon Sep 17 00:00:00 2001 From: Sergey Vinokurov Date: Thu, 19 Jun 2025 23:02:00 +0100 Subject: [PATCH 2/5] Rearrange genPureArgs for hsc2hs without changing semantics --- Cabal/src/Distribution/Simple/PreProcess.hs | 178 ++++++++++---------- 1 file changed, 91 insertions(+), 87 deletions(-) diff --git a/Cabal/src/Distribution/Simple/PreProcess.hs b/Cabal/src/Distribution/Simple/PreProcess.hs index 697a0e490dd..7e146c9a391 100644 --- a/Cabal/src/Distribution/Simple/PreProcess.hs +++ b/Cabal/src/Distribution/Simple/PreProcess.hs @@ -518,44 +518,74 @@ ppHsc2hs bi lbi clbi = -- directly, or via a response file. genPureArgs :: Version -> ConfiguredProgram -> String -> String -> [String] genPureArgs hsc2hsVersion gccProg inFile outFile = - -- Additional gcc options - [ "--cflag=" ++ opt - | opt <- - programDefaultArgs gccProg - ++ programOverrideArgs gccProg - ] - ++ [ "--lflag=" ++ opt - | opt <- - programDefaultArgs gccProg - ++ programOverrideArgs gccProg - ] - -- OSX frameworks: - ++ [ what ++ "=-F" ++ opt - | isOSX - , opt <- nub (concatMap Installed.frameworkDirs pkgs) - , what <- ["--cflag", "--lflag"] - ] - ++ [ "--lflag=" ++ arg - | isOSX - , opt <- map getSymbolicPath (PD.frameworks bi) ++ concatMap Installed.frameworks pkgs - , arg <- ["-framework", opt] - ] - -- Note that on ELF systems, wherever we use -L, we must also use -R - -- because presumably that -L dir is not on the normal path for the - -- system's dynamic linker. This is needed because hsc2hs works by - -- compiling a C program and then running it. - - ++ ["--cflag=" ++ opt | opt <- platformDefines lbi] - -- Options from the current package: - ++ ["--cflag=-I" ++ u dir | dir <- PD.includeDirs bi] - ++ [ "--cflag=-I" ++ u (buildDir lbi unsafeCoerceSymbolicPath relDir) - | relDir <- mapMaybe symbolicPathRelative_maybe $ PD.includeDirs bi - ] - ++ [ "--cflag=" ++ opt - | opt <- - PD.ccOptions bi - ++ PD.cppOptions bi - -- hsc2hs uses the C ABI + cflags + ++ ldflags + ++ preccldFlags + ++ hsc2hsOptions bi + ++ postccldFlags + ++ ["-o", outFile, inFile] + where + ldflags = + map ("--lflag=" ++) $ + concat + [ programDefaultArgs gccProg ++ programOverrideArgs gccProg + , osxFrameworkDirs + , [ arg + | isOSX + , opt <- map getSymbolicPath (PD.frameworks bi) ++ concatMap Installed.frameworks pkgs + , arg <- ["-framework", opt] + ] + , -- Note that on ELF systems, wherever we use -L, we must also use -R + -- because presumably that -L dir is not on the normal path for the + -- system's dynamic linker. This is needed because hsc2hs works by + -- compiling a C program and then running it. + + -- Options from the current package: + [ "-L" ++ u opt + | opt <- + if withFullyStaticExe lbi + then PD.extraLibDirsStatic bi + else PD.extraLibDirs bi + ] + , [ "-Wl,-R," ++ u opt + | isELF + , opt <- + if withFullyStaticExe lbi + then PD.extraLibDirsStatic bi + else PD.extraLibDirs bi + ] + , ["-l" ++ opt | opt <- PD.extraLibs bi] + , PD.ldOptions bi + , -- Options from dependent packages + [ opt + | pkg <- pkgs + , opt <- + ["-L" ++ opt | opt <- Installed.libraryDirs pkg] + ++ [ "-Wl,-R," ++ opt | isELF, opt <- Installed.libraryDirs pkg + ] + ++ [ "-l" ++ opt + | opt <- + if withFullyStaticExe lbi + then Installed.extraLibrariesStatic pkg + else Installed.extraLibraries pkg + ] + ++ Installed.ldOptions pkg + ] + ] + + cflags = + map ("--cflag=" ++) $ + concat + [ programDefaultArgs gccProg ++ programOverrideArgs gccProg + , osxFrameworkDirs + , platformDefines lbi + , -- Options from the current package: + ["-I" ++ u dir | dir <- PD.includeDirs bi] + , [ "-I" ++ u (buildDir lbi unsafeCoerceSymbolicPath relDir) + | relDir <- mapMaybe symbolicPathRelative_maybe $ PD.includeDirs bi + ] + + , -- hsc2hs uses the C ABI -- We assume that there are only C sources -- and C++ functions are exported via a C -- interface and wrapped in a C source file. @@ -563,56 +593,30 @@ ppHsc2hs bi lbi clbi = -- because there will not be C++ sources. -- -- DO NOT add PD.cxxOptions unless this changes! - ] - ++ [ "--cflag=" ++ opt - | opt <- - [ "-I" ++ u (autogenComponentModulesDir lbi clbi) - , "-I" ++ u (autogenPackageModulesDir lbi) - , "-include" - , u $ autogenComponentModulesDir lbi clbi makeRelativePathEx cppHeaderName + PD.ccOptions bi ++ PD.cppOptions bi + + , + [ "-I" ++ u (autogenComponentModulesDir lbi clbi) + , "-I" ++ u (autogenPackageModulesDir lbi) + , "-include" + , u $ autogenComponentModulesDir lbi clbi makeRelativePathEx cppHeaderName + ] + + , -- Options from dependent packages + [ opt + | pkg <- pkgs + , opt <- + ["-I" ++ opt | opt <- Installed.includeDirs pkg] + ++ Installed.ccOptions pkg + ] ] - ] - ++ [ "--lflag=-L" ++ u opt - | opt <- - if withFullyStaticExe lbi - then PD.extraLibDirsStatic bi - else PD.extraLibDirs bi - ] - ++ [ "--lflag=-Wl,-R," ++ u opt - | isELF - , opt <- - if withFullyStaticExe lbi - then PD.extraLibDirsStatic bi - else PD.extraLibDirs bi - ] - ++ ["--lflag=-l" ++ opt | opt <- PD.extraLibs bi] - ++ ["--lflag=" ++ opt | opt <- PD.ldOptions bi] - -- Options from dependent packages - ++ [ "--cflag=" ++ opt - | pkg <- pkgs - , opt <- - ["-I" ++ opt | opt <- Installed.includeDirs pkg] - ++ Installed.ccOptions pkg - ] - ++ [ "--lflag=" ++ opt - | pkg <- pkgs - , opt <- - ["-L" ++ opt | opt <- Installed.libraryDirs pkg] - ++ [ "-Wl,-R," ++ opt | isELF, opt <- Installed.libraryDirs pkg - ] - ++ [ "-l" ++ opt - | opt <- - if withFullyStaticExe lbi - then Installed.extraLibrariesStatic pkg - else Installed.extraLibraries pkg - ] - ++ Installed.ldOptions pkg - ] - ++ preccldFlags - ++ hsc2hsOptions bi - ++ postccldFlags - ++ ["-o", outFile, inFile] - where + + osxFrameworkDirs = + [ "-F" ++ opt + | isOSX + , opt <- ordNub (concatMap Installed.frameworkDirs pkgs) + ] + -- hsc2hs flag parsing was wrong -- (see -- https://github.com/haskell/hsc2hs/issues/35) -- so we need to put -- --cc/--ld *after* hsc2hsOptions, From c917edcda11412aaf459308d4b62e518394a8626 Mon Sep 17 00:00:00 2001 From: Sergey Vinokurov Date: Thu, 19 Jun 2025 23:02:29 +0100 Subject: [PATCH 3/5] Deduplicate arguments that hsc2hs passes to gcc and ld MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If extra-lib-dirs and/or extra-include-dirs are specified via either command line or project files, they’re going to be added for each package in the dendency graph. With enough long enough directories the command-line length limits for gcc may be hit and calls to the C compiler made from hsc2hs will start failing. Ideally hsc2hs should be using repsonse files, but needlessly specifying myriad of command-line parameters is redundant anyway. --- Cabal/src/Distribution/Simple/PreProcess.hs | 155 ++++++++++---------- 1 file changed, 77 insertions(+), 78 deletions(-) diff --git a/Cabal/src/Distribution/Simple/PreProcess.hs b/Cabal/src/Distribution/Simple/PreProcess.hs index 7e146c9a391..4db235065c7 100644 --- a/Cabal/src/Distribution/Simple/PreProcess.hs +++ b/Cabal/src/Distribution/Simple/PreProcess.hs @@ -527,89 +527,88 @@ ppHsc2hs bi lbi clbi = where ldflags = map ("--lflag=" ++) $ - concat - [ programDefaultArgs gccProg ++ programOverrideArgs gccProg - , osxFrameworkDirs - , [ arg - | isOSX - , opt <- map getSymbolicPath (PD.frameworks bi) ++ concatMap Installed.frameworks pkgs - , arg <- ["-framework", opt] - ] - , -- Note that on ELF systems, wherever we use -L, we must also use -R - -- because presumably that -L dir is not on the normal path for the - -- system's dynamic linker. This is needed because hsc2hs works by - -- compiling a C program and then running it. - - -- Options from the current package: - [ "-L" ++ u opt - | opt <- - if withFullyStaticExe lbi - then PD.extraLibDirsStatic bi - else PD.extraLibDirs bi - ] - , [ "-Wl,-R," ++ u opt - | isELF - , opt <- - if withFullyStaticExe lbi - then PD.extraLibDirsStatic bi - else PD.extraLibDirs bi - ] - , ["-l" ++ opt | opt <- PD.extraLibs bi] - , PD.ldOptions bi - , -- Options from dependent packages - [ opt - | pkg <- pkgs - , opt <- - ["-L" ++ opt | opt <- Installed.libraryDirs pkg] - ++ [ "-Wl,-R," ++ opt | isELF, opt <- Installed.libraryDirs pkg - ] - ++ [ "-l" ++ opt - | opt <- - if withFullyStaticExe lbi - then Installed.extraLibrariesStatic pkg - else Installed.extraLibraries pkg - ] - ++ Installed.ldOptions pkg + ordNub $ + concat + [ programDefaultArgs gccProg ++ programOverrideArgs gccProg + , osxFrameworkDirs + , [ arg + | isOSX + , opt <- map getSymbolicPath (PD.frameworks bi) ++ concatMap Installed.frameworks pkgs + , arg <- ["-framework", opt] + ] + , -- Note that on ELF systems, wherever we use -L, we must also use -R + -- because presumably that -L dir is not on the normal path for the + -- system's dynamic linker. This is needed because hsc2hs works by + -- compiling a C program and then running it. + + -- Options from the current package: + [ "-L" ++ u opt + | opt <- + if withFullyStaticExe lbi + then PD.extraLibDirsStatic bi + else PD.extraLibDirs bi + ] + , [ "-Wl,-R," ++ u opt + | isELF + , opt <- + if withFullyStaticExe lbi + then PD.extraLibDirsStatic bi + else PD.extraLibDirs bi + ] + , ["-l" ++ opt | opt <- PD.extraLibs bi] + , PD.ldOptions bi + , -- Options from dependent packages + [ opt + | pkg <- pkgs + , opt <- + ["-L" ++ opt | opt <- Installed.libraryDirs pkg] + ++ [ "-Wl,-R," ++ opt | isELF, opt <- Installed.libraryDirs pkg + ] + ++ [ "-l" ++ opt + | opt <- + if withFullyStaticExe lbi + then Installed.extraLibrariesStatic pkg + else Installed.extraLibraries pkg + ] + ++ Installed.ldOptions pkg + ] ] - ] cflags = map ("--cflag=" ++) $ - concat - [ programDefaultArgs gccProg ++ programOverrideArgs gccProg - , osxFrameworkDirs - , platformDefines lbi - , -- Options from the current package: - ["-I" ++ u dir | dir <- PD.includeDirs bi] - , [ "-I" ++ u (buildDir lbi unsafeCoerceSymbolicPath relDir) - | relDir <- mapMaybe symbolicPathRelative_maybe $ PD.includeDirs bi - ] - - , -- hsc2hs uses the C ABI - -- We assume that there are only C sources - -- and C++ functions are exported via a C - -- interface and wrapped in a C source file. - -- Therefore we do not supply C++ flags - -- because there will not be C++ sources. - -- - -- DO NOT add PD.cxxOptions unless this changes! - PD.ccOptions bi ++ PD.cppOptions bi - - , - [ "-I" ++ u (autogenComponentModulesDir lbi clbi) - , "-I" ++ u (autogenPackageModulesDir lbi) - , "-include" - , u $ autogenComponentModulesDir lbi clbi makeRelativePathEx cppHeaderName - ] - - , -- Options from dependent packages - [ opt - | pkg <- pkgs - , opt <- - ["-I" ++ opt | opt <- Installed.includeDirs pkg] - ++ Installed.ccOptions pkg + ordNub $ + concat + [ programDefaultArgs gccProg ++ programOverrideArgs gccProg + , osxFrameworkDirs + , platformDefines lbi + , -- Options from the current package: + ["-I" ++ u dir | dir <- PD.includeDirs bi] + , [ "-I" ++ u (buildDir lbi unsafeCoerceSymbolicPath relDir) + | relDir <- mapMaybe symbolicPathRelative_maybe $ PD.includeDirs bi + ] + , -- hsc2hs uses the C ABI + -- We assume that there are only C sources + -- and C++ functions are exported via a C + -- interface and wrapped in a C source file. + -- Therefore we do not supply C++ flags + -- because there will not be C++ sources. + -- + -- DO NOT add PD.cxxOptions unless this changes! + PD.ccOptions bi ++ PD.cppOptions bi + , + [ "-I" ++ u (autogenComponentModulesDir lbi clbi) + , "-I" ++ u (autogenPackageModulesDir lbi) + , "-include" + , u $ autogenComponentModulesDir lbi clbi makeRelativePathEx cppHeaderName + ] + , -- Options from dependent packages + [ opt + | pkg <- pkgs + , opt <- + ["-I" ++ opt | opt <- Installed.includeDirs pkg] + ++ Installed.ccOptions pkg + ] ] - ] osxFrameworkDirs = [ "-F" ++ opt From e38f45d9c8ef9d40df3424299774a87868adb9df Mon Sep 17 00:00:00 2001 From: Sergey Vinokurov Date: Thu, 19 Jun 2025 23:32:32 +0100 Subject: [PATCH 4/5] Add changelog --- changelog.d/pr-11005.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 changelog.d/pr-11005.md diff --git a/changelog.d/pr-11005.md b/changelog.d/pr-11005.md new file mode 100644 index 00000000000..42bcd334c78 --- /dev/null +++ b/changelog.d/pr-11005.md @@ -0,0 +1,9 @@ +--- +synopsis: Deduplicate hsc2hs command-line arguments +packages: [Cabal] +prs: 11005 +--- + +Fix a problem where `hsc2hs` becomes non-operational on packages with +lots of dependencies and projects that specify lots of +`extra-include-dirs` or `extra-lib-dirs`. From c3b3b82aca0f46c6066360908c84a7d17f09857b Mon Sep 17 00:00:00 2001 From: Sergey Vinokurov Date: Fri, 20 Jun 2025 00:01:26 +0100 Subject: [PATCH 5/5] Override C compiler for testing that no duplicate arguments are passed --- .../TooManyCommandLineArgs/custom-cc | 72 +++++++++++++++++++ .../TooManyCommandLineArgs/setup.test.hs | 13 +++- 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100755 cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/custom-cc diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/custom-cc b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/custom-cc new file mode 100755 index 00000000000..79054cac89f --- /dev/null +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/custom-cc @@ -0,0 +1,72 @@ +#!/usr/bin/env bash + +# NB only check for duplicated -L or -I arguments because that’s the +# primary source of duplication. Some minor duplicates can also occur, +# like -Wl,--no-as-needed but there’s not too many of them yet to +# cause command line overflow. + +# Quadratic algorithm because darwin CI doesn’t seem to have bash that +# supports associative arrays. +check_duplicate() { + local test_arg="$1" + local occurs="0" + + if ! [[ "$test_arg" == -L* || "$test_arg" == -I* ]]; then + return 0 + fi + + shift + for tmp in "${@}"; do + if [[ "$tmp" == @* ]]; then + while IFS= read -d $'\n' -r arg ; do + if [[ "$arg" == "$test_arg" ]]; then + occurs=$((occurs + 1)) + fi + done <"${tmp#@}" + else + if [[ "$tmp" == "$test_arg" ]]; then + occurs=$((occurs + 1)) + fi + fi + done + + if [[ "$occurs" -gt 1 ]]; then + return 1 + else + return 0 + fi +} + +i=1 +for x in "${@}"; do + if [[ "$x" == @* ]]; then + file= + while IFS= read -d $'\n' -r arg ; do + y="$arg" + if ! check_duplicate "$arg" "${@:$i}"; then + echo "Duplicate argument detected: '$y'" + echo "All args: ${@}" + exit 1 + fi + done <"${x#@}" + else + if ! check_duplicate "$x" "${@:$i}"; then + echo "Duplicate argument detected: '$x'" + echo "All args: ${@}" + exit 1 + fi + fi + + i=$((i + 1)) +done + +if which cc >/dev/null 2>&1; then + cc -DNOERROR6 "${@}" +elif which gcc >/dev/null 2>&1; then + gcc -DNOERROR6 "${@}" +elif which clang >/dev/null 2>&1; then + clang -DNOERROR6 "${@}" +else + echo "Cannot find C compiler" >&2 + exit 1 +fi diff --git a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.test.hs b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.test.hs index 0a89a85e6fa..036d10cbdce 100644 --- a/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.test.hs +++ b/cabal-testsuite/PackageTests/PreProcess/TooManyCommandLineArgs/setup.test.hs @@ -87,9 +87,20 @@ main = cabalTest $ do libFlags = concatMap (\x -> ["--extra-lib-dirs", cwd x]) libDirs + let customCC = cwd "custom-cc" + -- Parallel flag means output of this test is nondeterministic _<- recordMode DoNotRecord $ - cabal "v2-build" $ ["-j", "my-toplevel:exe:my-executable"] ++ includeFlags ++ libFlags + cabal "v2-build" $ + ["-j", "my-toplevel:exe:my-executable"] + -- Don’t validate absence of duplicates on Windows because + -- it’s too inconvenient to do in bat files. Let’s just + -- assume that deduplication will happen on Windows but + -- still try to run the test to see whether command-line + -- argument length limit is not hit. + ++ ["--with-gcc=" ++ customCC | not isWindows] + ++ includeFlags + ++ libFlags r <- withPlan $ runPlanExe' "my-toplevel" "my-executable" [] assertOutputContains ("Result = " ++ show (42 + 55 + 10 * (55 + 10 * 55) + 3 * 55))