1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-01 13:50:36 +00:00

Fix compiling source files with single quotes in name

Using single quotes in a file name wasn't working because the Makefile
was using single quotes itself to quote the filename when providing it
to the compiler. The Makefile was switched to use double quotes instead,
which work just as well but are allowed to contain single quotes inside
of them.

Since double quotes are a legal character to have in a file name on
Linux and Mac OS, I added extra logic to start escaping double quote
characters.

I added a test to verify that we can compile source files with single
quotes in the name. I could not add a test for double quotes since such
files cannot exist on Windows and thsu cannot easily be added to the
repository.
This commit is contained in:
Matthew Kilgore 2022-09-05 18:58:21 -04:00 committed by Matt Kilgore
parent ee00ce6a7f
commit cebcb11646
4 changed files with 9 additions and 3 deletions

View file

@ -386,11 +386,11 @@ clean: $(CLEAN_DEP_LIST)
$(RM) $(call FIXPATH,$(CLEAN_LIST))
$(EXE): $(EXE_OBJS) $(EXE_LIBS)
$(CXX) $(CXXFLAGS) $(EXE_OBJS) -o '$@' $(EXE_LIBS) $(CXXLIBS)
$(CXX) $(CXXFLAGS) $(EXE_OBJS) -o "$@" $(EXE_LIBS) $(CXXLIBS)
ifneq ($(filter-out osx,$(OS)),)
ifneq ($(STRIP_SYMBOLS),n)
$(OBJCOPY) --only-keep-debug '$@' '$(PATH_INTERNAL_TEMP)/$(notdir $@).sym'
$(OBJCOPY) --strip-unneeded '$@'
$(OBJCOPY) --only-keep-debug "$@" "$(PATH_INTERNAL_TEMP)/$(notdir $@).sym"
$(OBJCOPY) --strip-unneeded "$@"
endif
endif

View file

@ -12525,6 +12525,7 @@ CxxLibsExtra$ = CxxLibsExtra$ + " " + mylib$ + " " + mylibopt$
' Make and the shell don't like certain characters in the file name, so we
' escape them to get them to handle them properly
escapedExe$ = StrReplace$(path.exe$ + file$ + extension$, " ", "\ ")
escapedExe$ = StrReplace$(escapedExe$, CHR$(34), "\" + CHR$(34))
escapedExe$ = StrReplace$(escapedExe$, "$", "$$")
makeline$ = make$ + makedeps$ + " EXE=" + AddQuotes$(escapedExe$)

View file

@ -0,0 +1,4 @@
$CONSOLE:ONLY
Print "Hello, World!";
SYSTEM

View file

@ -0,0 +1 @@
Hello, World!