From 5820487b99f57164751d5f65ba6d86a1b6857d11 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Sun, 24 Jan 2021 08:30:13 +0100 Subject: [PATCH 01/15] core: create testcase --- tests/issues/issue 3160/addons.make | 1 + tests/issues/issue 3160/bin/data/.gitkeep | 0 tests/issues/issue 3160/src/main.cpp | 28 +++++++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 tests/issues/issue 3160/addons.make create mode 100644 tests/issues/issue 3160/bin/data/.gitkeep create mode 100644 tests/issues/issue 3160/src/main.cpp diff --git a/tests/issues/issue 3160/addons.make b/tests/issues/issue 3160/addons.make new file mode 100644 index 00000000000..0e0303d2e09 --- /dev/null +++ b/tests/issues/issue 3160/addons.make @@ -0,0 +1 @@ +ofxUnitTests diff --git a/tests/issues/issue 3160/bin/data/.gitkeep b/tests/issues/issue 3160/bin/data/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/issues/issue 3160/src/main.cpp b/tests/issues/issue 3160/src/main.cpp new file mode 100644 index 00000000000..c30229b612d --- /dev/null +++ b/tests/issues/issue 3160/src/main.cpp @@ -0,0 +1,28 @@ +#include "ofMain.h" +#include "ofxUnitTests.h" +#include "ofAppNoWindow.h" + + +class ofApp: public ofxUnitTestsApp{ +public: + void run(){ + ofLogNotice() << "testing #3160"; + ofxTest(true,"compiled a test with space in its path"); + ofLogNotice() << "end testing #3160"; + } +}; + +//======================================================================== +int main( ){ + ofInit(); + auto window = make_shared(); + auto app = make_shared(); + // this kicks off the running of my app + // can be OF_WINDOW or OF_FULLSCREEN + // pass in width and height too: + ofRunApp(window, app); + return ofRunMainLoop(); + + +} + From 8a248769d976db3df5c667be674868dc1a11afe1 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Sun, 24 Jan 2021 09:16:25 +0100 Subject: [PATCH 02/15] core: define space-escaped functions replace space by '\ ' in shell output, by '+' in make functions --- .../project/makefileCommon/config.shared.mk | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 61aec3d3adf..7e3a42dbfce 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -5,6 +5,45 @@ # core and projects. It's included from both the core makefile and the projects # makefile +# ##################### UTILITY FUNCTIONS# ################################### +# Define functions to convert spaces to '+', '\ ' and back. Include a function +# to quote a path if necessary +################################################################################ +# convert spaces ' ' to its escaped equivalent '\ ' +sp2esp = $(shell echo $1 | sed 's/ /\\ /g') +# convert space replacement character to escaped space '\ ' +c2esp = $(subst +,\ ,$1) +esp2c = $(subst \ ,+,$1) + +# display values of an escaped space list +esp-foreach-info=$(foreach v,$(call esp2c,$1),$(info $(call c2esp,$(v)))) + +# apply filter command on an escaped space list +esp-filter = $(call c2esp,$(filter $(call esp2c,$1),$(call esp2c,$2))) + +# apply filter-out command on an escaped space list +esp-filter-out = $(call c2esp,$(filter-out $(call esp2c,$1),$(call esp2c,$2))) + +# apply addprefix command on an escaped space list +esp-addprefix = $(call c2esp,$(addprefix $(call esp2c,$1),$(call esp2c,$2))) + +# apply addsuffix command on an escaped space list +esp-addsuffix = $(call c2esp,$(addsuffix $(call esp2c,$1),$(call esp2c,$2))) + +# apply patsubst command on an escaped space list +esp-patsubst = $(call c2esp,$(patsubst $(call esp2c,$1),$(call esp2c,$2),$(call esp2c,$3))) + +# apply firstword command on an escaped space list +esp-firstword = $(call c2esp,$(firstword $(call esp2c,$1))) + +# apply realpath command on an escaped space list +esp-realpath = $(shell realpath $1 | sed 's/ /\\ /g') + +# from an escaped space list of files/directories, return a list of files that exist +esp-exist = $(foreach f,$(call esp2c,$1),$(if $(wildcard $(call c2esp,$f)),$(call c2esp,$f))) + +# get @D from escaped $@ as @D do not return an escaped parent directory +esp-@D = $(dir $(call sp2esp,$@)) # ##################### PLATFORM DETECTION ################################### # determine the platform's architecture, os and form the platform-specific libarary subpath From 2bf45a647fa663ea84e5d2afd3e7656f7454c270 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Sun, 24 Jan 2021 16:05:45 +0100 Subject: [PATCH 03/15] core: make space-friendly call to tools (CC,AR) --- .../project/makefileCommon/compile.core.mk | 24 ++-- .../project/makefileCommon/compile.project.mk | 126 +++++++++--------- 2 files changed, 75 insertions(+), 75 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk b/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk index a9feadabe22..8e0bda707fb 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk @@ -230,24 +230,24 @@ all: $(OF_CORE_OBJ_OUTPUT_PATH).compiler_flags: force @mkdir -p $(OF_CORE_OBJ_OUTPUT_PATH) - @if [ "$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))" != "$(strip $$(cat $@ 2>/dev/null))" ]; then echo "Compiler flags have changed, recompiling"; echo "Old: $(strip $$(cat $@ 2>/dev/null))"; echo "New $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))"; echo $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))> $@; fi + @if [ "$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))" != "$(strip $$(cat "$@" 2>/dev/null))" ]; then echo "Compiler flags have changed, recompiling"; echo "Old: $(strip $$(cat "$@" 2>/dev/null))"; echo "New $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))"; echo $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))> "$@"; fi #This rule does the compilation $(OF_CORE_OBJ_OUTPUT_PATH)%.o: $(OF_ROOT)/%.cpp $(OF_CORE_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) -MMD -MP -MF $(OF_CORE_OBJ_OUTPUT_PATH)$*.d -MT$(OF_CORE_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) -MMD -MP -MF $(OF_CORE_OBJ_OUTPUT_PATH)$*.d -MT$(OF_CORE_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_CORE_OBJ_OUTPUT_PATH)%.o: $(OF_ROOT)/%.mm $(OF_CORE_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) -MMD -MP -MF $(OF_CORE_OBJ_OUTPUT_PATH)$*.d -MT$(OF_CORE_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) -MMD -MP -MF $(OF_CORE_OBJ_OUTPUT_PATH)$*.d -MT$(OF_CORE_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_CORE_OBJ_OUTPUT_PATH)%.o: $(OF_ROOT)/%.m $(OF_CORE_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) -MMD -MP -MF $(OF_CORE_OBJ_OUTPUT_PATH)$*.d -MT$(OF_CORE_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) -MMD -MP -MF $(OF_CORE_OBJ_OUTPUT_PATH)$*.d -MT$(OF_CORE_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" # this target does the linking of the library # $(TARGET) : $(OF_CORE_OBJ_FILES) means that each of the items in the @@ -255,17 +255,17 @@ $(OF_CORE_OBJ_OUTPUT_PATH)%.o: $(OF_ROOT)/%.m $(OF_CORE_OBJ_OUTPUT_PATH).compile ifeq ($(SHAREDCORE),1) $(TARGET) : $(OF_CORE_OBJ_FILES) $(OF_CORE_OBJ_OUTPUT_PATH).compiler_flags @echo "Creating library " $(TARGET) - @mkdir -p $(@D) - $(CC) -shared $(OF_CORE_OBJ_FILES) -o $@ + @mkdir -p $(call esp-@D) + $(CC) -shared $(OF_CORE_OBJ_FILES) -o "$@" else ifeq ($(BYTECODECORE),1) $(TARGET) : $(OF_CORE_OBJ_FILES) $(OF_CORE_OBJ_OUTPUT_PATH).compiler_flags @echo "Creating library " $(TARGET) - @mkdir -p $(@D) - $(CC) $(OF_CORE_OBJ_FILES) -o $@ + @mkdir -p $(call esp-@D) + $(CC) $(OF_CORE_OBJ_FILES) -o "$@" else $(TARGET) : $(OF_CORE_OBJ_FILES) $(OF_CORE_OBJ_OUTPUT_PATH).compiler_flags @echo "Creating library " $(TARGET) - @mkdir -p $(@D) + @mkdir -p $(call esp-@D) $(AR) ${ARFLAGS} "$@" $(OF_CORE_OBJ_FILES) endif -include $(OF_CORE_DEPENDENCY_FILES) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk index 103c8329ae8..bb3f4beeb32 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk @@ -202,49 +202,49 @@ endif $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags: force @mkdir -p $(OF_PROJECT_OBJ_OUTPUT_PATH) - @if [ "$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) $(OPTIMIZATION_LDFLAGS) $(LDFLAGS))" != "$(strip $$(cat $@ 2>/dev/null))" ]; then echo $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) $(OPTIMIZATION_LDFLAGS) $(LDFLAGS)) > $@; fi + @if [ "$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) $(OPTIMIZATION_LDFLAGS) $(LDFLAGS))" != "$(strip $$(cat "$@" 2>/dev/null))" ]; then echo $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) $(OPTIMIZATION_LDFLAGS) $(LDFLAGS)) > "$@"; fi $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags: force @mkdir -p $(OF_PROJECT_OBJ_OUTPUT_PATH) @mkdir -p $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH) - @if [ "$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))" != "$(strip $$(cat $@ 2>/dev/null))" ]; then echo $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS)) > $@; fi + @if [ "$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))" != "$(strip $$(cat "$@" 2>/dev/null))" ]; then echo $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS)) > "$@"; fi # Rules to compile the project sources #$(OBJS): $(SOURCES) $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_ROOT)/%.cpp $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_ROOT)/%.cxx $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_ROOT)/%.cc $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_ROOT)/%.m $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_ROOT)/%.mm $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_ROOT)/%.c $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_ROOT)/%.S $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" @@ -253,7 +253,7 @@ $(OF_PROJECT_OBJ_OUTPUT_PATH)%.res: $(ICON) @echo "Compiling Resource" $< #Need to build an intermediate .rc file with Windows-like file path (C:/myproject/theIcon.ico) @echo MAINICON ICON \"$(shell cygpath -m $<)\" > $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.rc - @$(RESOURCE_COMPILER) $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.rc -O coff -o $@ + @$(RESOURCE_COMPILER) $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.rc -O coff -o "$@" @@ -261,38 +261,38 @@ $(OF_PROJECT_OBJ_OUTPUT_PATH)%.res: $(ICON) # Rules to compile the project external sources $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_EXTERNAL_SOURCE_PATHS)/%.cpp $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_EXTERNAL_SOURCE_PATHS)/%.cxx $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - @$(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + @$(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_EXTERNAL_SOURCE_PATHS)/%.cc $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_EXTERNAL_SOURCE_PATHS)/%.m $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_EXTERNAL_SOURCE_PATHS)/%.mm $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_EXTERNAL_SOURCE_PATHS)/%.c $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_EXTERNAL_SOURCE_PATHS)/%.S $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(PROJECT_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" @@ -302,50 +302,50 @@ PROJECT_ADDONS_OBJ_PATH=$(realpath .)/$(OF_PROJECT_OBJ_OUTPUT_PATH)addons/ $(PROJECT_ADDONS_OBJ_PATH)%.o: %.cpp $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags ifdef PROJECT_ADDON_PATHS @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o "$@" -c "$<" endif $(PROJECT_ADDONS_OBJ_PATH)%.o: %.cxx $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags ifdef PROJECT_ADDON_PATHS @echo "Compiling" $< - @mkdir -p $(@D) - @$(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + @$(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o "$@" -c "$<" endif $(PROJECT_ADDONS_OBJ_PATH)%.o: %.m $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags ifdef PROJECT_ADDON_PATHS @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o "$@" -c "$<" endif $(PROJECT_ADDONS_OBJ_PATH)%.o: %.mm $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags ifdef PROJECT_ADDON_PATHS @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o "$@" -c "$<" endif $(PROJECT_ADDONS_OBJ_PATH)%.o: %.cc $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags ifdef PROJECT_ADDON_PATHS @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o "$@" -c "$<" endif $(PROJECT_ADDONS_OBJ_PATH)%.o: %.c $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags ifdef PROJECT_ADDON_PATHS @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o "$@" -c "$<" endif $(PROJECT_ADDONS_OBJ_PATH)%.o: %.S $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags ifdef PROJECT_ADDON_PATHS @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(PROJECT_ADDONS_OBJ_PATH)$*.d -MT $(PROJECT_ADDONS_OBJ_PATH)$*.o -o "$@" -c "$<" endif @@ -356,53 +356,53 @@ endif #Rules to compile the standard addons sources $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(OF_ADDONS_PATH)/%.cpp $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(OF_ADDONS_PATH)/%.cxx $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(OF_ADDONS_PATH)/%.cc $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(OF_ADDONS_PATH)/%.m $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(OF_ADDONS_PATH)/%.mm $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(OF_ADDONS_PATH)/%.c $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" $(OF_ADDONS_PATH)/addons/$(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(OF_ADDONS_PATH)/%.S $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CC) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.d -MT $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH)$*.o -o "$@" -c "$<" # Rules to compile the addons sources from the core $(OF_PROJECT_OBJ_OUTPUT_PATH)libs/openFrameworks/%.o: $(OF_ROOT)/libs/openFrameworks/%.cpp $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo "Compiling" $< - @mkdir -p $(@D) - $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(OF_CORE_INCLUDES_CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)libs/openFrameworks/$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)libs/openFrameworks/$*.o -o $@ -c $< + @mkdir -p $(call esp-@D) + $(CXX) -c $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(OF_CORE_INCLUDES_CFLAGS) $(ADDON_INCLUDE_CFLAGS) -MMD -MP -MF $(OF_PROJECT_OBJ_OUTPUT_PATH)libs/openFrameworks/$*.d -MT $(OF_PROJECT_OBJ_OUTPUT_PATH)libs/openFrameworks/$*.o -o "$@" -c "$<" # Rules to link the project $(TARGET): $(OF_PROJECT_OBJS) $(OF_PROJECT_RESOURCES) $(OF_PROJECT_ADDONS_OBJS) $(OF_PROJECT_LIBS) $(TARGET_LIBS) $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags @echo 'Linking $(TARGET) for $(ABI_LIB_SUBPATH)' - @mkdir -p $(@D) - $(CXX) -o $@ $(OPTIMIZATION_LDFLAGS) $(OF_PROJECT_OBJS) $(OF_PROJECT_RESOURCES) $(OF_PROJECT_ADDONS_OBJS) $(TARGET_LIBS) $(OF_PROJECT_LIBS) $(LDFLAGS) $(OF_CORE_LIBS) + @mkdir -p $(call esp-@D) + $(CXX) -o "$@" $(OPTIMIZATION_LDFLAGS) $(OF_PROJECT_OBJS) $(OF_PROJECT_RESOURCES) $(OF_PROJECT_ADDONS_OBJS) $(TARGET_LIBS) $(OF_PROJECT_LIBS) $(LDFLAGS) $(OF_CORE_LIBS) clean: From 313df34ef1645594b8f1e58a26d90d819b140065 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Sun, 24 Jan 2021 17:12:38 +0100 Subject: [PATCH 04/15] core: making APPNAME space-friendly In case the application folder name as spaces as 'My App' --- .../project/makefileCommon/compile.project.mk | 4 +++- .../project/makefileCommon/config.shared.mk | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk index bb3f4beeb32..eafbfae3b90 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk @@ -5,8 +5,10 @@ OF_SHARED_MAKEFILES_PATH=$(OF_ROOT)/libs/openFrameworksCompiled/project/makefile # if APPNAME is not defined, set it to the project dir name ifndef APPNAME - APPNAME = $(shell basename `pwd`) + APPNAME = $(shell basename "`pwd`") endif +#replace spaces by underscore in APPNAME to have 'no space targets' +APPNAME:=$(call sp2_,$(APPNAME)) include $(OF_SHARED_MAKEFILES_PATH)/config.shared.mk diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 7e3a42dbfce..7f1e19b3bad 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -11,6 +11,8 @@ ################################################################################ # convert spaces ' ' to its escaped equivalent '\ ' sp2esp = $(shell echo $1 | sed 's/ /\\ /g') +# convert spaces ' ' to its escaped equivalent '\ ' +sp2_ = $(shell echo $1 | sed 's/ /_/g') # convert space replacement character to escaped space '\ ' c2esp = $(subst +,\ ,$1) esp2c = $(subst \ ,+,$1) From b16a10b8de18cc679010952e0c024dcaa27a9375 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Sun, 24 Jan 2021 17:32:35 +0100 Subject: [PATCH 05/15] core: make debug output space-friendly Fix tab vs space errors in makefile --- .../project/makefileCommon/config.addons.mk | 22 ++++++++--------- .../project/makefileCommon/config.project.mk | 24 +++++++++---------- .../project/makefileCommon/config.shared.mk | 24 +++++++++---------- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk index 4b38a3dd8cd..e4c8722a971 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk @@ -242,25 +242,25 @@ OF_PROJECT_ADDONS_DEPS = $(patsubst %.o,%.d,$(PROJECT_ADDONS_OBJ_FILES)) # print debug information if so instructed ifdef MAKEFILE_DEBUG $(info ---PROJECT_ADDONS_PATHS---) - $(foreach v, $(PROJECT_ADDONS_PATHS),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_PATHS)) $(info ---PROJECT_ADDONS_WITH_CONFIG---) - $(foreach v, $(PROJECT_ADDONS_WITH_CONFIG),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_WITH_CONFIG)) $(info ---PROJECT_ADDONS_INCLUDES---) - $(foreach v, $(PROJECT_ADDONS_INCLUDES),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_INCLUDES)) $(info ---PROJECT_ADDONS_SOURCE_FILES---) - $(foreach v, $(PROJECT_ADDONS_SOURCE_FILES),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_SOURCE_FILES)) $(info ---PROJECT_ADDONS_LIBS---) - $(foreach v, $(PROJECT_ADDONS_LIBS),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_LIBS)) $(info ---PROJECT_ADDONS_OBJFILES---) - $(foreach v, $(PROJECT_ADDONS_OBJFILES),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_OBJFILES)) $(info ---PROJECT_ADDONS_BASE_CFLAGS---) - $(foreach v, $(PROJECT_ADDONS_BASE_CFLAGS),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_BASE_CFLAGS)) $(info ---PROJECT_ADDONS_DEFINES_CFLAGS---) - $(foreach v, $(PROJECT_ADDONS_DEFINES_CFLAGS),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_DEFINES_CFLAGS)) $(info ---PROJECT_ADDONS_INCLUDES_CFLAGS---) - $(foreach v, $(PROJECT_ADDONS_INCLUDES_CFLAGS),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_INCLUDES_CFLAGS)) $(info ---PROJECT_ADDONS_LDFLAGS---) - $(foreach v, $(PROJECT_ADDONS_LDFLAGS),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_LDFLAGS)) $(info ---PROJECT_ADDONS_DATA---) - $(foreach v, $(PROJECT_ADDONS_DATA),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS_DATA)) endif diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk index 7eccd7647c6..ac1a0702dea 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk @@ -94,10 +94,10 @@ OF_CORE_LIBRARY_LDFLAGS += $(addprefix -L,$(PLATFORM_LIBRARY_SEARCH_PATHS)) ifdef MAKEFILE_DEBUG $(info =============================configure.core.flags.make========================) $(info ---OF_CORE_LIBS_LDFLAGS---) - $(foreach v, $(OF_CORE_LIBS_LDFLAGS),$(info $(v))) + $(call esp-foreach-info,$(OF_CORE_LIBS_LDFLAGS)) $(info ---OF_CORE_LIBS---) - $(foreach v, $(OF_CORE_LIBS),$(info $(v))) + $(call esp-foreach-info,$(OF_CORE_LIBS)) endif ################################# ADDONS ###################################### @@ -108,16 +108,16 @@ endif # check to make sure OF_ROOT is defined ifndef OF_ROOT - $(error OF_ROOT is not defined) + $(error OF_ROOT is not defined) endif ifndef OF_ADDONS_PATH - $(error OF_ADDONS_PATH is not defined) + $(error OF_ADDONS_PATH is not defined) endif # check to make sure ABI_LIB_SUBPATH is defined ifndef ABI_LIB_SUBPATH - $(error ABI_LIB_SUBPATH is not defined) + $(error ABI_LIB_SUBPATH is not defined) endif @@ -195,7 +195,7 @@ ifdef B_PROCESS_ADDONS ifdef MAKEFILE_DEBUG $(info ---PROJECT_ADDONS---) - $(foreach v, $(PROJECT_ADDONS),$(info $(v))) + $(call esp-foreach-info,$(PROJECT_ADDONS)) $(info --------------------) endif @@ -289,10 +289,10 @@ OF_PROJECT_SOURCE_PATHS = $(filter-out $(OF_PROJECT_EXCLUSIONS),$(ALL_OF_PROJECT ifdef MAKEFILE_DEBUG $(info ---OF_PROJECT_SOURCE_PATHS---) - $(foreach v, $(OF_PROJECT_SOURCE_PATHS),$(info $(v))) + $(call esp-foreach-info,$(OF_PROJECT_SOURCE_PATHS)) $(info ---OF_PROJECT_EXCLUSIONS---) - $(foreach v, $(OF_PROJECT_EXCLUSIONS),$(info $(v))) + $(call esp-foreach-info,$(OF_PROJECT_EXCLUSIONS)) endif # find all sources inside the project's source directory (recursively) @@ -308,7 +308,7 @@ OF_ADDON_INCLUDES_CFLAGS += $(addprefix -I,$(filter-out $(PROJECT_INCLUDE_EXCLUS ifdef MAKEFILE_DEBUG $(info ---OF_PROJECT_INCLUDES_CFLAGS---) - $(foreach v, $(OF_PROJECT_INCLUDES_CFLAGS),$(info $(v))) + $(call esp-foreach-info,$(OF_PROJECT_INCLUDES_CFLAGS)) endif ################################################################################ @@ -527,11 +527,11 @@ endif ifdef MAKEFILE_DEBUG $(info ---OF_PROJECT_SOURCE_FILES---) - $(foreach v, $(OF_PROJECT_SOURCE_FILES),$(info $(v))) + $(call esp-foreach-info,$(OF_PROJECT_SOURCE_FILES)) endif ifdef MAKEFILE_DEBUG $(info ---OF_PROJECT_DEPENDENCY_FILES---) - $(foreach v, $(OF_PROJECT_DEPENDENCY_FILES),$(info $(v))) + $(call esp-foreach-info,$(OF_PROJECT_DEPENDENCY_FILES)) endif @@ -554,5 +554,5 @@ OF_PROJECT_DEPENDENCY_FILES = $(OF_PROJECT_DEPS) $(OF_PROJECT_ADDONS_DEPS) ifdef MAKEFILE_DEBUG $(info ---OF_PROJECT_DEPENDENCY_FILES---) - $(foreach v, $(OF_PROJECT_DEPENDENCY_FILES),$(info $(v))) + $(call esp-foreach-info,$(OF_PROJECT_DEPENDENCY_FILES)) endif diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 7f1e19b3bad..105858e0179 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -134,7 +134,7 @@ ifndef PLATFORM_LIB_SUBPATH else ifeq ($(PLATFORM_ARCH),i686) PLATFORM_LIB_SUBPATH=linux else - $(error This makefile does not support your architecture $(PLATFORM_ARCH)) + $(error This makefile does not support your architecture $(PLATFORM_ARCH)) endif SHARED_LIB_EXTENSION=so else ifneq (,$(findstring MINGW32_NT,$(PLATFORM_OS))) @@ -156,7 +156,7 @@ ifndef PLATFORM_LIB_SUBPATH PLATFORM_LIB_SUBPATH=emscripten SHARED_LIB_EXTENSION=so else - $(error This makefile does not support your operating system) + $(error This makefile does not support your operating system) endif endif @@ -230,7 +230,7 @@ endif ifdef OF_LIBS_OF_COMPILED_PROJECT_PATH OF_PLATFORM_MAKEFILES=$(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH) else - $(error OF_LIBS_OF_COMPILED_PATH is not defined) + $(error OF_LIBS_OF_COMPILED_PATH is not defined) endif ifndef OF_CORE_LIB_PATH @@ -264,7 +264,7 @@ AVAILABLE_PLATFORM_VARIANTS+=default # check to see if we have a file for the desired variant. if not, quit and list the variants. ifeq ($(findstring $(PLATFORM_VARIANT),$(AVAILABLE_PLATFORM_VARIANTS)),) - $(error Platform Variant "$(PLATFORM_VARIANT)" is not valid. Valid variants include [$(strip $(AVAILABLE_PLATFORM_VARIANTS))]) + $(error Platform Variant "$(PLATFORM_VARIANT)" is not valid. Valid variants include [$(strip $(AVAILABLE_PLATFORM_VARIANTS))]) endif # include the platform specific user and platform configuration files @@ -283,11 +283,11 @@ PLATFORM_PKG_CONFIG ?= pkg-config # define the location of the core path #TODO: make sure all of the right checks are here. ifndef PLATFORM_CORE_EXCLUSIONS - $(error PLATFORM_CORE_EXCLUSIONS not defined) + $(error PLATFORM_CORE_EXCLUSIONS not defined) endif ifndef OF_LIBS_OPENFRAMEWORKS_PATH - $(error OF_LIBS_OPENFRAMEWORKS_PATH not defined) + $(error OF_LIBS_OPENFRAMEWORKS_PATH not defined) endif ################################################################################ @@ -392,20 +392,20 @@ OF_CORE_HEADER_FILES=$(filter-out $(CORE_EXCLUSIONS),$(shell $(FIND) $(OF_CORE_S ifdef MAKEFILE_DEBUG $(info ========================= config.mk flags ========================) $(info ---OF_CORE_DEFINES_CFLAGS---) - $(foreach v, $(OF_CORE_DEFINES_CFLAGS),$(info $(v))) + $(call esp-foreach-info,$(OF_CORE_DEFINES_CFLAGS)) $(info ---OF_CORE_INCLUDES_CFLAGS---) - $(foreach v, $(OF_CORE_INCLUDES_CFLAGS),$(info $(v))) + $(call esp-foreach-info,$(OF_CORE_INCLUDES_CFLAGS)) $(info ---OF_CORE_FRAMEWORKS_CFLAGS---) - $(foreach v, $(OF_CORE_FRAMEWORKS_CFLAGS),$(info $(v))) + $(call esp-foreach-info,$(OF_CORE_FRAMEWORKS_CFLAGS)) $(info ---OF_CORE_SOURCE_FILES---) - $(foreach v, $(OF_CORE_SOURCE_FILES),$(info $(v))) + $(call esp-foreach-info,$(OF_CORE_SOURCE_FILES)) $(info ---OF_CORE_HEADER_FILES---) - $(foreach v, $(OF_CORE_HEADER_FILES),$(info $(v))) + $(call esp-foreach-info,$(OF_CORE_HEADER_FILES)) $(info ---PLATFORM_CORE_EXCLUSIONS---) - $(foreach v, $(PLATFORM_CORE_EXCLUSIONS),$(info $(v))) + $(call esp-foreach-info,$(PLATFORM_CORE_EXCLUSIONS)) endif From 3764b9c17dffd977612cea4c5689b3c5417020b5 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Sun, 24 Jan 2021 19:55:14 +0100 Subject: [PATCH 06/15] core: compile test app 'issue 3160' --- .../project/makefileCommon/compile.core.mk | 8 +- .../project/makefileCommon/compile.project.mk | 2 +- .../project/makefileCommon/config.addons.mk | 95 +++++++++---------- .../project/makefileCommon/config.project.mk | 59 ++++++------ .../project/makefileCommon/config.shared.mk | 28 +++--- 5 files changed, 98 insertions(+), 94 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk b/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk index 8e0bda707fb..50640563106 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk @@ -167,14 +167,14 @@ endif # OF_CORE_SOURCE_FILES $(patsubst $(OF_ROOT)/%.cpp,%.d,$(OF_CORE_SOURCE_FILES)) # 2. Add the OF_CORE_OBJ_OUTPUT_PATH as a prefix # $(addprefix $(OF_CORE_OBJ_OUTPUT_PATH), ...) -OF_CORE_DEPENDENCY_FILES = $(addprefix $(OF_CORE_OBJ_OUTPUT_PATH),$(patsubst $(OF_ROOT)/%.cpp,%.d,$(patsubst $(OF_ROOT)/%.mm,%.d,$(patsubst $(OF_ROOT)/%.m,%.d,$(OF_CORE_SOURCE_FILES))))) +OF_CORE_DEPENDENCY_FILES = $(call esp-addprefix,$(OF_CORE_OBJ_OUTPUT_PATH),$(call esp-patsubst,$(OF_ROOT)/%.cpp,%.d, $(call esp-patsubst,$(OF_ROOT)/%.mm,%.d, $(call esp-patsubst,$(OF_ROOT)/%.m,%.d,$(OF_CORE_SOURCE_FILES))))) # create a named list of object files # 1. create a list of object files based on the current list of # OF_CORE_SOURCE_FILES $(patsubst $(OF_ROOT)/%.cpp,%.o,$(OF_CORE_SOURCE_FILES) # 2. Add the OF_CORE_OBJ_OUTPUT_PATH as a prefix # $(addprefix $(OF_CORE_OBJ_OUTPUT_PATH), ...) -OF_CORE_OBJ_FILES = $(addprefix $(OF_CORE_OBJ_OUTPUT_PATH),$(patsubst $(OF_ROOT)/%.cpp,%.o,$(patsubst $(OF_ROOT)/%.mm,%.o,$(patsubst $(OF_ROOT)/%.m,%.o,$(OF_CORE_SOURCE_FILES))))) +OF_CORE_OBJ_FILES = $(call esp-addprefix,$(OF_CORE_OBJ_OUTPUT_PATH),$(call esp-patsubst,$(OF_ROOT)/%.cpp,%.o, $(call esp-patsubst,$(OF_ROOT)/%.mm,%.o, $(call esp-patsubst,$(OF_ROOT)/%.m,%.o,$(OF_CORE_SOURCE_FILES))))) ################################################################################ @@ -185,10 +185,10 @@ ifdef MAKEFILE_DEBUG $(info OF_CORE_OBJ_OUTPUT_PATH=$(OF_CORE_OBJ_OUTPUT_PATH)) $(info ---OF_CORE_DEPENDENCY_FILES---) - $(foreach v, $(OF_CORE_DEPENDENCY_FILES),$(info $(v))) + $(call esp-foreach-info,$(OF_CORE_DEPENDENCY_FILES)) $(info ---OF_CORE_OBJ_FILES---) - $(foreach v, $(OF_CORE_OBJ_FILES),$(info $(v))) + $(call esp-foreach-info,$(OF_CORE_OBJ_FILES)) endif diff --git a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk index eafbfae3b90..8f8a076a517 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk @@ -300,7 +300,7 @@ $(OF_PROJECT_OBJ_OUTPUT_PATH)%.o: $(PROJECT_EXTERNAL_SOURCE_PATHS)/%.S $(OF_PROJ #Rules to compile the addons sources when the addon path is specified explicitly -PROJECT_ADDONS_OBJ_PATH=$(realpath .)/$(OF_PROJECT_OBJ_OUTPUT_PATH)addons/ +PROJECT_ADDONS_OBJ_PATH=$(PROJECT_ROOT)/$(OF_PROJECT_OBJ_OUTPUT_PATH)addons/ $(PROJECT_ADDONS_OBJ_PATH)%.o: %.cpp $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags ifdef PROJECT_ADDON_PATHS @echo "Compiling" $< diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk index e4c8722a971..4da5c1c7d89 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk @@ -5,16 +5,16 @@ # parses addons includes, in PARSED_ADDON_INCLUDES receives full PATHS to addons define parse_addons_includes - $(eval ADDONS_INCLUDES_FILTER = $(addprefix $1/, $(ADDON_INCLUDES_EXCLUDE))) \ - $(eval PARSED_ADDONS_SOURCE_PATHS = $(addsuffix /src, $1)) \ - $(eval PARSED_ADDONS_SOURCE_INCLUDES = $(shell $(FIND) $(PARSED_ADDONS_SOURCE_PATHS) -type d 2> /dev/null | grep -v "/\.[^\.]" )) \ - $(eval PARSED_ADDONS_FILTERED_INCLUDE_PATHS = $(filter-out $(ADDONS_INCLUDES_FILTER),$(PARSED_ADDONS_SOURCE_INCLUDES))) \ - $(eval PARSED_ADDONS_LIBS_SOURCE_PATHS = $(addsuffix /libs, $1)) \ - $(eval PARSED_ADDONS_LIBS_SOURCE_INCLUDES = $(shell $(FIND) $(PARSED_ADDONS_LIBS_SOURCE_PATHS) -type d 2> /dev/null | grep -v "/\.[^\.]" )) \ - $(eval PARSED_ADDONS_FILTERED_LIBS_SOURCE_INCLUDE_PATHS = $(filter-out $(ADDONS_INCLUDES_FILTER),$(PARSED_ADDONS_LIBS_SOURCE_INCLUDES))) \ - $(eval PARSED_ADDONS_LIBS_INCLUDES_PATHS = $(addsuffix /libs/*/include, $1)) \ - $(eval PARSED_ADDONS_LIBS_INCLUDES = $(shell $(FIND) $(PARSED_ADDONS_LIBS_INCLUDES_PATHS) -type d 2> /dev/null | grep -v "/\.[^\.]" )) \ - $(eval PARSED_ADDONS_FILTERED_LIBS_INCLUDE_PATHS = $(filter-out $(ADDONS_INCLUDES_FILTER),$(PARSED_ADDONS_LIBS_INCLUDES))) \ + $(eval ADDONS_INCLUDES_FILTER = $(call esp-addprefix,$1/, $(ADDON_INCLUDES_EXCLUDE))) \ + $(eval PARSED_ADDONS_SOURCE_PATHS = $(call esp-addsuffix,/src, $1)) \ + $(eval PARSED_ADDONS_SOURCE_INCLUDES = $(shell $(FIND) $(PARSED_ADDONS_SOURCE_PATHS) -type d 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) \ + $(eval PARSED_ADDONS_FILTERED_INCLUDE_PATHS = $(call esp-filter-out,$(ADDONS_INCLUDES_FILTER),$(PARSED_ADDONS_SOURCE_INCLUDES))) \ + $(eval PARSED_ADDONS_LIBS_SOURCE_PATHS = $(call esp-addsuffix,/libs, $1)) \ + $(eval PARSED_ADDONS_LIBS_SOURCE_INCLUDES = $(shell $(FIND) $(PARSED_ADDONS_LIBS_SOURCE_PATHS) -type d 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) \ + $(eval PARSED_ADDONS_FILTERED_LIBS_SOURCE_INCLUDE_PATHS = $(call esp-filter-out,$(ADDONS_INCLUDES_FILTER),$(PARSED_ADDONS_LIBS_SOURCE_INCLUDES))) \ + $(eval PARSED_ADDONS_LIBS_INCLUDES_PATHS = $(call esp-addsuffix,/libs/*/include, $1)) \ + $(eval PARSED_ADDONS_LIBS_INCLUDES = $(shell $(FIND) $(PARSED_ADDONS_LIBS_INCLUDES_PATHS) -type d 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) \ + $(eval PARSED_ADDONS_FILTERED_LIBS_INCLUDE_PATHS = $(call esp-filter-out,$(ADDONS_INCLUDES_FILTER),$(PARSED_ADDONS_LIBS_INCLUDES))) \ $(eval PARSED_ADDONS_INCLUDES = $(PARSED_ADDONS_FILTERED_INCLUDE_PATHS)) \ $(eval PARSED_ADDONS_INCLUDES += $(PARSED_ADDONS_FILTERED_LIBS_SOURCE_INCLUDE_PATHS)) \ $(eval PARSED_ADDONS_INCLUDES += $(PARSED_ADDONS_FILTERED_LIBS_INCLUDE_PATHS)) @@ -22,26 +22,26 @@ endef # parses addons sources, in PARSED_ADDON_SOURCES receives full PATHS to addons define parse_addons_sources - $(eval ADDONS_SOURCES_FILTER = $(addprefix $1/, $(ADDON_SOURCES_EXCLUDE))) \ - $(eval PARSED_ADDONS_SOURCE_PATHS = $(addsuffix /src, $1)) \ - $(eval PARSED_ADDONS_OFX_SOURCES = $(shell $(FIND) $(PARSED_ADDONS_SOURCE_PATHS) -type f \( -name "*.cpp" -or -name "*.c" -or -name "*.cc" -or -name "*.cxx" \) 2> /dev/null | grep -v "/\.[^\.]" )) \ - $(eval PARSED_ADDONS_FILTERED_SOURCE_PATHS = $(filter-out $(ADDONS_SOURCES_FILTER),$(PARSED_ADDONS_OFX_SOURCES))) \ - $(eval PARSED_ADDONS_LIBS_SOURCE_PATHS = $(addsuffix /libs, $1)) \ - $(eval PARSED_ADDONS_LIBS_SOURCES = $(shell $(FIND) $(PARSED_ADDONS_LIBS_SOURCE_PATHS) -type f \( -name "*.cpp" -or -name "*.c" -or -name "*.cc" -or -name "*.cxx" \) 2> /dev/null | grep -v "/\.[^\.]" )) \ - $(eval PARSED_ADDONS_FILTERED_LIBS_SOURCE_PATHS = $(filter-out $(ADDONS_SOURCES_FILTER),$(PARSED_ADDONS_LIBS_SOURCES))) \ + $(eval ADDONS_SOURCES_FILTER = $(call esp-addprefix,$1/, $(ADDON_SOURCES_EXCLUDE))) \ + $(eval PARSED_ADDONS_SOURCE_PATHS = $(call esp-addsuffix,/src, $1)) \ + $(eval PARSED_ADDONS_OFX_SOURCES = $(shell $(FIND) $(PARSED_ADDONS_SOURCE_PATHS) -type f \( -name "*.cpp" -or -name "*.c" -or -name "*.cc" -or -name "*.cxx" \) 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g') ) \ + $(eval PARSED_ADDONS_FILTERED_SOURCE_PATHS = $(call esp-filter-out,$(ADDONS_SOURCES_FILTER),$(PARSED_ADDONS_OFX_SOURCES))) \ + $(eval PARSED_ADDONS_LIBS_SOURCE_PATHS = $(call esp-addsuffix,/libs, $1)) \ + $(eval PARSED_ADDONS_LIBS_SOURCES = $(shell $(FIND) $(PARSED_ADDONS_LIBS_SOURCE_PATHS) -type f \( -name "*.cpp" -or -name "*.c" -or -name "*.cc" -or -name "*.cxx" \) 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) \ + $(eval PARSED_ADDONS_FILTERED_LIBS_SOURCE_PATHS = $(call esp-filter-out,$(ADDONS_SOURCES_FILTER),$(PARSED_ADDONS_LIBS_SOURCES))) \ $(eval PARSED_ADDONS_SOURCE_FILES = $(PARSED_ADDONS_FILTERED_SOURCE_PATHS)) \ $(eval PARSED_ADDONS_SOURCE_FILES += $(PARSED_ADDONS_FILTERED_LIBS_SOURCE_PATHS)) endef # parses addons libraries, in PARSED_ADDON_LIBS receives full PATHS to addons and libs_exclude define parse_addons_libraries - $(eval PARSED_ADDONS_LIBS_PLATFORM_LIB_PATHS = $(filter-out $(ADDON_LIBS_EXCLUDE),$(addsuffix /libs/*/lib/$(ABI_LIB_SUBPATH), $1))) \ - $(eval PARSED_ALL_PLATFORM_LIBS = $(shell $(FIND) $(PARSED_ADDONS_LIBS_PLATFORM_LIB_PATHS) -type d 2> /dev/null | grep -v "/\.[^\.]" )) \ + $(eval PARSED_ADDONS_LIBS_PLATFORM_LIB_PATHS = $(call esp-filter-out,$(ADDON_LIBS_EXCLUDE),$(call esp-addsuffix,/libs/*/lib/$(ABI_LIB_SUBPATH), $1))) \ + $(eval PARSED_ALL_PLATFORM_LIBS = $(shell $(FIND) $(PARSED_ADDONS_LIBS_PLATFORM_LIB_PATHS) -type d 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) \ $(if $(PARSED_ALL_PLATFORM_LIBS), \ - $(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_STATICS = $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.a 2> /dev/null | grep -v "/\.[^\.]" )) \ - $(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED = $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.so 2> /dev/null | grep -v "/\.[^\.]" )) \ - $(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED += $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.dylib 2> /dev/null | grep -v "/\.[^\.]" )) \ - $(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED += $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.dll 2> /dev/null | grep -v "/\.[^\.]" )) \ + $(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_STATICS = $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.a 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g') ) \ + $(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED = $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.so 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) \ + $(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED += $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.dylib 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) \ + $(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED += $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.dll 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) \ $(eval PARSED_ADDONS_LIBS = $(PARSED_ADDONS_LIBS_PLATFORM_LIBS_STATICS)) \ $(eval PARSED_ADDONS_LIBS += $(PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED)) \ ) @@ -52,7 +52,7 @@ space := space += define src_to_obj - $(addsuffix .o,$(basename $(filter %.c %.cpp %.cc %.cxx %.cc %.s %.S, $(addprefix $3,$(addprefix $2,$1))))) + $(call esp-addsuffix,.o,$(basename $(call esp-filter,%.c %.cpp %.cc %.cxx %.cc %.s %.S, $(call esp-addprefix,$3,$(call esp-addprefix,$2,$1))))) endef define rwildcard @@ -70,12 +70,12 @@ endef # 6: if PROCESS_NEXT eval the line to put the variable in the makefile space define parse_addon $(if $(wildcard $(PROJECT_ROOT)/$1), \ - $(eval addon=$(realpath $(addprefix $(PROJECT_ROOT)/, $1))) \ + $(eval addon=$(call esp-realpath,$(call esp-addprefix,$(PROJECT_ROOT)/, $1))) \ $(eval addon_obj_path=$(PROJECT_ROOT)) \ $(eval ADDON_PATHS+= $(dir $(addon))) \ $(eval obj_prefix=$(OF_PROJECT_OBJ_OUTPUT_PATH)addons/) \ , \ - $(eval addon=$(realpath $(addprefix $(OF_ADDONS_PATH)/, $1))) \ + $(eval addon=$(call esp-realpath,$(call esp-addprefix,$(OF_ADDONS_PATH)/, $1))) \ $(eval addon_obj_path=$(OF_ADDONS_PATH)) \ $(eval obj_prefix=$(OF_PROJECT_OBJ_OUTPUT_PATH)) \ ) \ @@ -95,7 +95,7 @@ define parse_addon $(call parse_addons_sources, $(addon)) \ $(eval ADDON_SOURCES=$(PARSED_ADDONS_SOURCE_FILES)) \ $(eval PROCESS_NEXT=0) \ - $(if $(wildcard $(addon)/addon_config.mk), \ + $(if $(call esp-exist,$(addon)/addon_config.mk), \ $(foreach var_line, $(shell cat $(addon)/addon_config.mk | tr '\n ' '\t?'), \ $(eval unscaped_var_line=$(strip $(subst ?, ,$(var_line)))) \ $(if $(filter $(PROCESS_NEXT),1), $(eval $(unscaped_var_line))) \ @@ -111,15 +111,9 @@ define parse_addon ) \ ) \ $(if $(strip $(ADDON_INCLUDES)), \ - $(eval ADDON_INCLUDES_FILTERED = $(filter-out $(addprefix $(addon)/,$(ADDON_INCLUDES_EXCLUDE)),$(ADDON_INCLUDES))) \ - $(foreach addon_include, $(strip $(ADDON_INCLUDES_FILTERED)), \ - $(if $(wildcard $(addon)/$(addon_include)), \ - $(eval TMP_PROJECT_ADDONS_INCLUDES += $(addon)/$(addon_include)) \ - ) \ - $(if $(wildcard $(addon_include)), \ - $(eval TMP_PROJECT_ADDONS_INCLUDES += $(addon_include)) \ - ) \ - ) \ + $(eval ADDON_INCLUDES_FILTERED = $(call esp-filter-out,$(call esp-addprefix,$(addon)/,$(ADDON_INCLUDES_EXCLUDE)),$(ADDON_INCLUDES))) \ + $(eval TMP_PROJECT_ADDONS_INCLUDES += $(call esp-exist,$(call esp-addprefix,$(addon)/,$(ADDON_INCLUDES_FILTERED)))) \ + $(eval TMP_PROJECT_ADDONS_INCLUDES += $(call esp-exist,$(ADDON_INCLUDES_FILTERED))) \ ) \ $(eval TMP_PROJECT_ADDONS_CFLAGS += $(ADDON_CFLAGS)) \ $(eval TMP_PROJECT_ADDONS_CFLAGS += $(ADDON_CPPFLAGS)) \ @@ -138,9 +132,10 @@ define parse_addon $(eval TMP_PROJECT_ADDONS_FRAMEWORKS += $(ADDON_FRAMEWORKS)) \ $(eval PROJECT_AFTER += $(ADDON_AFTER)) \ $(if $(strip $(ADDON_SOURCES)), \ - $(eval ADDON_SOURCES_FILTERED = $(filter-out $(addprefix $(addon)/,$(ADDON_SOURCES_EXCLUDE)),$(ADDON_SOURCES))) \ - $(foreach addon_src, $(strip $(ADDON_SOURCES_FILTERED)), \ - $(if $(filter $(addon)%, $(addon_src)), \ + $(eval ADDON_SOURCES_FILTERED = $(call filter-out,$(call esp-addprefix,$(addon)/,$(ADDON_SOURCES_EXCLUDE)),$(ADDON_SOURCES))) \ + $(foreach addon_src_c, $(strip $(call esp2c,$(ADDON_SOURCES_FILTERED))), \ + $(eval addon_src= $(call c2esp,$(addon_src_c))) \ + $(if $(call esp-filter,$(addon)%, $(addon_src)), \ $(eval addon_path=$(subst %,*,$(addon_src))) \ $(if $(findstring *,$(addon_path)), \ $(eval addon_dir=$(dir $(addon_path))) \ @@ -148,16 +143,16 @@ define parse_addon $(eval addon_files=$(strip $(call rwildcard,$(addon_dir),$(addon_rest)))) \ $(foreach expanded_addon_src, $(addon_files), \ $(eval TMP_PROJECT_ADDONS_SOURCE_FILES += $(expanded_addon_src)) \ - $(eval SRC_OBJ_FILE=$(addprefix $(addon_obj_path)/,$(strip $(call src_to_obj, $(expanded_addon_src:$(addon)/%=%),$(notdir $1)/,$(obj_prefix))))) \ + $(eval SRC_OBJ_FILE=$(call esp-addprefix,$(addon_obj_path)/,$(strip $(call src_to_obj, $(call esp-patsubst,$(addon)/%,%,$(expanded_addon_src)),$(notdir $1)/,$(obj_prefix))))) \ $(eval TMP_PROJECT_ADDONS_OBJ_FILES += $(SRC_OBJ_FILE)) \ ) \ , \ $(eval TMP_PROJECT_ADDONS_SOURCE_FILES += $(addon_src)) \ - $(eval SRC_OBJ_FILE=$(addprefix $(addon_obj_path)/,$(strip $(call src_to_obj, $(addon_src:$(addon)/%=%),$(notdir $1)/,$(obj_prefix))))) \ + $(eval SRC_OBJ_FILE=$(call esp-addprefix,$(addon_obj_path)/,$(strip $(call src_to_obj, $(call esp-patsubst,$(addon)/%,%,$(addon_src)),$(notdir $1)/,$(obj_prefix))))) \ $(eval TMP_PROJECT_ADDONS_OBJ_FILES += $(SRC_OBJ_FILE)) \ ) \ , \ - $(if $(filter $(OF_ROOT)%, $(addon_src)), \ + $(if $(call esp-filter,$(OF_ROOT)%, $(addon_src)), \ $(eval addon_path=$(subst %,*,$(addon_src))) \ $(if $(findstring *,$(addon_path)), \ $(eval addon_dir=$(dir $(addon_src))) \ @@ -165,15 +160,15 @@ define parse_addon $(eval addon_files=$(strip $(call rwildcard,$(addon_dir),$(addon_rest)))) \ $(foreach expanded_addon_src, $(addon_files), \ $(eval TMP_PROJECT_ADDONS_SOURCE_FILES += $(expanded_addon_src)) \ - $(eval SRC_OBJ_FILE=$(strip $(call src_to_obj, $(expanded_addon_src:$(OF_ROOT)/%=%),,$(obj_prefix)))) \ + $(eval SRC_OBJ_FILE=$(strip $(call src_to_obj, $(call esp-patsubst,$(OF_ROOT)/%,%,$(expanded_addon_src)),,$(obj_prefix)))) \ $(eval TMP_PROJECT_ADDONS_OBJ_FILES += $(SRC_OBJ_FILE)) \ ) \ , \ $(eval TMP_PROJECT_ADDONS_SOURCE_FILES += $(addon_src)) \ - $(eval SRC_OBJ_FILE=$(strip $(call src_to_obj, $(addon_src:$(OF_ROOT)/%=%),,$(obj_prefix)))) \ + $(eval SRC_OBJ_FILE=$(strip $(call src_to_obj, $(call esp-patsubst,$(OF_ROOT)/%,%,$(addon_src)),,$(obj_prefix)))) \ $(eval TMP_PROJECT_ADDONS_OBJ_FILES += $(SRC_OBJ_FILE)) \ ) \ - ,$(if $(filter-out /%, $(addon_src)), \ + ,$(if $(call esp-filter-out,/%, $(addon_src)), \ $(eval addon_path=$(addon)/$(subst %,*,$(addon_src))) \ $(if $(findstring *,$(addon_path)), \ $(eval addon_dir=$(dir $(addon_path))) \ @@ -181,12 +176,12 @@ define parse_addon $(eval addon_files=$(strip $(call rwildcard,$(addon_dir),$(addon_rest)))) \ $(foreach expanded_addon_src, $(addon_files), \ $(eval TMP_PROJECT_ADDONS_SOURCE_FILES += $(expanded_addon_src)) \ - $(eval SRC_OBJ_FILE=$(addprefix $(addon_obj_path)/,$(strip $(call src_to_obj, $(expanded_addon_src:$(addon)/%=%),$(notdir $1)/,$(obj_prefix))))) \ + $(eval SRC_OBJ_FILE=$(call esp-addprefix,$(addon_obj_path)/,$(strip $(call src_to_obj, $(call esp-patsubst,$(addon)/%,%,$(expanded_addon_src)),$(notdir $1)/,$(obj_prefix))))) \ $(eval TMP_PROJECT_ADDONS_OBJ_FILES += $(SRC_OBJ_FILE)) \ ) \ , \ $(eval TMP_PROJECT_ADDONS_SOURCE_FILES += $(addon_path)) \ - $(eval SRC_OBJ_FILE=$(addprefix $(addon_obj_path)/,$(strip $(call src_to_obj, $(addon_path:$(addon)/%=%),$(notdir $1)/,$(obj_prefix))))) \ + $(eval SRC_OBJ_FILE=$(call esp-addprefix,$(addon_obj_path)/,$(strip $(call src_to_obj, $(call esp-patsubst,$(addon)/%,%,$(addon_path)),$(notdir $1)/,$(obj_prefix))))) \ $(eval TMP_PROJECT_ADDONS_OBJ_FILES += $(SRC_OBJ_FILE)) \ ) \ ,$(error cannot find addon source file $(addon_src))) \ @@ -195,10 +190,10 @@ define parse_addon ) \ ) \ $(if $(strip $(ADDON_DATA)), \ - $(eval TMP_PROJECT_ADDONS_DATA += $(addprefix $(addon)/,$(ADDON_DATA))) \ + $(eval TMP_PROJECT_ADDONS_DATA += $(call esp-addprefix,$(addon)/,$(ADDON_DATA))) \ ) \ $(foreach addon_dep, $(strip $(ADDON_DEPENDENCIES)), \ - $(if $(filter %$(addon_dep), $(PROJECT_ADDONS)), \ + $(if $(call esp-filter,%$(addon_dep), $(PROJECT_ADDONS)), \ , \ $(eval PROJECT_ADDONS += $(addon_dep)) \ $(call parse_addon,$(addon_dep)) \ @@ -218,7 +213,7 @@ $(foreach addon_to_parse, $(PROJECT_ADDONS), \ #endef -uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1))) +uniq = $(if $1,$(call esp-firstword,$1) $(call uniq,$(call esp-filter-out,$(call esp-firstword,$1),$1))) PROJECT_ADDONS_CFLAGS = $(call uniq,$(TMP_PROJECT_ADDONS_CFLAGS)) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk index ac1a0702dea..e4be3441f2e 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk @@ -9,6 +9,8 @@ endif ifndef PROJECT_ROOT PROJECT_ROOT= $(realpath .) endif +# escape spaces in PROJECT_ROOT +PROJECT_ROOT:=$(call sp2esp,$(PROJECT_ROOT)) # define the OF_SHARED_MAKEFILES location @@ -25,25 +27,25 @@ ALL_OF_CORE_LIBS_PLATFORM_LIB_PATHS = $(OF_LIBS_PATH)/*/lib/$(ABI_LIB_SUBPATH) # create a list of all core platform libraries # grep -v "/\.[^\.]" will exclude all .hidden folders and files -ALL_OF_CORE_LIBS_PATHS = $(shell $(FIND) $(ALL_OF_CORE_LIBS_PLATFORM_LIB_PATHS) -type d -not -path "*/openFrameworksCompiled/*" 2> /dev/null | grep -v "/\.[^\.]" ) +ALL_OF_CORE_LIBS_PATHS = $(shell $(FIND) $(ALL_OF_CORE_LIBS_PLATFORM_LIB_PATHS) -type d -not -path "*/openFrameworksCompiled/*" 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g') # create a list of all core lib directories that have libsorder.make # grep -v "/\.[^\.]" will exclude all .hidden folders and files -ALL_OF_CORE_LIBSORDER_MAKE_FILES = $(shell $(FIND) $(ALL_OF_CORE_LIBS_PLATFORM_LIB_PATHS) -name libsorder.make -not -path "*/openFrameworksCompiled/*" 2> /dev/null | grep -v "/\.[^\.]" ) +ALL_OF_CORE_LIBSORDER_MAKE_FILES = $(shell $(FIND) $(ALL_OF_CORE_LIBS_PLATFORM_LIB_PATHS) -name libsorder.make -not -path "*/openFrameworksCompiled/*" 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g') # create a list of all of the core libs that require ordering OF_CORE_LIBS_THAT_NEED_ORDER = $(subst /lib/$(ABI_LIB_SUBPATH)/libsorder.make,,$(ALL_OF_CORE_LIBSORDER_MAKE_FILES)) # create a list of all of the platform libs that DO NOT require ordering # by removing those that do from the list of all platform libraries -OF_CORE_LIBS_THAT_DONT_NEED_ORDER = $(filter-out $(OF_CORE_LIBS_THAT_NEED_ORDER),$(subst /lib/$(ABI_LIB_SUBPATH),,$(ALL_OF_CORE_LIBS_PATHS))) +OF_CORE_LIBS_THAT_DONT_NEED_ORDER = $(call esp-filter-out,$(OF_CORE_LIBS_THAT_NEED_ORDER),$(subst /lib/$(ABI_LIB_SUBPATH),,$(ALL_OF_CORE_LIBS_PATHS))) # create a list of all static libs in the core lib dir, using only # the static libs that don't need order # 2> /dev/null consumes file not found errors from find searches # grep -v "/\.[^\.]" will exclude all .hidden folders and files # TODO: create a varaible for core specific static lib suffix -OF_CORE_LIBS_PLATFORM_LIBS_STATICS = $(shell $(FIND) $(addsuffix /lib/$(ABI_LIB_SUBPATH),$(OF_CORE_LIBS_THAT_DONT_NEED_ORDER)) -name *.a -o -name *.bc 2> /dev/null | grep -v "/\.[^\.]" ) +OF_CORE_LIBS_PLATFORM_LIBS_STATICS = $(shell $(FIND) $(call esp-addsuffix,/lib/$(ABI_LIB_SUBPATH),$(OF_CORE_LIBS_THAT_DONT_NEED_ORDER)) -name *.a -o -name *.bc 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g') # create a list of all static lib files for the libs that need order # NOTE. this is the most unintuitive line of make script magic in here # How does it work? @@ -58,23 +60,23 @@ OF_CORE_LIBS_PLATFORM_LIBS_STATICS = $(shell $(FIND) $(addsuffix /lib/$(ABI_LIB_ # (to escape # in make, you must use \#) # sed '/^$/d' removes all empty lines # (to escape $ in make, you must use $$) -OF_CORE_LIBS_PLATFORM_LIBS_STATICS += $(foreach v,$(ALL_OF_CORE_LIBSORDER_MAKE_FILES),$(foreach vv,$(shell cat $(v) 2> /dev/null | sed 's/[ ]*\#.*//g' | sed '/^$$/d'),$(addprefix $(subst libsorder.make,,$(v)),$(vv)))) +OF_CORE_LIBS_PLATFORM_LIBS_STATICS += $(foreach v,$(ALL_OF_CORE_LIBSORDER_MAKE_FILES),$(foreach vv,$(shell cat $(v) 2> /dev/null | sed 's/[ ]*\#.*//g' | sed '/^$$/d'),$(call esp-addprefix, $(subst libsorder.make,,$(v)),$(vv)))) # grep -v "/\.[^\.]" will exclude all .hidden folders and files ifeq ($(PLATFORM_OS),Linux) - ALL_OF_CORE_THIRDPARTY_SHARED_LIBS := $(shell $(FIND) $(OF_LIBS_PATH)/*/lib/$(ABI_LIB_SUBPATH)/*.so -not -path "*/openFrameworksCompiled/*" 2> /dev/null | grep -v "/\.[^\.]") + ALL_OF_CORE_THIRDPARTY_SHARED_LIBS := $(shell $(FIND) $(OF_LIBS_PATH)/*/lib/$(ABI_LIB_SUBPATH)/*.so -not -path "*/openFrameworksCompiled/*" 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g') else ifeq ($(PLATFORM_OS),Darwin) - ALL_OF_CORE_THIRDPARTY_SHARED_LIBS := $(shell $(FIND) $(OF_LIBS_PATH)/*/lib/$(ABI_LIB_SUBPATH)/*.dylib -not -path "*/openFrameworksCompiled/*" 2> /dev/null | grep -v "/\.[^\.]") + ALL_OF_CORE_THIRDPARTY_SHARED_LIBS := $(shell $(FIND) $(OF_LIBS_PATH)/*/lib/$(ABI_LIB_SUBPATH)/*.dylib -not -path "*/openFrameworksCompiled/*" 2> /dev/null | grep -v "/\.[^\.]" | sed 's/ /\\ /g') endif endif # add in any libraries that were explicitly listed in the platform config files. -OF_CORE_THIRDPARTY_STATIC_LIBS := $(filter-out $(CORE_EXCLUSIONS),$(OF_CORE_LIBS_PLATFORM_LIBS_STATICS)) +OF_CORE_THIRDPARTY_STATIC_LIBS := $(call esp-filter-out,$(CORE_EXCLUSIONS),$(OF_CORE_LIBS_PLATFORM_LIBS_STATICS)) OF_CORE_THIRDPARTY_STATIC_LIBS += $(PLATFORM_STATIC_LIBRARIES) #TODO what to do with shared libs? -OF_CORE_THIRDPARTY_SHARED_LIBS := $(filter-out $(CORE_EXCLUSIONS),$(ALL_OF_CORE_THIRDPARTY_SHARED_LIBS)) +OF_CORE_THIRDPARTY_SHARED_LIBS := $(call esp-filter-out,$(CORE_EXCLUSIONS),$(ALL_OF_CORE_THIRDPARTY_SHARED_LIBS)) ################################################################################ @@ -82,10 +84,10 @@ OF_CORE_THIRDPARTY_SHARED_LIBS := $(filter-out $(CORE_EXCLUSIONS),$(ALL_OF_CORE_ ################################################################################ ifeq ($(PLATFORM_OS),Linux) - OF_CORE_LIBRARY_LDFLAGS = $(addprefix -L,$(dir $(OF_CORE_THIRDPARTY_SHARED_LIBS))) - OF_CORE_LIBRARY_LDFLAGS += $(addprefix -l,$(patsubst lib%,%,$(basename $(notdir $(OF_CORE_THIRDPARTY_SHARED_LIBS))))) + OF_CORE_LIBRARY_LDFLAGS = $(call esp-addprefix, -L,$(dir $(OF_CORE_THIRDPARTY_SHARED_LIBS))) + OF_CORE_LIBRARY_LDFLAGS += $(call esp-addprefix, -l,$(patsubst lib%,%,$(basename $(notdir $(OF_CORE_THIRDPARTY_SHARED_LIBS))))) endif -OF_CORE_LIBRARY_LDFLAGS += $(addprefix -L,$(PLATFORM_LIBRARY_SEARCH_PATHS)) +OF_CORE_LIBRARY_LDFLAGS += $(call esp-addprefix, -L,$(PLATFORM_LIBRARY_SEARCH_PATHS)) ################################################################################ @@ -156,11 +158,11 @@ ifdef B_PROCESS_ADDONS # (to escape # in make, you must use \#) # sed '/^$/d' removes all empty lines # (to escape $ in make, you must use $$) - REQUESTED_PROJECT_ADDONS := $(shell cat $(PROJECT_ROOT)/addons.make 2> /dev/null | sed 's/[ ]*\#.*//g' | sed '/^$$/d') + REQUESTED_PROJECT_ADDONS := $(shell cat $(call quote-path-func,$(PROJECT_ROOT)/addons.make) 2> /dev/null | sed 's/[ ]*\#.*//g' | sed '/^$$/d') # deal with platform specfic addons # remove any platform specific addons that were already added to the addons.make file - REQUESTED_PROJECT_ADDONS := $(filter-out $(PLATFORM_REQUIRED_ADDONS),$(REQUESTED_PROJECT_ADDONS)) + REQUESTED_PROJECT_ADDONS := $(call esp-filter-out,$(PLATFORM_REQUIRED_ADDONS),$(REQUESTED_PROJECT_ADDONS)) # define a function to remove duplicates without using sort, because sort # will place the list in lexicographic order, and we want to respect the @@ -212,6 +214,7 @@ ifdef B_PROCESS_ADDONS PROJECT_ADDON_PATHS = $(addsuffix /,$(call remove-dupes-func,$(ADDON_PATHS:%/=%))) endif endif +$(info Line221) # generate the list of core libraries # 1. Add all of the third party static libs defined by the platform config files. @@ -235,7 +238,7 @@ ifneq ($(strip $(CORE_PKG_CONFIG_LIBRARIES)),) endif # 4. Add the libraries defined in the platform config files. -OF_CORE_LIBS += $(addprefix -l,$(PLATFORM_LIBRARIES)) +OF_CORE_LIBS += $(call esp-addprefix, -l,$(PLATFORM_LIBRARIES)) # add the list of addon includes ifneq ($(strip $(PROJECT_ADDONS_PKG_CONFIG_LIBRARIES)),) @@ -278,14 +281,14 @@ ALL_OF_PROJECT_SOURCE_PATHS = $(shell $(FIND) $(PROJECT_ROOT)/src \ -not -path "./bin/*" \ -not -path "./obj/*" \ -not -path "./*.xcodeproj/*" \ - -not -path "*/\.*") + -not -path "*/\.*" | sed 's/ /\\ /g') ifneq ($(PROJECT_EXTERNAL_SOURCE_PATHS),) - ALL_OF_PROJECT_SOURCE_PATHS += $(PROJECT_EXTERNAL_SOURCE_PATHS) - ALL_OF_PROJECT_SOURCE_PATHS += $(shell $(FIND) $(PROJECT_EXTERNAL_SOURCE_PATHS) -mindepth 1 -type d | grep -v "/\.[^\.]") + ALL_OF_PROJECT_SOURCE_PATHS += $(call sp2esp,$(PROJECT_EXTERNAL_SOURCE_PATHS)) + ALL_OF_PROJECT_SOURCE_PATHS += $(shell $(FIND) $(PROJECT_EXTERNAL_SOURCE_PATHS) -mindepth 1 -type d | grep -v "/\.[^\.]" | sed 's/ /\\ /g') endif # be included as locations for header searches via -OF_PROJECT_SOURCE_PATHS = $(filter-out $(OF_PROJECT_EXCLUSIONS),$(ALL_OF_PROJECT_SOURCE_PATHS)) +OF_PROJECT_SOURCE_PATHS = $(call esp-filter-out,$(OF_PROJECT_EXCLUSIONS),$(ALL_OF_PROJECT_SOURCE_PATHS)) ifdef MAKEFILE_DEBUG $(info ---OF_PROJECT_SOURCE_PATHS---) @@ -297,14 +300,14 @@ endif # find all sources inside the project's source directory (recursively) # grep -v "/\.[^\.]" will exclude all .hidden folders and files -OF_PROJECT_SOURCE_FILES = $(shell $(FIND) $(OF_PROJECT_SOURCE_PATHS) -maxdepth 1 -name "*.mm" -or -name "*.m" -or -name "*.cpp" -or -name "*.c" -or -name "*.cc" -or -name "*.cxx" -or -name "*.S" | grep -v "/\.[^\.]") +OF_PROJECT_SOURCE_FILES =$(shell $(FIND) $(OF_PROJECT_SOURCE_PATHS) -maxdepth 1 -name "*.mm" -or -name "*.m" -or -name "*.cpp" -or -name "*.c" -or -name "*.cc" -or -name "*.cxx" -or -name "*.S" | grep -v "/\.[^\.]" | sed 's/ /\\ /g') ################################################################################ # PROJECT HEADER INCLUDES (-I ...) ################################################################################ -OF_PROJECT_INCLUDES_CFLAGS := $(addprefix -I,$(filter-out $(PROJECT_INCLUDE_EXCLUSIONS),$(OF_PROJECT_SOURCE_PATHS))) -OF_ADDON_INCLUDES_CFLAGS += $(addprefix -I,$(filter-out $(PROJECT_INCLUDE_EXCLUSIONS),$(PROJECT_ADDONS_INCLUDES))) +OF_PROJECT_INCLUDES_CFLAGS := $(call esp-addprefix, -I,$(call esp-filter-out,$(PROJECT_INCLUDE_EXCLUSIONS),$(OF_PROJECT_SOURCE_PATHS))) +OF_ADDON_INCLUDES_CFLAGS += $(call esp-addprefix, -I,$(call esp-filter-out,$(PROJECT_INCLUDE_EXCLUSIONS),$(PROJECT_ADDONS_INCLUDES))) ifdef MAKEFILE_DEBUG $(info ---OF_PROJECT_INCLUDES_CFLAGS---) @@ -321,7 +324,7 @@ endif # TODO - + frameworks? OF_PROJECT_LIBS := OF_PROJECT_LIBS += $(PROJECT_ADDONS_LIBS) -#OF_PROJECT_LIBS_LDFLAGS = $(addprefix -l,$(OF_PROJECT_LIBS)) +#OF_PROJECT_LIBS_LDFLAGS = $(call esp-addprefix, -l,$(OF_PROJECT_LIBS)) ################################################################################ # PROJECT DEFINES @@ -330,7 +333,7 @@ OF_PROJECT_LIBS += $(PROJECT_ADDONS_LIBS) OF_PROJECT_DEFINES := $(PROJECT_DEFINES) OF_PROJECT_DEFINES += $(PROJECT_ADDONS_DEFINES) -OF_PROJECT_DEFINES_CFLAGS = $(addprefix -D,$(OF_PROJECT_DEFINES)) +OF_PROJECT_DEFINES_CFLAGS = $(addprefix, -D,$(OF_PROJECT_DEFINES)) ################################################################################ # PROJECT CFLAGS @@ -356,9 +359,9 @@ OF_PROJECT_LDFLAGS += $(USER_LDFLAGS) # legacy OF_PROJECT_LDFLAGS += $(USER_LIBS) # legacy OF_PROJECT_LDFLAGS += $(OF_PROJECT_LIBS_LDFLAGS) OF_PROJECT_LDFLAGS += $(PROJECT_ADDONS_LDFLAGS) -OF_PROJECT_LDFLAGS += $(addprefix -framework ,$(PROJECT_FRAMEWORKS)) -OF_PROJECT_LDFLAGS += $(addprefix -framework ,$(PLATFORM_FRAMEWORKS)) -OF_PROJECT_LDFLAGS += $(addprefix -framework ,$(PROJECT_ADDONS_FRAMEWORKS)) +OF_PROJECT_LDFLAGS += $(call esp-addprefix, -framework ,$(PROJECT_FRAMEWORKS)) +OF_PROJECT_LDFLAGS += $(call esp-addprefix, -framework ,$(PLATFORM_FRAMEWORKS)) +OF_PROJECT_LDFLAGS += $(call esp-addprefix, -framework ,$(PROJECT_ADDONS_FRAMEWORKS)) @@ -536,7 +539,7 @@ endif OF_PROJECT_OBJ_FILES = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(patsubst %.cxx,%.o,$(patsubst %.cc,%.o,$(patsubst %.S,%.o,$(patsubst %.mm,%.o,$(patsubst %.m,%.o,$(OF_PROJECT_SOURCE_FILES)))))))) -OBJS_WITH_PREFIX = $(addprefix $(OF_PROJECT_OBJ_OUTPUT_PATH),$(OF_PROJECT_OBJ_FILES)) +OBJS_WITH_PREFIX = $(call esp-addprefix,$(OF_PROJECT_OBJ_OUTPUT_PATH),$(OF_PROJECT_OBJ_FILES)) OBJS_WITHOUT_EXTERNAL = $(subst $(strip $(PROJECT_EXTERNAL_SOURCE_PATHS)),,$(OBJS_WITH_PREFIX)) OF_PROJECT_OBJS = $(subst $(PROJECT_ROOT)/,,$(OBJS_WITHOUT_EXTERNAL)) OF_PROJECT_DEPS = $(patsubst %.o,%.d,$(OF_PROJECT_OBJS)) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index 105858e0179..b1b21be9738 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -47,6 +47,9 @@ esp-exist = $(foreach f,$(call esp2c,$1),$(if $(wildcard $(call c2esp,$f)),$(cal # get @D from escaped $@ as @D do not return an escaped parent directory esp-@D = $(dir $(call sp2esp,$@)) +revspace-func = $(shell echo $1 | tr '+' ' ') +quote-path-func = $(if $(findstring +,$1),"$(call revspace-func,$1)",$1) + # ##################### PLATFORM DETECTION ################################### # determine the platform's architecture, os and form the platform-specific libarary subpath # If they haven't already been defined, this file will generate the following @@ -61,6 +64,9 @@ esp-@D = $(dir $(call sp2esp,$@)) SHELL ?= /bin/sh OF_ROOT ?= $(realpath ../../..) +# escape spaces in OF_ROOT +OF_ROOT:=$(call sp2esp,$(OF_ROOT)) + PLATFORM_VARIANT ?= default # ifeq ($(CC),$(EMSCRIPTEN)/emcc) @@ -254,8 +260,8 @@ ifdef MAKEFILE_DEBUG endif -ifeq ($(wildcard $(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH)),) -$(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH) probably you downloaded the wrong package?) +ifeq ($(call esp-exist,$(OF_LIBS_OF_COMPILED_PROJECT_PATH)/$(PLATFORM_LIB_SUBPATH)),) + $(error This package doesn't support your platform, $(OF_LIBS_OF_COMPILED_PROJECT_PATH) probably you downloaded the wrong package?) endif # generate a list of valid core platform variants from the files in the platform makefiles directory @@ -303,10 +309,10 @@ CORE_EXCLUSIONS = $(strip $(PLATFORM_CORE_EXCLUSIONS)) # find all of the source directories # grep -v "/\.[^\.]" will exclude all .hidden folders and files -ALL_OF_CORE_SOURCE_PATHS=$(shell $(FIND) $(OF_LIBS_OPENFRAMEWORKS_PATH) -maxdepth 1 -mindepth 1 -type d | grep -v "/\.[^\.]" ) +ALL_OF_CORE_SOURCE_PATHS=$(shell $(FIND) $(OF_LIBS_OPENFRAMEWORKS_PATH) -maxdepth 1 -mindepth 1 -type d | grep -v "/\.[^\.]" | sed 's/ /\\ /g') # create a list of core source PATHS, filtering out any items that have a match in the CORE_EXCLUSIONS list -OF_CORE_SOURCE_PATHS=$(filter-out $(CORE_EXCLUSIONS),$(ALL_OF_CORE_SOURCE_PATHS)) +OF_CORE_SOURCE_PATHS=$(call esp-filter-out,$(CORE_EXCLUSIONS),$(ALL_OF_CORE_SOURCE_PATHS)) # create our core include paths from the source directory paths, # these have already been filtered and processed according to rules. @@ -315,14 +321,14 @@ OF_CORE_HEADER_PATHS = $(OF_LIBS_OPENFRAMEWORKS_PATH) $(OF_CORE_SOURCE_PATHS) # add folders or single files to exclude fromt he compiled lib # grep -v "/\.[^\.]" will exclude all .hidden folders and files -ALL_OF_CORE_THIRDPARTY_HEADER_PATHS = $(shell $(FIND) $(OF_LIBS_PATH)/*/include -type d | grep -v "/\.[^\.]") +ALL_OF_CORE_THIRDPARTY_HEADER_PATHS = $(shell $(FIND) $(OF_LIBS_PATH)/*/include -type d | grep -v "/\.[^\.]" | sed 's/ /\\ /g') # filter out all excluded files / folders that were defined above -OF_CORE_THIRDPARTY_HEADER_PATHS = $(filter-out $(CORE_EXCLUSIONS),$(ALL_OF_CORE_THIRDPARTY_HEADER_PATHS)) +OF_CORE_THIRDPARTY_HEADER_PATHS = $(call esp-filter-out,$(CORE_EXCLUSIONS),$(ALL_OF_CORE_THIRDPARTY_HEADER_PATHS)) # generate the list of core includes # 1. Add the header search paths defined by the platform config files. -OF_CORE_INCLUDES_CFLAGS = $(addprefix -I,$(PLATFORM_HEADER_SEARCH_PATHS)) +OF_CORE_INCLUDES_CFLAGS = $(call esp-addprefix,-I,$(PLATFORM_HEADER_SEARCH_PATHS)) # 2. Add all of the system library search paths defined by the platform config files. CORE_PKG_CONFIG_LIBRARIES = CORE_PKG_CONFIG_LIBRARIES += $(PLATFORM_PKG_CONFIG_LIBRARIES) @@ -353,9 +359,9 @@ $(error couldn't find $(FAILED_PKG) pkg-config package or it's dependencies, did endif # 3. Add all of the standard OF third party library headers (these have already been filtered above according to the platform config files) -OF_CORE_INCLUDES_CFLAGS += $(addprefix -I,$(OF_CORE_THIRDPARTY_HEADER_PATHS)) +OF_CORE_INCLUDES_CFLAGS += $(call esp-addprefix,-I,$(OF_CORE_THIRDPARTY_HEADER_PATHS)) # 4. Add all of the core OF headers(these have already been filtered above according to the platform config files) -OF_CORE_INCLUDES_CFLAGS += $(addprefix -I,$(OF_CORE_HEADER_PATHS)) +OF_CORE_INCLUDES_CFLAGS += $(call esp-addprefix,-I,$(OF_CORE_HEADER_PATHS)) ################################################################################ @@ -380,8 +386,8 @@ OF_CORE_BASE_CXXFLAGS=$(PLATFORM_CXXFLAGS) # search the directories in the source folders for all .cpp files # filter out all excluded files / folders that were defined above # grep -v "/\.[^\.]" will exclude all .hidden folders and files -OF_CORE_SOURCE_FILES=$(filter-out $(CORE_EXCLUSIONS),$(shell $(FIND) $(OF_CORE_SOURCE_PATHS) -name "*.cpp" -or -name "*.mm" -or -name "*.m" | grep -v "/\.[^\.]")) -OF_CORE_HEADER_FILES=$(filter-out $(CORE_EXCLUSIONS),$(shell $(FIND) $(OF_CORE_SOURCE_PATHS) -name "*.h" | grep -v "/\.[^\.]")) +OF_CORE_SOURCE_FILES=$(call esp-filter-out,$(CORE_EXCLUSIONS),$(shell $(FIND) $(OF_CORE_SOURCE_PATHS) -name "*.cpp" -or -name "*.mm" -or -name "*.m" | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) +OF_CORE_HEADER_FILES=$(call esp-filter-out,$(CORE_EXCLUSIONS),$(shell $(FIND) $(OF_CORE_SOURCE_PATHS) -name "*.h" | grep -v "/\.[^\.]" | sed 's/ /\\ /g')) From 2738897ee3dff3090bac69e6fa8c64c8c964a4d9 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Sun, 24 Jan 2021 22:02:46 +0100 Subject: [PATCH 07/15] core: make shared function available before use --- .../project/makefileCommon/compile.project.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk index 8f8a076a517..9f6f0d9cd18 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk @@ -2,6 +2,7 @@ # define the OF_SHARED_MAKEFILES location OF_SHARED_MAKEFILES_PATH=$(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon +include $(OF_SHARED_MAKEFILES_PATH)/config.shared.mk # if APPNAME is not defined, set it to the project dir name ifndef APPNAME @@ -10,7 +11,6 @@ endif #replace spaces by underscore in APPNAME to have 'no space targets' APPNAME:=$(call sp2_,$(APPNAME)) -include $(OF_SHARED_MAKEFILES_PATH)/config.shared.mk # Name TARGET ifeq ($(findstring Debug,$(MAKECMDGOALS)),Debug) From 14b0b93f51a6816156d620e49c6c266982b4879e Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Sun, 24 Jan 2021 22:39:39 +0100 Subject: [PATCH 08/15] CI: build with space in OF_ROOT --- .github/workflows/build-msys2.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-msys2.yml b/.github/workflows/build-msys2.yml index 97239a4faf7..544164c8f6b 100644 --- a/.github/workflows/build-msys2.yml +++ b/.github/workflows/build-msys2.yml @@ -20,6 +20,8 @@ jobs: shell: msys2 {0} steps: - uses: actions/checkout@v2 + with: + path: 'open Frameworks' - uses: msys2/setup-msys2@v2 with: update: true @@ -29,14 +31,20 @@ jobs: rsync wget - name: Install dependencies - run: ./scripts/ci/msys2/install.sh + run: + cd ${GITHUB_WORKSPACE}/open\ Frameworks + ./scripts/ci/msys2/install.sh env: MSYSTEM: ${{ matrix.mingw }} - name: Build - run: ./scripts/ci/msys2/build.sh + run: + cd ${GITHUB_WORKSPACE}/open\ Frameworks + ./scripts/ci/msys2/build.sh env: MSYSTEM: ${{ matrix.mingw }} - name: Run tests - run: ./scripts/ci/msys2/run_tests.sh + run: + cd ${GITHUB_WORKSPACE}/open\ Frameworks + ./scripts/ci/msys2/run_tests.sh env: MSYSTEM: ${{ matrix.mingw }} From d25a03ca995f6c72a8eebfbc7e6425de5f901a42 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Mon, 25 Jan 2021 06:39:14 +0100 Subject: [PATCH 09/15] ci: makescripts space friendly --- .github/workflows/build-msys2.yml | 6 +++--- scripts/ci/msys2/install.sh | 2 +- scripts/ci/msys2/run_tests.sh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-msys2.yml b/.github/workflows/build-msys2.yml index 544164c8f6b..dd808a5c789 100644 --- a/.github/workflows/build-msys2.yml +++ b/.github/workflows/build-msys2.yml @@ -32,19 +32,19 @@ jobs: wget - name: Install dependencies run: - cd ${GITHUB_WORKSPACE}/open\ Frameworks + cd "${GITHUB_WORKSPACE}/open Frameworks" ./scripts/ci/msys2/install.sh env: MSYSTEM: ${{ matrix.mingw }} - name: Build run: - cd ${GITHUB_WORKSPACE}/open\ Frameworks + cd "${GITHUB_WORKSPACE}/open Frameworks" ./scripts/ci/msys2/build.sh env: MSYSTEM: ${{ matrix.mingw }} - name: Run tests run: - cd ${GITHUB_WORKSPACE}/open\ Frameworks + cd "${GITHUB_WORKSPACE}/open Frameworks" ./scripts/ci/msys2/run_tests.sh env: MSYSTEM: ${{ matrix.mingw }} diff --git a/scripts/ci/msys2/install.sh b/scripts/ci/msys2/install.sh index 7b71a058b01..b0f00b84acd 100644 --- a/scripts/ci/msys2/install.sh +++ b/scripts/ci/msys2/install.sh @@ -1,6 +1,6 @@ #!/bin/bash set -ev #verbose; exit immediatly -ROOT=$(pwd -P) +ROOT="$(pwd -P)" $ROOT/scripts/msys2/install_dependencies.sh --noconfirm $ROOT/scripts/msys2/download_libs.sh --silent diff --git a/scripts/ci/msys2/run_tests.sh b/scripts/ci/msys2/run_tests.sh index 80868b000f3..ca2fa67b0ef 100644 --- a/scripts/ci/msys2/run_tests.sh +++ b/scripts/ci/msys2/run_tests.sh @@ -1,6 +1,6 @@ #!/bin/bash set -ev -ROOT=$(pwd -P) +ROOT="$(pwd -P)" source $ROOT/scripts/ci/ccache.sh echo "**** Running unit tests ****" From c3f2d42bef16572b9b69401c83881ef7a4fc5cf3 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Mon, 25 Jan 2021 06:43:30 +0100 Subject: [PATCH 10/15] ci: makescripts space friendly --- .github/workflows/build-msys2.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-msys2.yml b/.github/workflows/build-msys2.yml index dd808a5c789..bc3d45cb359 100644 --- a/.github/workflows/build-msys2.yml +++ b/.github/workflows/build-msys2.yml @@ -31,19 +31,19 @@ jobs: rsync wget - name: Install dependencies - run: + run: | cd "${GITHUB_WORKSPACE}/open Frameworks" ./scripts/ci/msys2/install.sh env: MSYSTEM: ${{ matrix.mingw }} - name: Build - run: + run: | cd "${GITHUB_WORKSPACE}/open Frameworks" ./scripts/ci/msys2/build.sh env: MSYSTEM: ${{ matrix.mingw }} - name: Run tests - run: + run: | cd "${GITHUB_WORKSPACE}/open Frameworks" ./scripts/ci/msys2/run_tests.sh env: From f058c397e58de9f9cc39eb05b302525a1bb25406 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Mon, 25 Jan 2021 07:09:05 +0100 Subject: [PATCH 11/15] ci: make scripts space friendly --- scripts/ci/msys2/build.sh | 8 ++++---- scripts/ci/msys2/install.sh | 6 +++--- scripts/ci/msys2/run_tests.sh | 6 +++--- scripts/templates/msys2/Makefile | 3 +++ 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/scripts/ci/msys2/build.sh b/scripts/ci/msys2/build.sh index 24ce0d97eb0..b164799197f 100644 --- a/scripts/ci/msys2/build.sh +++ b/scripts/ci/msys2/build.sh @@ -1,18 +1,18 @@ #!/bin/bash set -ev ROOT="$PWD" -source $ROOT/scripts/ci/ccache.sh +source "$ROOT/scripts/ci/ccache.sh" echo "**** Building OF core ****" -cd $ROOT/libs/openFrameworksCompiled/project +cd "$ROOT/libs/openFrameworksCompiled/project" make ${USE_CCACHE} -j4 Debug echo "**** Building emptyExample ****" -cd $ROOT/scripts/templates/msys2 +cd "$ROOT/scripts/templates/msys2" make ${USE_CCACHE} -j4 Debug echo "**** Building allAddonsExample ****" -cd $ROOT +cd "$ROOT" cp scripts/templates/msys2/Makefile examples/templates/allAddonsExample/ cp scripts/templates/msys2/config.make examples/templates/allAddonsExample/ cd examples/templates/allAddonsExample/ diff --git a/scripts/ci/msys2/install.sh b/scripts/ci/msys2/install.sh index b0f00b84acd..d2a2453880b 100644 --- a/scripts/ci/msys2/install.sh +++ b/scripts/ci/msys2/install.sh @@ -1,9 +1,9 @@ #!/bin/bash set -ev #verbose; exit immediatly -ROOT="$(pwd -P)" +ROOT=$(pwd -P) -$ROOT/scripts/msys2/install_dependencies.sh --noconfirm -$ROOT/scripts/msys2/download_libs.sh --silent +"$ROOT/scripts/msys2/install_dependencies.sh" --noconfirm +"$ROOT/scripts/msys2/download_libs.sh" --silent if [[ $MINGW_PACKAGE_PREFIX ]]; then pacman -S --noconfirm $MINGW_PACKAGE_PREFIX-ccache fi diff --git a/scripts/ci/msys2/run_tests.sh b/scripts/ci/msys2/run_tests.sh index ca2fa67b0ef..465ee16266e 100644 --- a/scripts/ci/msys2/run_tests.sh +++ b/scripts/ci/msys2/run_tests.sh @@ -1,10 +1,10 @@ #!/bin/bash set -ev ROOT="$(pwd -P)" -source $ROOT/scripts/ci/ccache.sh +source "$ROOT/scripts/ci/ccache.sh" echo "**** Running unit tests ****" -cd $ROOT/tests +cd "$ROOT/tests" for group in *; do if [ -d $group ]; then for test in $group/*; do @@ -21,7 +21,7 @@ for group in *; do if [[ $errorcode -ne 0 ]]; then exit $errorcode fi - cd $ROOT/tests + cd "$ROOT/tests" fi done fi diff --git a/scripts/templates/msys2/Makefile b/scripts/templates/msys2/Makefile index 177e17269cb..6ea64a313e8 100644 --- a/scripts/templates/msys2/Makefile +++ b/scripts/templates/msys2/Makefile @@ -9,5 +9,8 @@ ifndef OF_ROOT OF_ROOT=$(realpath ../../..) endif +# escape white space from OF location +OF_ROOT:=$(shell echo $(OF_ROOT) | sed 's/ /\\ /g') + # call the project makefile! include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk From 00387f482c9722a42e9b9c73e6bded4f6535bc7a Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Mon, 25 Jan 2021 08:27:32 +0100 Subject: [PATCH 12/15] ci: make scripts space friendly --- scripts/msys2/compileOF.sh | 2 +- scripts/msys2/download_libs.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/msys2/compileOF.sh b/scripts/msys2/compileOF.sh index 1cd931ee5eb..a5c8ee5d292 100644 --- a/scripts/msys2/compileOF.sh +++ b/scripts/msys2/compileOF.sh @@ -24,7 +24,7 @@ then exit 1 fi -cd ${SCRIPTPATH}/../../libs/openFrameworksCompiled/project +cd "${SCRIPTPATH}/../../libs/openFrameworksCompiled/project" if [ -v CI ]; then echo "Building in CI mode" diff --git a/scripts/msys2/download_libs.sh b/scripts/msys2/download_libs.sh index 9997900af4b..c47baeb996c 100755 --- a/scripts/msys2/download_libs.sh +++ b/scripts/msys2/download_libs.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -cd $SCRIPT_DIR +cd "$SCRIPT_DIR" ../dev/download_libs.sh -p msys2 $@ From 6211a801ad3c39797b323b8f929f76dd52c1006c Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Tue, 26 Jan 2021 22:25:26 +0100 Subject: [PATCH 13/15] ci: fix problem with addons --- .../project/makefileCommon/config.addons.mk | 5 +++-- .../project/makefileCommon/config.project.mk | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk index 4da5c1c7d89..e80ecbdc560 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk @@ -118,7 +118,8 @@ define parse_addon $(eval TMP_PROJECT_ADDONS_CFLAGS += $(ADDON_CFLAGS)) \ $(eval TMP_PROJECT_ADDONS_CFLAGS += $(ADDON_CPPFLAGS)) \ $(if $(strip $(ADDON_LIBS)), \ - $(foreach addon_lib, $(strip $(ADDON_LIBS)), \ + $(foreach addon_lib_c, $(call esp2c,$(strip $(ADDON_LIBS))), \ + $(eval addon_lib=$(call c2esp,$(addon_lib_c))) \ $(if $(wildcard $(addon)/$(addon_lib)), \ $(eval TMP_PROJECT_ADDONS_LIBS += $(addon)/$(addon_lib)) \ ) \ @@ -132,7 +133,7 @@ define parse_addon $(eval TMP_PROJECT_ADDONS_FRAMEWORKS += $(ADDON_FRAMEWORKS)) \ $(eval PROJECT_AFTER += $(ADDON_AFTER)) \ $(if $(strip $(ADDON_SOURCES)), \ - $(eval ADDON_SOURCES_FILTERED = $(call filter-out,$(call esp-addprefix,$(addon)/,$(ADDON_SOURCES_EXCLUDE)),$(ADDON_SOURCES))) \ + $(eval ADDON_SOURCES_FILTERED = $(call esp-filter-out,$(call esp-addprefix,$(addon)/,$(ADDON_SOURCES_EXCLUDE)),$(ADDON_SOURCES))) \ $(foreach addon_src_c, $(strip $(call esp2c,$(ADDON_SOURCES_FILTERED))), \ $(eval addon_src= $(call c2esp,$(addon_src_c))) \ $(if $(call esp-filter,$(addon)%, $(addon_src)), \ diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk index e4be3441f2e..94ae9246888 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.project.mk @@ -214,7 +214,7 @@ ifdef B_PROCESS_ADDONS PROJECT_ADDON_PATHS = $(addsuffix /,$(call remove-dupes-func,$(ADDON_PATHS:%/=%))) endif endif -$(info Line221) + # generate the list of core libraries # 1. Add all of the third party static libs defined by the platform config files. From 973c753c4e91bea0d7098cc9cdcebe573a2ed3d3 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Wed, 27 Jan 2021 22:14:25 +0100 Subject: [PATCH 14/15] ci: manage space consistenly in compiler_flags --- .../project/makefileCommon/compile.core.mk | 2 +- .../project/makefileCommon/compile.project.mk | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk b/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk index 50640563106..5deda4fbf71 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/compile.core.mk @@ -230,7 +230,7 @@ all: $(OF_CORE_OBJ_OUTPUT_PATH).compiler_flags: force @mkdir -p $(OF_CORE_OBJ_OUTPUT_PATH) - @if [ "$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))" != "$(strip $$(cat "$@" 2>/dev/null))" ]; then echo "Compiler flags have changed, recompiling"; echo "Old: $(strip $$(cat "$@" 2>/dev/null))"; echo "New $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))"; echo $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))> "$@"; fi + @if [ "$(call esp2c,$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS)))" != "$(strip $$(cat "$@" 2>/dev/null))" ]; then echo "Compiler flags have changed, recompiling"; echo "Old: $(strip $$(cat "$@" 2>/dev/null))"; echo "New: $(call esp2c,$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS)))"; echo $(call esp2c,$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS)))> "$@"; fi #This rule does the compilation diff --git a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk index 9f6f0d9cd18..a8c0731ccde 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk @@ -204,12 +204,12 @@ endif $(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags: force @mkdir -p $(OF_PROJECT_OBJ_OUTPUT_PATH) - @if [ "$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) $(OPTIMIZATION_LDFLAGS) $(LDFLAGS))" != "$(strip $$(cat "$@" 2>/dev/null))" ]; then echo $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) $(OPTIMIZATION_LDFLAGS) $(LDFLAGS)) > "$@"; fi + @if [ "$(call esp2c, $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) $(OPTIMIZATION_LDFLAGS) $(LDFLAGS)))" != "$(strip $$(cat "$@" 2>/dev/null))" ]; then echo $(call esp2c,$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS) $(PROJECT_INCLUDE_CFLAGS) $(OPTIMIZATION_LDFLAGS) $(LDFLAGS))) > "$@"; fi $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH).compiler_flags: force @mkdir -p $(OF_PROJECT_OBJ_OUTPUT_PATH) @mkdir -p $(OF_ADDONS_PATH)/$(OF_PROJECT_OBJ_OUTPUT_PATH) - @if [ "$(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))" != "$(strip $$(cat "$@" 2>/dev/null))" ]; then echo $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS)) > "$@"; fi + @if [ "$(call esp2c, $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS)))" != "$(strip $$(cat "$@" 2>/dev/null))" ]; then echo $(call esp2c, $(strip $(OPTIMIZATION_CFLAGS) $(CFLAGS) $(CXXFLAGS))) > "$@"; fi # Rules to compile the project sources #$(OBJS): $(SOURCES) From 015fc0505bb70d7cc827913a639c2a87c7384b62 Mon Sep 17 00:00:00 2001 From: Olivier XILLO Date: Sat, 3 Apr 2021 06:19:11 +0200 Subject: [PATCH 15/15] fix for realpath not available on OSX --- .../project/makefileCommon/config.shared.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk index b1b21be9738..8d26f5a09f4 100644 --- a/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk +++ b/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk @@ -38,8 +38,8 @@ esp-patsubst = $(call c2esp,$(patsubst $(call esp2c,$1),$(call esp2c,$2),$(call # apply firstword command on an escaped space list esp-firstword = $(call c2esp,$(firstword $(call esp2c,$1))) -# apply realpath command on an escaped space list -esp-realpath = $(shell realpath $1 | sed 's/ /\\ /g') +# apply realpath command on an escaped space list +esp-realpath = $(shell cd $1 && pwd -P | sed 's/ /\\ /g') # from an escaped space list of files/directories, return a list of files that exist esp-exist = $(foreach f,$(call esp2c,$1),$(if $(wildcard $(call c2esp,$f)),$(call c2esp,$f)))