From fad0d867fc28a702f869b4e64f08820024d9f3b2 Mon Sep 17 00:00:00 2001 From: Jerome Sautret Date: Tue, 26 Aug 2014 16:12:57 +0200 Subject: [PATCH 1/4] Add xref Makefile target. Conflicts: rebar.config.script --- Makefile.in | 4 ++++ rebar.config.script | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/Makefile.in b/Makefile.in index 525879854..4f3e1bc9f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -88,6 +88,10 @@ update: rm -rf deps/.built $(REBAR) update-deps && :> deps/.got +xref: all + $(REBAR) skip_deps=true xref + + translations: contrib/extract_translations/prepare-translation.sh -updateall diff --git a/rebar.config.script b/rebar.config.script index 4e2d347ff..0082ad186 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -116,6 +116,30 @@ CfgPostHooks = lists:flatmap( [] end, Cfg), +CfgXrefs = lists:flatmap( + fun({mysql, false}) -> + ["(\".*mysql.*\":_/_)"]; + ({pgsql, false}) -> + ["(\".*pgsql.*\":_/_)"]; + ({pam, false}) -> + ["(\"epam\":_/_)"]; + ({riak, false}) -> + ["(\"riak.*\":_/_)"]; + ({json, false}) -> + ["(\"jiffy\":_/_)"]; + ({p1db, false}) -> + ["(\"p1db.*\":_/_)"]; + ({zlib, false}) -> + ["(\"ezlib\":_/_)"]; + ({http, false}) -> + ["(\"lhttpc\":_/_)"]; + ({iconv, false}) -> + ["(\"iconv\":_/_)"]; + (_) -> + [] + end, Cfg), + + {ok, Cwd} = file:get_cwd(), Config = [{erl_opts, Macros ++ HiPE ++ DebugInfo ++ @@ -124,6 +148,12 @@ Config = [{erl_opts, Macros ++ HiPE ++ DebugInfo ++ {keep_build_info, true}, {ct_extra_params, "-include " ++ filename:join([Cwd, "tools"])}, + {xref_warnings, false}, + {xref_checks, []}, + {xref_queries, + [{"(XC - UC) || (XU - X - B - " + ++ string:join(["(\"gen_transport\":_/_) - (\"eprof\":_/_)"] + ++ CfgXrefs, " - ") ++ ")", []}]}, {post_hooks, PostHooks ++ CfgPostHooks}, {deps, Deps ++ CfgDeps}], %%io:format("ejabberd configuration:~n ~p~n", [Config]), From 7db4587eeb77d40b8e3644486659dea693a22353 Mon Sep 17 00:00:00 2001 From: Jerome Sautret Date: Tue, 26 Aug 2014 16:51:04 +0200 Subject: [PATCH 2/4] Ignore riak_object module call for xref check. It's used in map-reduce function called from riak vm. --- rebar.config.script | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rebar.config.script b/rebar.config.script index 0082ad186..1d077b380 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -125,6 +125,9 @@ CfgXrefs = lists:flatmap( ["(\"epam\":_/_)"]; ({riak, false}) -> ["(\"riak.*\":_/_)"]; + ({riak, true}) -> + % used in map-reduce function called from riak vm + ["(\"riak_object\":_/_)"]; ({json, false}) -> ["(\"jiffy\":_/_)"]; ({p1db, false}) -> From 565f064b150fe2f26294d1838458f644bb4c31b9 Mon Sep 17 00:00:00 2001 From: Jerome Sautret Date: Wed, 27 Aug 2014 10:47:12 +0200 Subject: [PATCH 3/4] Fix xref check when odbc driver is not used. --- rebar.config.script | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rebar.config.script b/rebar.config.script index 1d077b380..8b21e1b03 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -138,6 +138,8 @@ CfgXrefs = lists:flatmap( ["(\"lhttpc\":_/_)"]; ({iconv, false}) -> ["(\"iconv\":_/_)"]; + ({odbc, false}) -> + ["(\"odbc\":_/_)"]; (_) -> [] end, Cfg), From 1d2ef85b3371744a02c044c2005c7a56b3b23d54 Mon Sep 17 00:00:00 2001 From: Jerome Sautret Date: Thu, 30 Oct 2014 16:51:01 +0100 Subject: [PATCH 4/4] Clean up rebar script. --- rebar.config.script | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/rebar.config.script b/rebar.config.script index 8b21e1b03..30d479eab 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -130,8 +130,6 @@ CfgXrefs = lists:flatmap( ["(\"riak_object\":_/_)"]; ({json, false}) -> ["(\"jiffy\":_/_)"]; - ({p1db, false}) -> - ["(\"p1db.*\":_/_)"]; ({zlib, false}) -> ["(\"ezlib\":_/_)"]; ({http, false}) -> @@ -157,8 +155,7 @@ Config = [{erl_opts, Macros ++ HiPE ++ DebugInfo ++ {xref_checks, []}, {xref_queries, [{"(XC - UC) || (XU - X - B - " - ++ string:join(["(\"gen_transport\":_/_) - (\"eprof\":_/_)"] - ++ CfgXrefs, " - ") ++ ")", []}]}, + ++ string:join(CfgXrefs, " - ") ++ ")", []}]}, {post_hooks, PostHooks ++ CfgPostHooks}, {deps, Deps ++ CfgDeps}], %%io:format("ejabberd configuration:~n ~p~n", [Config]),