Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tesonep/pharoapplicationgenerator
https://github.com/tesonep/pharoapplicationgenerator
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/tesonep/pharoapplicationgenerator
- Owner: tesonep
- License: mit
- Created: 2024-03-26T09:19:39.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-10-11T12:59:22.000Z (2 months ago)
- Last Synced: 2024-10-31T07:05:44.193Z (about 2 months ago)
- Language: Smalltalk
- Size: 274 KB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Pharo Application Generator
This project provides a tool to generate the scripts and metadata for packaging application.
In the current state, it works for Windows and MacOS.
For the supported platforms it packages the VM, image and resources generating an executable file.
Then, from this executable file it generates an installable package that can be distributed to the final users.It works in the following way:
1. Load your application in Pharo.
2. Load this project in the same Pharo image.
3. Generate scripts and project files required for the target platform.
4. Execute the build scripts to package the application and generate the installers# Consideration about the application
This tool it is intended to package any Pharo application.
However the application should have an entry point exposed as a CommandLineHandler.
The command line handler will start the application and if required open the world.
Applications developed with Bloc, Spec-GTK or SDL can open the required windows without need of having a World window opened.# Error Handling
This project provides a way of catching and handling all errors and exceptions produced during the application.
An error handler can be registered to perform any operation when an error occurs.
You can check the examples for more detail.This project provides two examples:
- A null error handler that does nothing, just killing the application (AppGeneratorNullErrorHandler)
- An error handler that shows a SDL message box with the error description (AppGeneratorSDLMessageErrorHandler)These examples, are basic and can be extended to include specific behavior of the application like: error logging, exporting the exception to fuel, notification to a central server or system logging.
# Examples
In this project there is a simple example in the class AppGeneratorExample.
For a deeper example for a whole application, you can check the usage in the Takuzu game (https://github.com/tesonep/Takuzu)# Installing
```smalltalk
Metacello new
baseline: 'ApplicationGenerator';
repository: 'github://tesonep/PharoApplicationGenerator/src';
load
```# Dependencies
## Windows
The whole process is implemented using CMake and Cygwin. As it compiles a new executable some dependencies are needed:
- A working Pharo
- CMake (at least version 2.8.4)
- CLang
- Binutils (make and friends)
- wget
- unzip## MacOS
The process uses some external tools, you should have installed:
- A working Pharo
- XCode
- Brew
- ImageMagick from Brew
- create-dmg from Brew