%% -*- 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 == %% 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 and a list of filenames or wildcards to include should the %% expression pass. Default is `"c_src/*.c"' {port_sources, ["c_src/*.c", {"R14", ["c_src/*.c"]}]}. %% Port compilation environment variables. See rebar_port_compiler.erl for %% more info. Default is `[]' {port_envs, []}. %% Custom name of the port driver .so file. Defaults to `_drv.so'. {so_name, "driver.so"}. %% so_specs - useful for building multiple *.so files %% from one or more object files {so_specs, [{"priv/so_name.so", ["c_src/object_file_name.o"]}]}. %% == 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 == %% Option to pass extra parameters when launching Common Test {ct_extra_params, "-boot start_sasl -s myapp"}. %% == Dialyzer == %% Options for running dialyzer %% {plt, PltFile} %% 'src': run Dialyzer on the source files as in 'dialyzer --src' %% {warnings, [WarnOpts]}: turn on/off Dialyzer warnings {dialyzer_opts, [{plt, PltFile}, {warnings, [WarnOpts]}, src]}. %% == 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 depandencies. Default is `deps' {deps_dir, ["deps"]}. %% What dependancies we have, depandencies 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"]}. %% == Pre/Post Command Hooks == {pre_hooks, [{clean, "./prepare_package_files.sh"}, {compile, "escript generate_headers"}]}. {post_hooks, [{clean, "touch file1.out"}, {eunit, "touch file2.out"}, {compile, "touch postcompile.out"}]}. %% == xref == {xref_warnings, false}. %% xref checks to run {xref_checks, [exports_not_used, undefined_function_calls]}.