/
rebar-for-hex.config.template
114 lines (76 loc) · 3.36 KB
/
rebar-for-hex.config.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
% This is a configuration file of rebar3, so that Ceylan-WOOPER can better
% integrate in the current OTP ecosystem, despite its (more complex, probably
% more flexible) native build based on GNU make.
%
% If the name of this file is 'rebar.config', then it is a generated file,
% otherwise it is a template (located in conf/rebar.config.template), meant to
% be filled by information determined at build time or coming from
% GNUmakevars.inc.
%
% See the Myriad counterpart file (same name) for more explanations.
% Base layout was obtained thanks to: 'rebar3 new app wooper', as WOOPER is an
% active OTP application (not a mere library).
% To be taken into account, from the library root, through 'make
% rebar3-application' or 'make rebar3-release'.
% Settings for the 'default' profile follow.
% Depends on the Ceylan-Myriad OTP library application (Erlang implied):
% As a GIT-based dependency:
%{deps, [ {myriad, {git, "git://github.com/Olivier-Boudeville/Ceylan-Myriad",
% {branch, "master"}}} ] }.
% As an hex-package dependency:
%
% (works if the package uses a specific hook script, see
% hex-compile-hook-script.sh, to compensate for the GNUmake* root files that the
% package archive will not include at their location)
%
{deps, [ {myriad, "MYRIAD_VERSION_FOR_OTP"} ] }.
% Include directories found in INC:
{erl_opts, [ {d,myriad_debug_mode}, {d,wooper_debug_mode}, debug_info, {debug_info_key,"DEBUG_KEY_FOR_REBAR"}, report_warnings, warn_export_all, warn_export_vars, warn_shadow_vars, warn_obsolete_guards, warn_unused_import, warnings_as_errors, {parse_transform,wooper_parse_transform}, INCS_FOR_REBAR ]}.
% Bootstrapped modules (from BOOTSTRAP_MODULES):
{erl_first_files, [ FIRST_FILES_FOR_REBAR ]}.
% Could not set REBAR_PROFILE=$(REBAR_PROFILE):
%{pre_hooks, [ {compile, "make -s rebar3-compile-pre-hook"} ]}.
%{post_hooks, [ {compile, "make -s rebar3-compile-post-hook"} ]}.
% For release generation:
%
% (defaults are for the development mode)
%
% With relx, only direct dependencies need to be listed, and version constraints
% can be used, instead of exact, specific versions.
%
{relx, [
{release, {wooper_release, "VERSION_FOR_OTP"},
% myriad thus implied:
[sasl, wooper]},
%{sys_config, "./config/sys.config"},
%{vm_args, "./config/vm.args"},
% Base, development version:
{dev_mode, true},
{include_erts, false},
{extended_start_script, true},
{include_src, false}
]}.
{profiles, [
% Production mode (the default one when used as a dependency):
{prod, [
% Like for the default profile, except for removed {d,myriad_debug_mode} and
% {d,wooper_debug_mode}, and added {d,exec_target_is_production}:
%
{erl_opts, [ {d,exec_target_is_production}, debug_info, {debug_info_key,"DEBUG_KEY_FOR_REBAR"}, report_warnings, warn_export_all, warn_export_vars, warn_shadow_vars, warn_obsolete_guards, warn_unused_import, warnings_as_errors, {parse_transform,wooper_parse_transform}, INCS_FOR_REBAR ]},
% For the build makefiles:
{env, [ { 'REBAR_PROFILE', "prod" } ] },
{relx, [
% Not wanting the release to contain symlinks to applications:
{dev_mode, false},
% Creating a full target system:
{include_erts, true},
{extended_start_script, true},
{include_src, false}
]} ] }
% No test profile currently needed.
]}.
% For Hex packages (see https://hex.pm/):
%
% (use 'rebar3 update' to enable the hex plugin)
%
{plugins, [rebar3_hex]}.