Age | Commit message (Collapse) | Author |
|
Make this more like a template where users will have to fill their own
information in these fields.
|
|
Add the basic necessities for a document-based application. This is what
I came up with on 2023-09-10. The `DocumentWindowController` was just an
initial idea and doesn't do anything: we create the required window
controller in `Document`.
The `CFBundleDocumentTypes` entry enables us to interact with text
files.
This confirms that the "Open Recent" menu does get added automatically
below the "Open" menu.
|
|
* Remove some old commented targets
* Move the space-specific code to a single place
|
|
It technically works, but with a lot of cruft:
$ make app
find: build/Nospace.app: No such file or directory
Makefile:52: warning: overriding commands for target `build/Nospace.app'
Makefile:40: warning: ignoring old commands for target `build/Nospace.app'
Makefile:62: warning: overriding commands for target `build/Nospace.app/Contents/MacOS/Nospace'
Makefile:44: warning: ignoring old commands for target `build/Nospace.app/Contents/MacOS/Nospace'
mkdir -p build/Nospace.app
mkdir -p build/Nospace.app/Contents
mkdir -p build/Nospace.app/Contents/MacOS
make: Circular build/Nospace.app/Contents/MacOS/Nospace <- build/Nospace.app/Contents/MacOS/Nospace dependency dropped.
cc \
-framework Cocoa \
-o "build/Nospace.app/Contents/MacOS/Nospace" \
src/MainMenu.o src/main.o src/AppDelegate.o
cp Info.plist "build/Nospace.app/Contents/Info.plist"
mkdir -p build/Nospace.app/Contents/Resources
cp -R Internationalization/en.lproj "build/Nospace.app/Contents/Resources/en.lproj"
cp -R Internationalization/fr.lproj "build/Nospace.app/Contents/Resources/fr.lproj"
I'd like to make it work without the warnings, or at least without the
circular dependency.
|
|
This is why I was getting the "The application cannot be opened because
its executable is missing." error.
Now the application opens correctly from the .app bundle.
However, this revealed another problem with the make recipes: The
Info.plist file isn't copied from the space-substituted bundle directory
to the final .app directory.
|
|
I'm trying to set up the Make targets to build a .app bundle, but I'm
having trouble handling file names with spaces.
I sort of managed to do it using the strategy articulated by andrewdotn
(https://stackoverflow.com/users/14558/andrewdotn) with "${@}" in this
Stack Overflow answer:
https://stackoverflow.com/questions/14639906/can-gnu-make-handle-spaces/14640047#14640047
However, it doesn't seem to be working in the `subst` or `patsubst`
calls using "%" for the localisation files. I get the error:
make: *** No rule to make target `en.lproj', needed by `app'. Stop.
The error looks like it's saying that the
`build/$(APP_NAME).app/Contents/Resources/%.lproj` rule couldn't be
found, even though it is declared.
It looks like I'm going to have to explore other options to handle file
names, or at least application names, with spaces.
I copied the Info.plist file from Mass-menu and updated some fields to
work with this project. I also copied and modified the Make rules from
Mass-menu, but that project doesn't need to handle spaces in file names.
|