| %% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*- |
| %% ex: ts=4 sw=4 ft=erlang et |
| %% This is a sample rebar.conf file that shows examples of some of rebar's |
| %% options. |
| |
| %% == Core == |
| |
| %% Additional library directories to add to the code path |
| {lib_dirs, []}. |
| |
| %% == Erlang Compiler == |
| |
| %% Erlang files to compile before the rest. Rebar automatically compiles |
| %% parse_transforms and custom behaviours before anything other than the files |
| %% in this list. |
| {erl_first_files, ["mymib1", "mymib2"]}. |
| |
| %% Erlang compiler options |
| {erl_opts, [no_debug_info, {i, "myinclude"}, {src_dirs, ["src1", "src2"]}, |
| {platform_define, |
| "(linux|solaris|freebsd|darwin)", 'HAVE_SENDFILE'}, |
| {platform_define, "(linux|freebsd)", 'BACKLOG', 128}, |
| {platform_define, "R13", 'old_inets'}]}. |
| |
| %% MIB Options? |
| {mib_opts, []}. |
| |
| %% SNMP mibs to compile first? |
| {mib_first_files, []}. |
| |
| %% == EDoc == |
| |
| %% EDoc options |
| {edoc_opts, []}. |
| |
| %% == Port Compiler == |
| |
| %% Port compilation environment variables. See rebar_port_compiler.erl for |
| %% more info. Default is `[]' |
| {port_env, [{"CFLAGS", "$CFLAGS -Ifoo"}, |
| {"freebsd", "LDFLAGS", "$LDFLAGS -lfoo"}]}. |
| |
| %% port_specs |
| %% List of filenames or wildcards to be compiled. May also contain a tuple |
| %% consisting of a regular expression to be applied against the system |
| %% architecture as a filter. |
| {port_specs, [{"priv/so_name.so", ["c_src/*.c"]}, |
| {"linux", "priv/hello_linux", ["c_src/hello_linux.c"]}, |
| {"linux", "priv/hello_linux", ["c_src/*.c"], [{env, []}]}}. |
| |
| %% == LFE Compiler == |
| |
| %% LFE files to compile before the rest |
| {lfe_first_files, []}. |
| |
| %% Options for the LFE compiler: reuse {erl_opts, []} |
| |
| %% == ErlyDTL Compiler == |
| |
| %% Options for the ErlyDTL compiler |
| {erlydtl_opts, []}. |
| |
| %% == EUnit == |
| |
| %% Options for eunit:test() |
| {eunit_opts, []}. |
| |
| %% Additional compile options for eunit. erl_opts from above is also used |
| {eunit_compile_opts, []}. |
| |
| %% Same as erl_first_files, but used only when running 'eunit' |
| {eunit_first_files, []}. |
| |
| %% Whether to enable coverage reporting. Default is `false' |
| {cover_enabled, false}. |
| |
| %% Whether to print coverage report to console. Default is `false' |
| {cover_print_enabled, false}. |
| |
| %% == Common Test == |
| |
| %% Override the default "test" directory in which SUITEs are located |
| {ct_dir, "itest"}. |
| |
| %% Option to pass extra parameters when launching Common Test |
| {ct_extra_params, "-boot start_sasl -s myapp"}. |
| |
| %% == Cleanup == |
| |
| %% Which files to cleanup |
| {clean_files, ["file", "file2"]}. |
| |
| %% == Reltool == |
| |
| %% Target directory for the release |
| {target, "target"}. |
| |
| %% == OTP Applications == |
| |
| %% Binaries to link into the erlang path? |
| {app_bin, []}. |
| |
| %% Enable validation of the OTP app module list. Default is 'true' |
| {validate_app_modules, true}. |
| |
| %% == Dependencies == |
| |
| %% Where to put any downloaded dependencies. Default is "deps" |
| {deps_dir, "deps"}. |
| |
| %% What dependencies we have, dependencies can be of 3 forms, an application |
| %% name as an atom, eg. mochiweb, a name and a version (from the .app file), or |
| %% an application name, a version and the SCM details on how to fetch it (SCM |
| %% type, location and revision). Rebar currently supports git, hg, bzr and svn. |
| {deps, [application_name, |
| {application_name, "1.0.*"}, |
| {application_name, "1.0.*", |
| {git, "git://github.com/basho/rebar.git", {branch, "master"}}}]}. |
| |
| %% == Subdirectories == |
| |
| %% Subdirectories? |
| {sub_dirs, ["dir1", "dir2"]}. |
| |
| %% == Plugins == |
| |
| %% Plugins you wish to include. |
| %% These can include any module on the code path, including deps. |
| %% Alternatively, plugins can be placed as source files in the plugin_dir, in |
| %% which case they will be compiled and loaded dynamically at runtime. |
| {plugins, [plugin1, plugin2]}. |
| |
| %% Override the directory in which plugin sources can be found. |
| %% Defaults to ./plugins |
| {plugin_dir, "some_other_directory"}. |
| |
| |
| %% == Pre/Post Command Hooks == |
| |
| {pre_hooks, [{clean, "./prepare_package_files.sh"}, |
| {"linux", compile, "c_src/build_linux.sh"}, |
| {compile, "escript generate_headers"}, |
| {compile, "escript check_headers"}]}. |
| |
| {post_hooks, [{clean, "touch file1.out"}, |
| {"freebsd", compile, "c_src/freebsd_tweaks.sh"}, |
| {eunit, "touch file2.out"}, |
| {compile, "touch postcompile.out"}]}. |
| |
| %% == xref == |
| |
| {xref_warnings, false}. |
| |
| %% xref checks to run |
| {xref_checks, [exports_not_used, undefined_function_calls]}. |
| |
| %% Optional custom xref queries (xref manual has details) specified as |
| %% {xref_queries, [{query_string(), expected_query_result()},...]} |
| %% The following for example removes all references to ejabberd:*_msg/4 |
| %% functions from undefined external function calls as those are in a |
| %% generated module |
| {xref_queries, |
| [{"(XC - UC) || (XU - X - B" |
| " - (\"ejabberd_logger\":\".*_msg\"/\"4\"))",[]}]}. |