From da05859f4bef76b8b933c65ee764c48a97b4baf5 Mon Sep 17 00:00:00 2001 From: nevar Date: Mon, 8 Aug 2016 14:23:16 +0700 Subject: Escape % in app_file template --- core/erlc.mk | 2 +- test/core_app.mk | 23 ++++++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/core/erlc.mk b/core/erlc.mk index ed9aa88..9db10e1 100644 --- a/core/erlc.mk +++ b/core/erlc.mk @@ -243,7 +243,7 @@ ebin/$(PROJECT).app:: $(ERL_FILES) $(CORE_FILES) $(wildcard src/$(PROJECT).app.s $(eval MODULES := $(patsubst %,'%',$(sort $(notdir $(basename \ $(filter-out $(ERLC_EXCLUDE_PATHS),$(ERL_FILES) $(CORE_FILES) $(BEAM_FILES))))))) ifeq ($(wildcard src/$(PROJECT).app.src),) - $(app_verbose) printf '$(subst $(newline),\n,$(subst ','\'',$(call app_file,$(GITDESCRIBE),$(MODULES))))' \ + $(app_verbose) printf '$(subst %,%%,$(subst $(newline),\n,$(subst ','\'',$(call app_file,$(GITDESCRIBE),$(MODULES)))))' \ > ebin/$(PROJECT).app else $(verbose) if [ -z "$$(grep -e '^[^%]*{\s*modules\s*,' src/$(PROJECT).app.src)" ]; then \ diff --git a/test/core_app.mk b/test/core_app.mk index e568947..0276390 100644 --- a/test/core_app.mk +++ b/test/core_app.mk @@ -1,6 +1,6 @@ # Core: Building applications. -CORE_APP_CASES = appsrc-change asn1 auto-git-id env erlc-exclude erlc-opts erlc-opts-filter error generate-erl generate-erl-include generate-erl-prepend hrl hrl-recursive makefile-change mib no-app no-makedep project-mod pt pt-erlc-opts xrl xrl-include yrl yrl-header yrl-include +CORE_APP_CASES = appsrc-change asn1 auto-git-id env erlc-exclude erlc-opts erlc-opts-filter error generate-erl generate-erl-include generate-erl-prepend hrl hrl-recursive makefile-change mib name-special-char no-app no-makedep project-mod pt pt-erlc-opts xrl xrl-include yrl yrl-header yrl-include CORE_APP_TARGETS = $(addprefix core-app-,$(CORE_APP_CASES)) .PHONY: core-app $(CORE_APP_TARGETS) @@ -920,6 +920,27 @@ endif [{module, M} = code:load_file(M) || M <- Mods], \ halt()" +ifndef LEGACY +core-app-name-special-char: build clean + + $i "Bootstrap a new OTP library named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v + + $i "Set PROJECT_DESCRIPTION = test % in the Makefile" + $t echo "PROJECT_DESCRIPTION = test %" >> $(APP)/Makefile + + $i "Build the application" + $t $(MAKE) -C $(APP) $v + + $i "Check that the application was compiled correctly" + $t $(ERL) -pa $(APP)/ebin/ -eval " \ + ok = application:load($(APP)), \ + {ok,\"test %\"} = application:get_key($(APP), description), \ + halt()" +endif + core-app-no-app: build clean $i "Bootstrap a project without an OTP library" -- cgit v1.2.3