leofs icon indicating copy to clipboard operation
leofs copied to clipboard

[all][dialyzer] divide the plt file into the two APPS and LIBS

Open mocchira opened this issue 8 years ago • 0 comments

Building the current monolithic plt file for the first time tend to take much time. As multiple plt files can be specified through --plts option, Dividing the current plt file into the two one for APPS the other for LIBS allow us to reuse APPS on every repos and makes dialyzering fast.

diff --git a/apps/leo_gateway/Makefile b/apps/leo_gateway/Makefile
index 1843356..0baee9a 100644
--- a/apps/leo_gateway/Makefile
+++ b/apps/leo_gateway/Makefile
@@ -7,6 +7,7 @@ LIBS = deps/leo_commons/ebin deps/leo_logger/ebin deps/leo_object_storage/ebin \
        deps/leo_s3_libs/ebin deps/leo_cache/ebin deps/leo_dcerl/ebin deps/leo_mcerl/ebin \
        deps/savanna_commons/ebin deps/savanna_agent/ebin deps/erpcgen/ebin
 PLT_FILE = .leo_gateway_dialyzer_plt
+COMMON_PLT_FILE = .common_dialyzer_plt
 DOT_FILE = leo_gateway.dot
 CALL_GRAPH_FILE = leo_gateway.png

@@ -26,13 +27,16 @@ release:
        (cd rel/ && ../rebar generate)
 check_plt:
        @$(REBAR) compile
-       dialyzer --check_plt --plt $(PLT_FILE) --apps $(APPS)
+       dialyzer --check_plt --plts $(PLT_FILE) $(COMMON_PLT_FILE) --apps $(APPS)
 build_plt:
        @$(REBAR) compile
-       dialyzer --build_plt --output_plt $(PLT_FILE) --apps $(APPS) $(LIBS)
+       dialyzer --build_plt --output_plt $(PLT_FILE) --apps $(LIBS)
+build_plt_common:
+       @$(REBAR) compile
+       dialyzer --build_plt --output_plt $(COMMON_PLT_FILE) --apps $(APPS)
 dialyzer:
        @$(REBAR) compile
-       dialyzer --plt $(PLT_FILE) -r ebin/ --dump_callgraph $(DOT_FILE) -Wrace_conditions | fgrep -v -f ./dialyzer.ignore-warnings
+       dialyzer --plts $(PLT_FILE) $(COMMON_PLT_FILE) -r ebin/ --dump_callgraph $(DOT_FILE) -Wrace_conditions | fgrep -v -f ./dialyzer.ignore-warnings

In the above example, COMMON_PLT_FILE can be reused across every repos.

mocchira avatar Feb 15 '17 04:02 mocchira