This is in attempt to make compile times better, as the old json library
was quite slow to compile due to many template instantiations and such a
large header.
macOS tests have shown build times from 610s to ~390s, about a 1.5x
speedup
Co-authored-by: camila314 <47485054+camila314@users.noreply.github.com>
this removes submodules and external libraries in the code in favor of
importing them as CPM packages. CPM_SOURCE_CACHE is recommended as
codegen has to readd two of the same dependencies
- rename LayerBG.hpp to General.cpp
- add addListBorders UI function for adding comment borders to a list
- change VersionInfo parsing to use streams
- remove VersionInfo::validate and instead just have VersionInfo::parse
- remove scnlib
- rewrote Loader to have a public loading API
- moved logging away from Loader
- moved texture path handling away from Loader into CCFileUtils, added new functions there for that
- bumped version to v0.7.0
- moved ModInfo to its own header
- added early loading support through mod.json instead of loader stuff
- wrote a custom Unzip implementation (essentially same as ZipUtils except with a much more simple and clean API)
- renamed `src/load` to `src/loader`
- other stuff i prolly forgor
- move all platform sources to one central folder under src/platform/name
- don't add obj-c sources on windows or platform files from other platforms on all platforms
- loader checks if resources are correct at startup, if not, downloads them and replaces
- add sha256 to hash
- change hash to use paths instead of strings
- cmake rework; GeodeFile.cmake now checks CLI version
- add optional `DONT_INSTALL` argument to `create_geode_file`
- test mods are now not installed by default
- add package_geode_resources_now command for packaging resources at configure time and creating a header with their calculated hashes
supports user objects again through proxies + string IDs for nodes +
fix nightly folder in cmake + fix codegen not hooking cocos2d funcs +
add every missing virtual to GeometryDash.bro + tons of other addresses
to Popup and move setup to be last in init + add
GEODE_PLATFORM_SHORT_IDENTIFIER macro for the platform's identifier in
GitHub release zips + add GEODE_VERSION to cmake + move unzipTo from
Index to be an exported util in file namespace + add mod resources
directories in accordance with new CLI