-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrebar.config
134 lines (88 loc) · 5.28 KB
/
rebar.config
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
% 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):
{deps, [ {myriad, {git, "https://github.com/Olivier-Boudeville/Ceylan-Myriad.git",
{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, "1.0.37"} ] }.
% Include directories found in INC:
{erl_opts, [ {wooper_version,"2.0.28"}, {d,myriad_debug_mode}, {d,wooper_debug_mode}, debug_info, {debug_info_key,"Ceylan-Myriad"}, 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}, {i,"src/interfaces"}, {i,"include"}, {i,"include/interfaces"}, {i,".."}, {i,"../myriad/include/apps/generate-password"}, {i,"../myriad/include/apps/merge-tool"}, {i,"../myriad/include/data-management"}, {i,"../myriad/include/maths"}, {i,"../myriad/include/meta"}, {i,"../myriad/include/scripts"}, {i,"../myriad/include/user-interface/graphical"}, {i,"../myriad/include/user-interface/textual"}, {i,"../myriad/include/user-interface/audio"}, {i,"../myriad/include/user-interface"}, {i,"../myriad/include/utils"}, {i,"../myriad/.."}, {i,"../myriad/ebin"} ]}.
% Bootstrapped modules (from BOOTSTRAP_MODULES):
{erl_first_files, [ "src/wooper_info.erl" ]}.
% (hooks needed, for example to create the include symlinks and for the build
% itself)
%
% Previously 'MYRIAD_REBAR_PROFILE=${REBAR_PROFILE}' was added, yet
% REBAR_PROFILE is actually not set, so we rely on our default value instead.
%
%{pre_hooks, [ {compile, "make -s rebar3-compile-pre-hook"} ]}.
%{post_hooks, [ {compile, "make -s rebar3-compile-post-hook"} ]}.
% Likely needed sooner or later, otherwise spurious, ill-configured compilations
% may be wrongly attempted by rebar3, when used as a dependency:
%{pre_hooks, [ {compile, "make -s rebar3-bulletproof-compile-pre-hook REBAR_HOOK_EXTRA_OPTS='--hiding-for-rebar --verbose'"} ]}.
% Verbosity disabled:
{pre_hooks, [ {compile, "make -s rebar3-bulletproof-compile-pre-hook REBAR_HOOK_EXTRA_OPTS='--hiding-for-rebar'"} ]}.
%{post_hooks, [ {compile, "make -s rebar3-bulletproof-compile-post-hook REBAR_HOOK_EXTRA_OPTS='--hiding-for-rebar --verbose'"} ]}.
% Verbosity disabled:
{post_hooks, [ {compile, "make -s rebar3-bulletproof-compile-post-hook REBAR_HOOK_EXTRA_OPTS='--hiding-for-rebar'"} ]}.
% 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, "2.0.28"},
% 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, [ {wooper_version,"2.0.28"}, {d,exec_target_is_production}, debug_info, {debug_info_key,"Ceylan-Myriad"}, 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}, {i,"src/interfaces"}, {i,"include"}, {i,"include/interfaces"}, {i,".."}, {i,"../myriad/include/apps/generate-password"}, {i,"../myriad/include/apps/merge-tool"}, {i,"../myriad/include/data-management"}, {i,"../myriad/include/maths"}, {i,"../myriad/include/meta"}, {i,"../myriad/include/scripts"}, {i,"../myriad/include/user-interface/graphical"}, {i,"../myriad/include/user-interface/textual"}, {i,"../myriad/include/user-interface/audio"}, {i,"../myriad/include/user-interface"}, {i,"../myriad/include/utils"}, {i,"../myriad/.."}, {i,"../myriad/ebin"} ]},
% 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]}.