\'95 Adding sources and other files and folders to the project.\
\
Always use \ul Relative to Project\ulnone reference type.\
\
Cmake files can't be used to dynamically generate source lists in the Xcode targets. Any additions and deletions of source files in the cmake configuration must be manually mirrored in the Xcode project.\
\cf0 \ul \ulc0 Configuration Files\ulnone - Xcode config files. dependency config, system target, core moc lists set here.\
\ul Sources\ulnone - standard Qgis sources\
\ul generated\ulnone - intermediate sources generated by bison, flex, moc, uic, rcc in script phases. Subfolders will start empty of files, and contents appear red in the project until generated.\
There is no way to conditionaly compile whole targets, or individual sources. So fo now, all conditional sources are required. Conditional targets must be built manually.\
Another possibility is to indirectly add sources in a script phase as generated - copy the true source if condition true, dump dummy empty source if false. The target always compiles the generated source. Wouldn't work for whole targets, as bogus binary is generated.\
Targets can be destructive (most are) - for example, everything is built directly into the application bundle, which is really the domain of the Qgis.app target. This simplifies packaging for optional plugins. This means that if just the app target is cleaned, all link and copy phases of all other targets must be redone.\
\
\
The app target must be built last. This is so that the Qt bundling phase install_name_tool step will get all built libraries and plugins. Also, the bundled and stripped-of-headers Qt frameworks would interfere with building all other targets.\
\
\
libqgispython must be in MacOS/lib. Qgis attempts to load it dynamically, with a hardwired path.\