From 60a13b64316a79edbf830811cdf113311c6547b7 Mon Sep 17 00:00:00 2001
From: alisdair sullivan
Date: Mon, 6 Jun 2016 21:52:14 -0700
Subject: Compiler: new function env_compiler_options/0
retrieve the value of the environment variable ERL_COMPILER_OPTIONS
in the same manner as used by file/2, forms/2 and output_generated/2
---
lib/compiler/doc/src/compile.xml | 17 +++++++++++++++++
lib/compiler/src/compile.erl | 9 +++++++++
lib/compiler/test/compile_SUITE.erl | 22 ++++++++++++++++++++--
3 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml
index 954750fcdd..0fb09061b6 100644
--- a/lib/compiler/doc/src/compile.xml
+++ b/lib/compiler/doc/src/compile.xml
@@ -39,6 +39,19 @@
+
+ env_compiler_options()
+
+ Compiler options defined via the environment variable
+ ERL_COMPILER_OPTIONS
+
+
+ Return compiler options given via the environment variable
+ ERL_COMPILER_OPTIONS. If the value is a list, it is
+ returned as is. If it is not a list, it is put into a list.
+
+
+
file(File)
Compiles a file.
@@ -768,6 +781,10 @@ module.beam: module.erl \
if you do not want the environment variable to be consulted,
for example, if you are calling the compiler recursively from
inside a parse transform.
+
+ The list can be retrieved with
+ env_compiler_options/0
+ .
diff --git a/lib/compiler/src/compile.erl b/lib/compiler/src/compile.erl
index 149086152a..82ff8a95f3 100644
--- a/lib/compiler/src/compile.erl
+++ b/lib/compiler/src/compile.erl
@@ -26,6 +26,7 @@
-export([forms/1,forms/2,noenv_forms/2]).
-export([output_generated/1,noenv_output_generated/1]).
-export([options/0]).
+-export([env_compiler_options/0]).
%% Erlc interface.
-export([compile/3,compile_beam/3,compile_asm/3,compile_core/3]).
@@ -130,6 +131,14 @@ noenv_output_generated(Opts) ->
(_Other) -> false
end, Passes).
+%%
+%% Retrieve ERL_COMPILER_OPTIONS as a list of terms
+%%
+
+-spec env_compiler_options() -> [term()].
+
+env_compiler_options() -> env_default_opts().
+
%%
%% Local functions
%%
diff --git a/lib/compiler/test/compile_SUITE.erl b/lib/compiler/test/compile_SUITE.erl
index a15efc2a00..b0148f7103 100644
--- a/lib/compiler/test/compile_SUITE.erl
+++ b/lib/compiler/test/compile_SUITE.erl
@@ -34,7 +34,7 @@
cover/1, env/1, core/1,
core_roundtrip/1, asm/1,
sys_pre_attributes/1, dialyzer/1,
- warnings/1, pre_load_check/1
+ warnings/1, pre_load_check/1, env_compiler_options/1
]).
suite() -> [{ct_hooks,[ts_install_cth]}].
@@ -50,7 +50,8 @@ all() ->
other_output, encrypted_abstr,
strict_record,
cover, env, core, core_roundtrip, asm,
- sys_pre_attributes, dialyzer, warnings, pre_load_check].
+ sys_pre_attributes, dialyzer, warnings, pre_load_check,
+ env_compiler_options].
groups() ->
[].
@@ -1092,6 +1093,23 @@ compiler_modules() ->
FN = filename,
[list_to_atom(FN:rootname(FN:basename(M), ".beam")) || M <- Ms].
+%% Test that ERL_COMPILER_OPTIONS are correctly retrieved
+%% by env_compiler_options/0
+
+env_compiler_options(_Config) ->
+ Cases = [
+ {"bin_opt_info", [bin_opt_info]},
+ {"'S'", ['S']},
+ {"{source, \"test.erl\"}", [{source, "test.erl"}]},
+ {"[{d,macro_one,1},{d,macro_two}]", [{d, macro_one, 1}, {d, macro_two}]},
+ {"[warn_export_all, warn_export_vars]", [warn_export_all, warn_export_vars]}
+ ],
+ F = fun({Env, Expected}) ->
+ true = os:putenv("ERL_COMPILER_OPTIONS", Env),
+ Expected = compile:env_compiler_options()
+ end,
+ lists:foreach(F, Cases).
+
%%%
%%% Utilities.
%%%
--
cgit v1.2.3
From d567a443e1b3506fdef7d1f57af8d4cd364d45b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?=
Date: Wed, 8 Jun 2016 10:14:17 +0200
Subject: compile.xml: Eliminate unsightly space before period
---
lib/compiler/doc/src/compile.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml
index 0fb09061b6..61e214294e 100644
--- a/lib/compiler/doc/src/compile.xml
+++ b/lib/compiler/doc/src/compile.xml
@@ -783,8 +783,7 @@ module.beam: module.erl \
inside a parse transform.
The list can be retrieved with
- env_compiler_options/0
- .
+ env_compiler_options/0.