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
- mod dependencies reworked to be much less bad and actually good now
- mod dependencies finally check the version
- support for dynamic versions for dependencies (<=vX.X.X, ==vX.X.X, >=vX.X.X)
- index is now ready for implementing mod installation, then we're done with this massive sausage package
- events now follow a public const member pattern instead of getters
- more file utils
- ModInfoLayer split into LocalModInfoPopup and IndexItemInfoPopup to reduce uses of ugly variant
- same with ModCell
- lots of restructuring related to UI anyway
- Index also got tons of redesigning
- much more i've forgotten
- this commit compiles, surprisingly enough, but it's not usable as installing mods through index was removed
- remove duplicate LevelSearchLayer ids
- add CCArray::firstObject and CCArray::removeFirstObject
- add minizip zip headers and sources (going to add file::Zip class soon)
- redesign Notifications to be simpler
- rework Result to not have dual implementations
- Result::expect now has one default named argument for formatting the error in
- 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
- replies are now handled by returning from the listener callback
- can now handle multiple IPC connections at once
- make Loader::s_unloading actually thread-safe
- add preliminary IPC stuff
- preliminary IPC implementation on Windows (will evolve still)
- more ids
- move InternalLoader platform definitions to their own files
- fix ranges::map not resizing the output
- add Loader::waitForModsToBeLoaded to ensure mods are loaded at startup before loading screen
- add Mod::saveData and Mod::loadData (these have to reworked wholly in v1.0.0 to be more reasonable)
- add ranges::indexOf
- fix ranges::move
- add CCFileUtils::removeAllPaths on mac
- make sure custom resources are loaded before GD
* add event-based alternatives to the exported mod entry functions
* add $on macro for listening to those alternatives
* add automatically saved values API in the same vain as the settings API to mod
* add ranges::find and ranges::move