소스 검색

Merge pull request #1809 from goncalotomas/master

Create ERLANG_LIB_*_erl_interface environment variables only if erl_interface exists
pull/1807/head
Fred Hebert 6 년 전
committed by GitHub
부모
커밋
2c10bc9724
No known key found for this signature in database GPG 키 ID: 4AEE18F83AFDEB23
1개의 변경된 파일34개의 추가작업 그리고 20개의 파일을 삭제
  1. +34
    -20
      src/rebar_env.erl

+ 34
- 20
src/rebar_env.erl 파일 보기

@ -37,26 +37,40 @@ create_env(State) ->
-spec create_env(rebar_state:t(), rebar_dict()) -> proplists:proplist().
create_env(State, Opts) ->
BaseDir = rebar_dir:base_dir(State),
[
{"REBAR_DEPS_DIR", filename:absname(rebar_dir:deps_dir(State))},
{"REBAR_BUILD_DIR", filename:absname(rebar_dir:base_dir(State))},
{"REBAR_ROOT_DIR", filename:absname(rebar_dir:root_dir(State))},
{"REBAR_CHECKOUTS_DIR", filename:absname(rebar_dir:checkouts_dir(State))},
{"REBAR_PLUGINS_DIR", filename:absname(rebar_dir:plugins_dir(State))},
{"REBAR_GLOBAL_CONFIG_DIR", filename:absname(rebar_dir:global_config_dir(State))},
{"REBAR_GLOBAL_CACHE_DIR", filename:absname(rebar_dir:global_cache_dir(Opts))},
{"REBAR_TEMPLATE_DIR", filename:absname(rebar_dir:template_dir(State))},
{"REBAR_APP_DIRS", join_dirs(BaseDir, rebar_dir:lib_dirs(State))},
{"REBAR_SRC_DIRS", join_dirs(BaseDir, rebar_dir:all_src_dirs(Opts))},
{"ERLANG_ERTS_VER", erlang:system_info(version)},
{"ERLANG_ROOT_DIR", code:root_dir()},
{"ERLANG_LIB_DIR_erl_interface", code:lib_dir(erl_interface)},
{"ERLANG_LIB_VER_erl_interface", re_version(code:lib_dir(erl_interface))},
{"ERL", filename:join([code:root_dir(), "bin", "erl"])},
{"ERLC", filename:join([code:root_dir(), "bin", "erlc"])},
{"ERLANG_ARCH" , rebar_api:wordsize()},
{"ERLANG_TARGET", rebar_api:get_arch()}
].
EnvVars = [
{"REBAR_DEPS_DIR", filename:absname(rebar_dir:deps_dir(State))},
{"REBAR_BUILD_DIR", filename:absname(rebar_dir:base_dir(State))},
{"REBAR_ROOT_DIR", filename:absname(rebar_dir:root_dir(State))},
{"REBAR_CHECKOUTS_DIR", filename:absname(rebar_dir:checkouts_dir(State))},
{"REBAR_PLUGINS_DIR", filename:absname(rebar_dir:plugins_dir(State))},
{"REBAR_GLOBAL_CONFIG_DIR", filename:absname(rebar_dir:global_config_dir(State))},
{"REBAR_GLOBAL_CACHE_DIR", filename:absname(rebar_dir:global_cache_dir(Opts))},
{"REBAR_TEMPLATE_DIR", filename:absname(rebar_dir:template_dir(State))},
{"REBAR_APP_DIRS", join_dirs(BaseDir, rebar_dir:lib_dirs(State))},
{"REBAR_SRC_DIRS", join_dirs(BaseDir, rebar_dir:all_src_dirs(Opts))},
{"ERLANG_ERTS_VER", erlang:system_info(version)},
{"ERLANG_ROOT_DIR", code:root_dir()},
{"ERL", filename:join([code:root_dir(), "bin", "erl"])},
{"ERLC", filename:join([code:root_dir(), "bin", "erlc"])},
{"ERLANG_ARCH" , rebar_api:wordsize()},
{"ERLANG_TARGET", rebar_api:get_arch()}
],
EInterfaceVars = create_erl_interface_env(),
lists:append([EnvVars, EInterfaceVars]).
-spec create_erl_interface_env() -> list().
create_erl_interface_env() ->
case code:lib_dir(erl_interface) of
{error, bad_name} ->
?WARN("erl_interface is missing. ERLANG_LIB_DIR_erl_interface and "
"ERLANG_LIB_VER_erl_interface will not be added to the environment.", []),
[];
Dir ->
[
{"ERLANG_LIB_DIR_erl_interface", Dir},
{"ERLANG_LIB_VER_erl_interface", re_version(Dir)}
]
end.
%% ====================================================================
%% Internal functions

불러오는 중...
취소
저장