- %% -*- 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.
-
- %% == Artifacts ==
-
- %% Artifacts are files generated by other tools (or plugins) and whose
- %% presence is necessary for a build to be considered successful
- {artifacts, ["priv/mycode.so"]}.
-
-
- %% == 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, ["src/mymib1.erl", "src/mymib2.erl"]}.
-
- %% Erlang compiler options
- {erl_opts, [no_debug_info,
- {i, "myinclude"},
- {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, []}.
-
- %% leex options
- {xrl_opts, []}.
- %% leex files to compile first
- {xrl_first_files, []}.
-
- %% yecc options
- {yrl_opts, []}.
- %% yecc files to compile first
- {yrl_first_files, []}.
-
-
- %% == Common Test ==
-
- %% {erl_opts, [...]}, but for CT runs
- {ct_compile_opts, []}.
- %% {erl_first_files, ...} but for CT runs
- {ct_first_files, []}.
- %% Same options as for ct:run_test(Opts)
- {ct_opts, []}.
-
-
- %% == Cover ==
-
- %% Whether to enable coverage reporting where commands support cover. Default
- %% is `false'
- {cover_enabled, false}.
-
- %% Modules to exclude from cover
- {cover_excl_mods, []}.
-
- %% Options to pass to cover provider
- {cover_opts, [verbose]}.
-
-
- %% == Dependencies ==
-
- %% 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).
- %% Rebar3 currently supports git and hg
- {deps, [
- app_name, % latest version of package
- {rebar, "1.0.0"}, % version 1.0.0 of a package
- {rebar, % git, master branch of app, explicit
- {git, "git://github.com/rebar/rebar.git", {branch, "master"}}},
- {rebar, % git, over HTTPS
- {git, "https://github.com/rebar/rebar.git", {branch, "master"}}},
- {rebar, % git, tag
- {git, "https://github.com/rebar/rebar.git", {tag, "1.0.0"}}},
- {rebar, % git, specific reference/hash
- {git, "https://github.com/rebar/rebar.git", {ref, "7f73b8d6"}}},
- {rebar, % mercurial is also supported
- {hg, "https://github.com/rebar/rebar.git", {tag, "1.0.0"}}},
- %% Alternative formats, backwards compatible declarations
- {rebar, % implicit master, will warn recommending explicit branch
- {git, "git://github.com/rebar/rebar.git"}},
- {rebar, "1.0.*", % regex version check, ignored
- {git, "git://github.com/rebar/rebar.git"}},
- {rebar, "1.0.*", % literal branch/ref/tag, will warn for explicit reference
- {git, "git://github.com/rebar/rebar.git", "Rev"}},
- {rebar, ".*", % 'raw' dependency, argument ignored
- {git, "git://github.com/rebar/rebar.git", {branch, "master"}},
- [raw]}
- ]}.
-
-
- %% == Dialyzer ==
-
- {dialyzer, [
- {warnings, [underspecs, no_return]},
- {get_warnings, true},
- {plt_apps, top_level_deps}, % top_level_deps | all_deps
- {plt_extra_apps, []},
- {plt_location, local}, % local | "/my/file/name"
- {plt_prefix, "rebar3"},
- {base_plt_apps, [stdlib, kernel, crypto]},
- {base_plt_location, global}, % global | "/my/file/name"
- {base_plt_prefix, "rebar3"}
- ]}.
-
-
- %% == Directories ==
-
- %% directory for artifacts produced by rebar3
- {base_dir, "_build"}.
- %% directory in '<base_dir>/<profile>/' where deps go
- {deps_dir, "lib"}.
- %% where rebar3 operates from; defaults to the current working directory
- {root_dir, "."}.
- %% where checkout dependencies are to be located
- {checkouts_dir, "_checkouts"}.
- %% directory in '<base_dir>/<profile>/' where plugins go
- {plugins_dir, "plugins"}.
- %% directories where OTP applications for the project can be located
- {project_app_dirs, ["apps/*", "lib/*", "."]}.
- %% Directories where source files for an OTP application can be found
- {src_dirs, ["src"]}.
- %% Paths to miscellaneous Erlang files to compile for an app
- %% without including them in its modules list
- {extra_src_dirs, []}.
- %% Path where custom rebar3 templates could be found
- {template_dir, []}.
-
- %% == EDoc ==
-
- %% EDoc options, same as those passed to the edoc compiler
- %% when called by hand.
- {edoc_opts, []}.
-
-
- %% == Escript ==
-
- %% name of the main OTP application to boot
- {escript_main_app, application}.
- %% Name of the resulting escript executable
- {escript_name, "application"}.
- %% apps (other than main and deps) to be included
- {escript_incl_apps, []}.
- %% Executable escript lines
- {escript_shebang, "#!/usr/bin/env escript\n"}.
- {escript_comment, "%%\n"}.
- {escript_emu_args, "%%! -escript main ~s -pa ~s/~s/ebin\n"}.
-
-
- %% == EUnit ==
-
- %% eunit:test(Tests)
- {eunit_tests, [{application, rebar3}]}.
- %% Options for eunit:test(Tests, Opts)
- {eunit_opts, [verbose]}.
- %% Additional compile options for eunit. erl_opts is also used
- {eunit_compile_opts, [{d, some_define}]}.
- %% {erl_first_files, ...} but for Eunit
- {eunit_first_files, ["test/test_behaviour.erl"]}.
-
-
- %% == Overrides ==
-
- {overrides, [
- %% Add options to mydep's configurations for each element
- {add, mydep, [{erl_opts, []}]},
- %% replace mydep's configuration option
- {override, mydep, [{erl_opts, []}]},
- %% replace all dependencies' configuration options
- {override, [{erl_opts, []}]}
- ]}.
-
- %% == Pre/Post Shell Hooks ==
-
- %% Running shell commands before or after a given rebar3 command
-
- {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"}]}.
-
- %% == Provider Hooks ==
-
- %% Run a rebar3 command before or after another one.
- %% Only clean, ct, compile, eunit, release, and tar can be hooked around
-
- %% runs 'clean' before 'compile'
- {provider_hooks, [{pre, [{compile, clean}]}]}.
-
-
- %% == Releases ==
-
- {relx, [{release, {my_release, "0.0.1"},
- [myapp]},
-
- {dev_mode, true},
- {include_erts, false},
-
- {extended_start_script, true}]}.
-
- %% == Shell ==
-
- %% apps to auto-boot with `rebar3 shell'; defaults to apps
- %% specified in a `relx' tuple, if any.
- {shell, [{apps, [app1, app2]}]}.
-
- %% == xref ==
-
- {xref_warnings, false}.
-
- %% optional extra paths to include in xref:set_library_path/2.
- %% specified relative location of rebar.config.
- %% e.g. {xref_extra_paths,["../gtknode/src"]}
- {xref_extra_paths,[]}.
-
- %% xref checks to run
- {xref_checks, [undefined_function_calls, undefined_functions,
- locals_not_used, exports_not_used,
- deprecated_function_calls, deprecated_functions]}.
-
- %% 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 mod:*foo/4
- %% functions from undefined external function calls as those are in a
- %% generated module
- {xref_queries,
- [{"(XC - UC) || (XU - X - B"
- " - (\"mod\":\".*foo\"/\"4\"))",[]}]}.
|