openframeworks / projectGenerator

repo for centralizing work on a tool to generate OF projects
83 stars 76 forks source link

projectGenerator ideas #291

Open dimitre opened 2 years ago

dimitre commented 2 years ago

In the last days I took some time to write a fork of xcodeProj.cpp to use a different method than pugi::xml

Reading carefully the actual code I've noticed some things that can be improved.

Done

2bbb commented 2 years ago

I think If PG get feature what PG doesn't overwrite Info.plist if it exists, it's so great when develop iOS. (e.g. for usage description)

dimitre commented 2 years ago

@2bbb it can be done like this:

        if (!ofFile::doesFileExist(ofFilePath::join(projectDir, "openFrameworks-Info.plist"))) {

but maybe as an optional parameter of projectGenerator because sometimes info.plist get updated with most modern settings and it is desirable to be overwritten. it would be great to be able to have custom plist settings per project that got appended in info.plist when project is generated :)

dimitre commented 2 years ago

ProjectGenerator template has Release Debug and AppStore xcschemes files, but only make copies of the Debug and Release. Should we copy AppStore too or it is a leftover?

void xcodeProject::saveScheme()
dimitre commented 2 years ago

@2bbb I like a lot the idea of keeping some info untouched by project generator. In fact it would be GREAT to have a recipe to build the project, something similar to platformio which have a separate platformio.ini to serve as a recipe to build everything.

something like this sketch:

; OpenFrameworks Project Configuration File
;
; Please visit documentation for the other options and examples

[software]
name = EmptyExample
version = 0.76

[signing]
bundleidentifier = EmptyExample
team = 

[env:*]
platforms = ios xcode make linux
template = gl4.0

; modular building in the future
libs = cairo boost fmod freeimage
; libs = Cairo Audio 

addons = 
    ofxNetwork
    ofxAssimpModelLoader
    https://github.com/hiroyuki/ofxArtnet@e51e9bf8c42ee67f5eab04d123a96cc641c905ea
    https://github.com/danomatika/ofxMidi
    https://github.com/leadedge/ofxNDI
2bbb commented 1 year ago

sometime I put addons under directory related to project like local_addons on apps/PROJECT/local_addons or apps/myApps/PROJECT/local_addons. then, addon can't get dependencies.

can we make addon search pathes or similar concept? e.g. ADDON_SEARCH_PATHES = 'addons' '../local_addons' './local_addons'

dimitre commented 1 year ago

It is super useful. for team work or project archival. I think PG is so outdated that lots of things needs a rewrite.

dimitre commented 9 months ago

I've made this tool a while ago to get reproduceable projectGenerator settings https://github.com/dimitre/ofbuild

it uses a file of.yml in project folder to act as a guide usage example:

name: Empty

ofpath: ../../..

addons:
- ofxTools
- ofxMicroUI
- ofxScenes
- ofxSvg
# - ofxAssimpModelLoader
# - ofxMidi
# - ofxMicroUIMidiController
- ofxVoronoi
- ofxSyphon

platforms: ["osx", "vscode"]
# templates: ["vscode"]

sources:
# - /Users/d/Desktop/WERK2023/OF/OFLocal/src
# - src2