- [disputable] All logic and environment variable set up should happen in CMakeLists.txt file, not in build.cmd or build_krita.sh
Right now the variable configuration is spread around build.cmd and specific external projects, which wrap all the calls into cmake -E env manually. Theoretically, it would be more manageable if we did everything in one place.
NOTE: It seems like this approach will not work, because these environment variables are not preserved on build/test stages: link to the manual
- CMake can auto-generate an .env file which the developer could use to load the environment into his/her shell
- Our CMake files should correctly define the dependencies between the external projects. Basically, make all should build all the deps.
Right now the logic of dependencies order is split into per-architecture build scripts, which is a bit hard to maintain/use
- There should be a way to disable all the deps between the external projects with one switch. So that the developer could rebuild only one dep locally.
- We should build pkgconf forcefully on Windows and make sure that the system-provided one (e.g. from Strawberry Perl) is never used.
- Ideally the sequencing of the projects should be done using the KDE scripts for the deps (https://invent.kde.org/sysadmin/ci-utilities/-/blob/master/seed-package-registry.py)
- All paths that we pass to CMake should be automatically converted into cmake-style paths, since our apple build macro cannot handle them otherwise