- create_geode_file now redirects to a new function called setup_geode_mod
- setup_geode_mod auto-links loader
- setup_geode_mod invokes CLI (if v1.4.0+) to automatically check your dependencies and install them + link their headers and libs to your project
- fix Result::expect not working on non-copiable types
- add in-memory functions for file::Zip and file::Unzip
- ComparableVersionInfo now always returns false if major versions dont match
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
- 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
- show crashlog on crash when GEODE_DEBUG is enabled
- fix mod resources not being loaded when installed from index + more index reworking, it's actually pretty neat now
- fix ModInfoLayer crashing when leaving it while downloading
- fix other index crashes
- fix queueInGDThread sometimes leaving out functions
- add new file utils and deprecate ones that don't use ghc::filesystem::path
- index mods now show their about.md files
- general cleanup and goodcodeification
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