1
1
mirror of https://github.com/sol/hpack.git synced 2024-10-04 03:38:00 +03:00
Commit Graph

430 Commits

Author SHA1 Message Date
quasicomputational
c685fa5148 Set cabal-version to >= 1.18 when using extra-doc-files. 2018-01-07 13:56:26 +00:00
Simon Hengel
67e57847e5 Add shorthand syntax for defaults 2017-12-27 22:24:41 +08:00
Simon Hengel
02695159d4 Reject colon in defaults.path (close #244) 2017-12-27 22:05:42 +08:00
Simon Hengel
a69ec1a135 Create directory for defaults cache entry only on 200 2017-12-27 13:13:54 +08:00
Simon Hengel
a1d9a5f102 Reject absolute paths and .. for defaults.path (see #244) 2017-12-26 15:03:12 +08:00
Simon Hengel
f525cf1cc3 Reject invalid refs for defaults (see #244) 2017-12-26 15:02:43 +08:00
Simon Hengel
291d70eed0 Reject invalid user / repo names in defaults (see #244) 2017-12-25 13:49:30 +08:00
Simon Hengel
45e17c6246 Refactoring 2017-12-25 09:26:22 +08:00
Simon Hengel
748c4b561b Refactoring 2017-12-25 00:16:56 +08:00
Simon Hengel
96effadad0 Add support for defaults 2017-12-24 17:53:39 +08:00
Simon Hengel
8c17897a23 Refactoring 2017-12-24 17:53:39 +08:00
Simon Hengel
8d131e4a45 Do merging on CommonOptions instead of Section 2017-12-24 17:53:39 +08:00
Simon Hengel
42d01e873a Add Functor instance for CommonOptions 2017-12-24 17:53:39 +08:00
Simon Hengel
0353d60af1 Refactoring 2017-12-24 17:53:39 +08:00
Simon Hengel
0b8adbd813 Add Monoid instance for CommonOptions 2017-12-24 17:53:39 +08:00
Simon Hengel
7a1d2d7d1d Move some of he code related to parsing to Hpack.Syntax.* 2017-12-23 12:00:57 +08:00
Simon Hengel
cd3357c93e Refactoring 2017-12-18 12:38:03 +08:00
Simon Hengel
5f6f3ce5c1 Refactoring, update CHANGELOG, require Cabal >= 2.0 for signatures
(see #231)
2017-12-15 14:21:22 +08:00
Simon Hengel
7127574866 Merge remote-tracking branch 'origin/pr/231' into refactoring 2017-12-15 13:30:36 +08:00
Simon Hengel
175a812cff Add --numeric-version 2017-12-13 20:19:41 +08:00
Simon Hengel
204f57a1aa Do not infer outer modules in conditionals (see #236) 2017-12-13 18:18:34 +08:00
waddlaw
6e407c2456 Add Backpack signatures 2017-12-13 16:53:26 +09:00
Simon Hengel
56a2161e4f Refactoring 2017-12-13 14:27:29 +08:00
Simon Hengel
84a9a2dd05 Infer Paths_* for executable, even is no source-dirs are specified 2017-12-13 12:51:08 +08:00
Simon Hengel
b4c86f9272 Rename pkg-configs to pkg-config-dependencies 2017-12-13 08:33:28 +08:00
Simon Hengel
4f8291eec9 Merge pull request #185
Add support for pkg-configs
2017-12-12 17:04:32 +08:00
Simon Hengel
7de7cd86f3
Merge pull request #224 from quasicomputational/extra-doc-files
Implement extra-doc-files.
2017-12-12 15:24:18 +08:00
Simon Hengel
8aa7537fed Allow dependency constraints to be numbers (close #234) 2017-12-12 09:42:25 +08:00
Simon Hengel
6437dd611c Refactoring 2017-12-08 16:17:04 +08:00
Simon Hengel
162f8410ce Refactoring 2017-12-08 13:31:55 +08:00
Simon Hengel
22d96db036 Minor semantics change when inferring modules for executable conditional 2017-12-08 12:50:17 +08:00
Simon Hengel
447afe436c Infer modules in library conditionals (close #228) 2017-12-08 12:46:28 +08:00
quasicomputational
941d37f37d Implement extra-doc-files.
Closes #206.
2017-12-05 15:15:51 +00:00
Simon Hengel
8f25c99318 Do not infer modules that are referenced in conditionals for executables 2017-12-04 16:47:59 +08:00
Simon Hengel
0268502381 Do not infer modules that are referenced in conditionals (fixes #209) 2017-12-04 16:44:13 +08:00
Simon Hengel
cd0435d5d8 Refactoring 2017-12-04 16:42:43 +08:00
Simon Hengel
a43d324772 Refactoring 2017-12-04 15:16:40 +08:00
Simon Hengel
c95b1937ff Use system specific newline encoding when doing IO (close #219) 2017-12-02 17:48:16 +08:00
Simon Hengel
041a6921b7 cleanup 2017-12-02 11:08:06 +08:00
Simon Hengel
d2aa76b610 Expand js-sources in conditionals (close #208) 2017-12-01 12:44:44 +08:00
Simon Hengel
f158144b0c Expand c-sources in conditionals 2017-11-24 13:58:50 +08:00
Simon Hengel
b86a7ad0cf Refactoring 2017-11-24 13:40:09 +08:00
Simon Hengel
3a46bca9a3 Refactoring 2017-11-24 09:06:48 +08:00
Simon Hengel
6245af55a3 Do not depend on base-compat 2017-11-24 09:06:09 +08:00
Simon Hengel
7539cd1d43 Enforce by type that we print all unknown field warnings 2017-11-23 13:13:52 +08:00
Simon Hengel
d80878396f Refactoring 2017-11-20 15:34:56 +08:00
Simon Hengel
1ed0475e2f Do not overwrite any existing cabal file if it has been modified manually 2017-11-16 22:35:53 +08:00
Zac Slade
9c4a813df0 Merge pr185-iss169 with master
Conflicts:
	src/Hpack/Config.hs (Constructor call fixup)
	src/Hpack/Run.hs (kdiff3 automatic)
	test/Hpack/ConfigSpec.hs (small massage)
2017-11-09 04:44:14 -06:00
Simon Hengel
5c0ff95778 Do not apply global options within conditionals (fixes #214) 2017-11-09 14:53:01 +08:00
Simon Hengel
a7d9820941 Refactoring 2017-11-07 23:35:23 +08:00
Simon Hengel
3fbbacab18 Wrap FieldName in a newtype 2017-11-06 17:53:38 +08:00
Simon Hengel
534de32220 Refactoring 2017-11-06 09:31:00 +08:00
bucklereed
aa10021af7 Support internal libraries. 2017-11-05 23:45:43 +08:00
Simon Hengel
2dc3e8d80f Refactoring 2017-11-05 23:44:40 +08:00
Simon Hengel
4025354fa9 Set cabal-version: >= 1.24 when custom-setup is used
(fixes #210, closes #204)
2017-11-03 10:51:33 +08:00
Simon Hengel
3ca7834018 Require cabal-version >= 2.22 when reexported-modules are used 2017-11-03 10:26:49 +08:00
Simon Hengel
dcafccfceb Remove trailing whitespace 2017-10-28 07:32:57 +08:00
Simon Hengel
6a55600c5f Accept section-specific fields in conditionals (fix #116, close #175) 2017-10-27 17:53:31 +08:00
Simon Hengel
834d9a5f53 Minor refactoring 2017-10-27 16:59:10 +08:00
Simon Hengel
e1f417d801 Only add Paths_* to executable if source-dirs is specified 2017-10-26 16:07:18 +08:00
Simon Hengel
a278e19597 Minor refactoring 2017-10-26 11:44:25 +08:00
Simon Hengel
9be3ad7b0d Minor refactoring 2017-10-26 11:17:08 +08:00
Simon Hengel
aef6b39017 Remove DeriveDataTypeable 2017-10-25 15:50:47 +08:00
Simon Hengel
44f7a8e01f Remove instance FromJSON Section 2017-10-25 12:32:33 +08:00
Simon Hengel
73a3fd0e16 Remove executableName, use a Map instead 2017-10-23 19:25:48 +08:00
Mike Craig
3b0f03bcd1 Add frameworks and extra-frameworks-dirs fields 2017-10-11 19:32:02 -07:00
Simon Hengel
fd2740c92d Glob 0.9.0 compat 2017-10-02 10:55:23 +08:00
Simon Hengel
ef73274cc5 Add IsList instance for Dependencies 2017-09-29 14:47:52 +08:00
Simon Hengel
3d8a98561e Accept specific versions and wildcard versions for dependencies 2017-09-26 19:15:13 +08:00
Simon Hengel
0402a445cb Refactoring 2017-09-26 19:15:13 +08:00
Simon Hengel
0ba59bd461 Refactoring 2017-09-26 17:47:11 +08:00
Simon Hengel
052a327842 Refactoring 2017-09-25 21:53:49 +08:00
Simon Hengel
27a237c1ae Refactoring 2017-09-25 21:00:38 +08:00
Simon Hengel
0da61393d2 minor refactoring (see #198) 2017-09-25 02:06:00 +08:00
Simon Hengel
ee804467f6 Merge branch 'master' into gh-186-dependency-map 2017-09-25 02:02:07 +08:00
Simon Hengel
393e4e7a6f Add Paths_* module to executables (close #195)
Otherwise we might get warnings with Cabal-2.* + GHC 8.2.1.
2017-09-25 00:47:15 +08:00
Taylor Fausak
b9c68d6bfd Allow specifying dependencies as a hash 2017-09-24 09:54:55 -05:00
Taylor Fausak
f9bb7b7888 Parse dependencies directly 2017-09-24 09:54:55 -05:00
Taylor Fausak
87f8c71697 Wrap dependencies in a newtype 2017-09-24 09:54:55 -05:00
Taylor Fausak
dedbf7e96a Add FromJSON instance for SourceDependency 2017-09-24 09:54:55 -05:00
Simon Hengel
4bd0f7b0ce Represent dependencies as a Map from names to versions 2017-09-23 19:44:31 +08:00
Simon Hengel
61d5bc299f Depend on Cabal for dependency parsing
(similar to #64, needed for #193)
2017-09-23 19:05:10 +08:00
Simon Hengel
4eb3978d9f Rename AddSource to SourceDependency 2017-09-23 16:08:06 +08:00
Simon Hengel
83f5110f82 GHC 8.2.1 compat 2017-09-23 05:37:41 +08:00
Blake Rain
63848ebf1d Use comma-separated list for pkgconfig-depends 2017-06-27 17:17:00 +01:00
Simon Hengel
83cba8b2b0 Infer modules for .chs and .ly 2017-06-24 08:47:46 +08:00
Blake Rain
98dfa2591e Add support for pkg-configs section (#169) 2017-06-23 12:52:37 +01:00
Charles Cooper
df0316b6b3 Recognize alex and happy files as Haskell modules 2017-06-22 10:19:06 -07:00
Simon Hengel
ceb9557bce Reject - for target 2017-06-15 07:41:00 +08:00
Simon Hengel
ce514cee60 Output generated cabal file to stdout when - is given (see #113) 2017-06-13 16:02:39 +08:00
Simon Hengel
daccfa48f5 Make executable a shortcut of executables: { package-name: ... }
(close #177, close #178)
2017-06-13 10:01:38 +08:00
Simon Hengel
cd504fb32f Do not descend into irrelevant directories when inferring modules
(#fixes #165)
2017-06-08 11:03:13 +08:00
Simon Hengel
5d788309bd Minor change to error messages for executables 2017-06-08 10:34:04 +08:00
Simon Hengel
fda6b8be03 Allow shortcut executables for both "executable" and "executables"
We will deprecate "executables" in 0.19.0 and remove it eventually.

(close #164)
2017-06-07 16:38:31 +08:00
Taylor Fausak
f405602e56 Add shortcut executable section 2017-06-07 15:37:13 +08:00
Simon Hengel
a6a13f79a5 Warn on unknown fields in benchmark sections 2017-06-07 11:11:26 +08:00
Simon Hengel
4370edb1e0 Minor refactoring 2017-03-31 16:43:28 +08:00
Simon Hengel
106a717d5f Update CHANGELOG 2017-03-19 12:12:32 +08:00
Robert J. Macomber
f13b24ad4d Add ghcjs-options and js-sources 2017-03-14 20:37:28 -07:00
Simon Hengel
352a959bc0 Accept input file on command-line (fixes #106) 2017-02-22 18:57:15 +08:00
Simon Hengel
d0515a4a24 Add Paths_* when no modules are specified (close #86) 2017-02-22 15:58:13 +08:00
Mitchell Rosen
4b6a530096
Allow license-file to be a list (fixes #137) 2017-02-02 11:43:48 -05:00
Tomas Janousek
d99bf2ffd4 Allow to "!include" yaml files
There seems to be little reason not to allow this. Security can hardly
be argued here as cabal custom setups and template haskell are far more
powerful in this regard.

See the changes in `README.md` for examples of usage.
2017-01-28 11:11:58 +01:00
Mitchell Rosen
8ce8ed3c61
Add setup-depends 2017-01-24 11:02:00 -05:00
Tomas Janousek
44aa5f6711 Silence warnings for unknown top-level fields starting with an underscore
This lets users declare standalone YAML anchors and reuse them using
YAML aliases later:

```yaml
_mydeps: &mydeps
  - base
  - containers
```

or

```yaml
_my_library_of_hpack_stuff:
  - &mydeps [base, containers]
  - &myflags [-threaded, -Wall]
```
2017-01-23 17:47:53 +01:00
Simon Hengel
79edaee4d6 Remove code duplication 2017-01-11 09:12:48 +08:00
Michael Snoyman
d106833ad1 Replace textual readFile with binary readFile 2017-01-08 07:44:48 +02:00
Michael Snoyman
331ab4eacc Use binary I/O for cabal files
This makes character encoding of UTF-8 explicit, and avoids problems
when a different system locale is set. For more information, see:
http://www.snoyman.com/blog/2016/12/beware-of-readfile
2017-01-06 12:21:58 +02:00
Simon Hengel
049f4723e4 Warn on missing name (close #109) 2016-09-23 22:47:34 +08:00
Simon Hengel
ab322382f5 Render . as ./. (close #125, close #119, close #67)
(for compatibility with cabal syntax)
2016-09-23 17:38:33 +08:00
Simon Hengel
201ec8ad79 refactoring 2016-09-11 19:05:07 +08:00
Simon Hengel
48abb4ae57 Merge pull request #123 from mitchellwrosen/master
Support globs in c-sources
2016-09-11 04:00:16 -07:00
Simon Hengel
00f622d78d More consistent naming 2016-09-07 15:12:14 +08:00
Mitchell Rosen
416256bb52
Support for non-Simple build-type 2016-09-03 11:44:01 -04:00
Mitchell Rosen
0718238fd2
Support globs in c-sources 2016-08-29 10:40:08 -04:00
Mitchell Rosen
38ad67df20
Support aeson-1.0.0.0 2016-08-15 07:52:56 -04:00
Mitchell Rosen
8a52e3b472
Consider .hsc files to be Haskell modules 2016-08-13 23:23:24 -04:00
Harendra Kumar
3f0650c90b Add support for cc-options field
Fixes #104
2016-06-15 01:04:03 +05:30
Sönke Hahn
2b1a38a753 add support for ghc-8 2016-06-10 21:09:58 +08:00
Sönke Hahn
e2f74a9a2f Merge pull request #96 from jacereda/master
Add support for build-tools, closes #50
2016-05-09 17:03:32 +08:00
Robbin C
711a538ea2 Rename hpackSilent to hpackResult for consistency 2016-05-09 16:58:03 +08:00
Michael Sloan
25e31f20f7 Add 'hpackSilent', with result datatype 2016-05-05 17:26:49 -07:00
Jorge Acereda
54031d51ee Add support for build-tools, closes #50 2016-05-05 00:34:15 +02:00
Simon Hengel
52288a80b7 Merge pull request #90 from lukexi/master
Add support for c-sources, extra-libraries & extra-lib-dirs
2016-04-29 15:28:26 +08:00
Michael Sloan
e7b53c8642 Fix build on ghc-8 2016-04-27 19:11:27 -07:00
Luke Iannini
048a6294c8 Use record syntax rather than positional arguments when constructing Sections 2016-04-21 03:37:35 -07:00
Luke Iannini
a7ef32393a Add support for c-sources, extra-libraries & extra-lib-dirs 2016-04-21 03:27:32 -07:00
Simon Hengel
26dcf05586 Re-export Alignment fro Hpack.Run 2016-04-08 15:47:14 +08:00
kenny shen
3cb20444ea Allow subdirectories for Git dependencies 2016-04-06 17:46:35 +08:00
Simon Hengel
6388008f77 Only re-generate cabal file if hpack is new enough
That is: If a user tries to re-generate an existing cabal file with an
older version of `hpack` than the one that was used to generate the
existing cabal file, then do nothing.
2016-04-01 21:50:10 +08:00
Simon Hengel
0ccb509ca0 Add more tests 2016-04-01 21:41:36 +08:00
Simon Hengel
205c287e5b Compatibility with older versions of GHC 2016-03-28 18:32:03 +08:00
Simon Hengel
fc69e6040c Retain section field order 2016-03-28 18:32:03 +08:00
Simon Hengel
c8a476ae81 Wrap alignment in a newtype 2016-03-27 19:24:06 +08:00
Simon Hengel
81544161c0 Wrap nesting in a newtype 2016-03-27 19:09:20 +08:00
Simon Hengel
a77a842e76 Add tests for field sorting 2016-03-27 19:09:06 +08:00
Simon Hengel
8480f529ed Proper grouping of if-then-else statement when rendering 2016-03-27 13:23:36 +08:00
Simon Hengel
4b50aa4751 More refactoring 2016-03-27 11:45:45 +08:00
Simon Hengel
18a24259e7 Refactoring 2016-03-27 09:45:26 +08:00
Simon Hengel
cd0cd24fc2 Fix warnings 2016-03-21 12:06:08 +08:00
Simon Hengel
90f7c06366 Add renamePackage 2016-03-21 11:46:17 +08:00
Simon Hengel
bbc7ab0644 Add support for exposed 2016-03-13 19:51:43 +08:00
Simon Hengel
a0f4628ea7 Add support for include-dirs and install-includes 2016-03-12 10:41:27 +08:00
Simon Hengel
adebb99f5b Deterministic ordering for executable sections, flags, etc. (close #84) 2016-03-03 12:35:53 +08:00
Simon Hengel
28a3a95beb Optionally allow else branch for conditionals (close #82) 2016-03-03 12:22:29 +08:00
Simon Hengel
fc0153f459 Add buildable option 2016-03-02 12:17:31 +08:00
Simon Hengel
e10815739d Add support for ld-options 2016-03-02 11:51:55 +08:00
Simon Hengel
e74c587bac Add support for flags 2016-03-01 17:14:27 +08:00
Simon Hengel
8c9953eb83 Add support for arbitrary Git URLs as source repository (close #79) 2016-03-01 09:51:47 +08:00
Simon Hengel
13cf0908e0 Add support for conditionals 2016-02-27 10:07:10 +08:00
Simon Hengel
02082810d8 minor refactoring 2016-02-27 09:45:37 +08:00
Simon Hengel
49ab5e6817 minor refactoring 2016-02-27 08:11:15 +08:00
Simon Hengel
b3d6d95aef Add --help (fixes #18, fixes #20) 2016-02-26 15:35:28 +08:00
Simon Hengel
f587864a14 Fix build for Windows (see #71) 2016-02-26 08:09:01 +08:00
Simon Hengel
187782a727 Minor refactoring (see #75) 2016-02-26 06:06:21 +08:00
Simon Hengel
d0c4c4bb7f Merge pull request #75 from mitchellwrosen/reexported-modules
Support reexported-modules field in library section
2016-02-26 06:02:05 +08:00
Simon Hengel
946d121b7f Accept license-file, even if it does not exist (see #74) 2016-02-26 05:31:31 +08:00
Mitchell Rosen
23a51701f5 Support reexported-modules field in library section 2016-02-22 10:40:59 -08:00
Mitchell Rosen
153b4580b0 Allow license-file to be specified 2016-02-22 10:01:17 -08:00
Simon Hengel
2b410f3363 Some refactoring (see #69) 2016-02-21 09:41:41 +08:00
silky
1b07981f72 Generates valid module names from dashed package names
Fixes #68 by replacing dashes with underscores. Adds a test to confirm
behaviour.
2016-02-21 11:34:01 +11:00
Simon Hengel
98110f843e Accept location to package directory on the command-line 2016-02-10 14:11:52 +08:00
Simon Hengel
d658ef757b Make independent of current working directory 2016-02-10 12:52:12 +08:00
Simon Hengel
bed0794c0a Handle Paths_* module 2016-02-05 21:55:11 +08:00
Simon Hengel
23a6ce1d42 Expose main driver as a library 2016-02-05 21:17:11 +08:00
Simon Hengel
897e840d87 Don't list other-extensions package.yaml 2015-11-05 04:48:37 +08:00
Oleg Grenrus
4ae50531cb Support other-extensions 2015-11-03 08:28:05 +02:00
kenny shen
61bd83c5e0 aeson 0.10.0 compatibility 2015-09-22 16:45:31 +08:00
kenny shen
83d3c66456 Allow local dependencies 2015-09-21 17:42:38 +08:00
Oleg Grenrus
93367d4328 Add benchmarks 2015-09-09 14:35:48 +03:00
kenny shen
b224045313 Add smart constructor for section 2015-09-02 11:35:06 +08:00
Hoang Xuan Phu
6916db2932 add support for ghc-prof-options 2015-09-02 10:44:47 +08:00
Hoang Xuan Phu
c2c83aa395 use CppOption instead of GhcOption when it makes sense 2015-09-02 10:41:35 +08:00
Oleg Grenrus
22e1865930 Add tested-with package field 2015-08-31 14:05:27 +08:00
kenny shen
67d1e6e914 More exports 2015-08-31 13:51:49 +08:00
Sönke Hahn
de5b6a7f38 better error message propagation when parsing List 2015-07-16 13:45:37 +08:00
Simon Hengel
fe947153ba Do not infer Setup when source dir is "." (addresses #37) 2015-07-16 11:51:25 +08:00
Simon Hengel
5ea133a225 Accept arbitrary entry points for executables 2015-07-15 09:13:59 +08:00
Simon Hengel
9b72d47efa Get rid of Data/Typeable instances 2015-07-11 21:18:27 +08:00
kenny shen
2ec77e890e Hpack.Render: allow nesting of stanzas 2015-07-10 14:29:05 +08:00
Simon Hengel
ebb8df96b1 Take indentation into account for source-repository, etc. 2015-07-09 22:36:33 +08:00
kenny shen
4867d8febf Preserve comma style 2015-07-09 21:39:47 +08:00
Linh Nguyen
7975b55e76 Preserve indentation of old cabal file 2015-07-09 17:31:40 +08:00
Linh Nguyen
ade26c57fd Move rendering into separated module 2015-07-09 16:36:36 +08:00
Linh Nguyen
f6ef50d8a5 Minor cleanup 2015-07-09 16:36:18 +08:00
kenny shen
7da3ac8d1f Remove empty line between dependency groups 2015-07-09 10:30:38 +08:00
kenny shen
3e4de9cd13 Further DRY up 2015-07-09 10:30:33 +08:00
Simon Hengel
635625d999 Render other-modules for executables 2015-07-09 10:13:36 +08:00
Simon Hengel
9e920f65cf Sort (close to) lexicographically 2015-07-09 09:25:16 +08:00
Simon Hengel
fa714aad6f Add support for data-files 2015-07-09 08:46:59 +08:00
kenny shen
5225fd3211 More DRY up 2015-07-09 08:11:21 +08:00
kenny shen
5b76219698 DRY up 2015-07-07 14:39:19 +08:00
Simon Hengel
af484b059f Warn if a pattern only matches a directory 2015-07-06 07:14:05 +08:00
Simon Hengel
8288913c39 Simplify 2015-07-06 07:04:28 +08:00
Mateusz Kowalczyk
82a39f2c07 Only traverse the filesystem once when deglobbing
For warnings, we simply recover which patterns haven't matched any of
the files that were found to match with globDir.
2015-07-05 13:31:41 +01:00
Simon Hengel
be1f1995bf Make description work with |-style multiline strings 2015-07-05 14:38:05 +08:00
Simon Hengel
b9114ccae6 Reject character ranges, etc. (only expand * and **) 2015-07-05 13:43:23 +08:00
Simon Hengel
e2bc732c14 bikeshedding 2015-07-05 13:43:23 +08:00
Simon Hengel
688d9e3c21 Minimize diff against origin/master 2015-07-05 13:43:23 +08:00
Simon Hengel
5630c953c3 Simplify and change warnings 2015-07-05 13:43:23 +08:00