From 9de82c21954044969708ce019618a57aa59b8b53 Mon Sep 17 00:00:00 2001 From: bullno1 Date: Sun, 11 Oct 2015 02:03:47 +0800 Subject: Ensure that modules generated from erlydtl are listed in .app file --- plugins/erlydtl.mk | 7 ++++++- test/plugin_erlydtl.mk | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 test/plugin_erlydtl.mk diff --git a/plugins/erlydtl.mk b/plugins/erlydtl.mk index 1f33bc6..430ce5a 100644 --- a/plugins/erlydtl.mk +++ b/plugins/erlydtl.mk @@ -33,7 +33,12 @@ define erlydtl_compile.erl endef ifneq ($(wildcard src/),) -ebin/$(PROJECT).app:: $(sort $(call core_find,$(DTL_PATH),*.dtl)) + +DTL_FILES = $(sort $(call core_find,$(DTL_PATH),*.dtl)) +DTL_ERL_FILES = $(addprefix src/,$(patsubst %.dtl,%_dtl.erl,$(notdir $(DTL_FILES)))) +ERL_FILES += $(DTL_ERL_FILES) + +ebin/$(PROJECT).app:: $(DTL_FILES) $(if $(strip $?),\ $(dtl_verbose) $(call erlang,$(call erlydtl_compile.erl,$?,-pa ebin/ $(DEPS_DIR)/erlydtl/ebin/))) endif diff --git a/test/plugin_erlydtl.mk b/test/plugin_erlydtl.mk new file mode 100644 index 0000000..53eded3 --- /dev/null +++ b/test/plugin_erlydtl.mk @@ -0,0 +1,41 @@ +# ErlyDTL plugin + +ERLYDTL_CASES = test +ERLYDTL_TARGETS = $(addprefix erlydtl-,$(ERLYDTL_CASES)) +ERLYDTL_CLEAN_TARGETS = $(addprefix clean-,$(ERLYDTL_TARGETS)) + +.PHONY: erlydtl clean-erlydtl + +clean-erlydtl: $(ERLYDTL_CLEAN_TARGETS) + +$(ERLYDTL_CLEAN_TARGETS): + $t rm -rf $(APP_TO_CLEAN)/ + +erlydtl: $(ERLYDTL_TARGETS) + +erlydtl-test: build clean-erlydtl-test + $i "Bootstrap a new OTP application named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v + $t mkdir $(APP)/templates + $t touch $(APP)/templates/$(APP)_template.dtl + $t touch $(APP)/templates/$(APP)_template2.dtl + $t echo "PROJECT = $(APP)" > $(APP)/Makefile + $t echo "DEPS = erlydtl" >> $(APP)/Makefile + $t echo "include erlang.mk" >> $(APP)/Makefile + + $i "Build the application" + $t $(MAKE) -C $(APP) $v + + $i "Check that ErlyDTL templates are compiled" + $t test -f $(APP)/ebin/$(APP)_template_dtl.beam + $t test -f $(APP)/ebin/$(APP)_template2_dtl.beam + + $i "Check that ErlyDTL generated modules are included in .app file" + $t $(ERL) -pa $(APP)/ebin/ -eval " \ + ok = application:load($(APP)), \ + {ok, Modules} = application:get_key($(APP), modules), \ + true = lists:member($(APP)_template_dtl, Modules), \ + true = lists:member($(APP)_template2_dtl, Modules), \ + halt()" -- cgit v1.2.3