diff --git a/Project.xml b/Project.xml
index 0a8d31b86..c58153575 100644
--- a/Project.xml
+++ b/Project.xml
@@ -113,7 +113,6 @@
-
diff --git a/hmm.json b/hmm.json
index ca9654291..26cb0d0b4 100644
--- a/hmm.json
+++ b/hmm.json
@@ -64,11 +64,6 @@
"ref": "e9f880522e27134b29df4067f82df7d7e5237b70",
"url": "https://github.com/haxeui/haxeui-flixel"
},
- {
- "name": "hmm",
- "type": "haxelib",
- "version": "3.1.0"
- },
{
"name": "hscript",
"type": "haxelib",
diff --git a/source/funkin/util/macro/HaxelibVersions.hx b/source/funkin/util/macro/HaxelibVersions.hx
index 1a4699bba..08ec3a7c4 100644
--- a/source/funkin/util/macro/HaxelibVersions.hx
+++ b/source/funkin/util/macro/HaxelibVersions.hx
@@ -7,7 +7,7 @@ class HaxelibVersions
public static macro function getLibraryVersions():haxe.macro.Expr.ExprOf>
{
#if !display
- return macro $v{formatHmmData(readHmmData())};
+ return macro $v{formatHmmData()};
#else
// `#if display` is used for code completion. In this case returning an
// empty string is good enough; We don't want to call functions on every hint.
@@ -17,44 +17,33 @@ class HaxelibVersions
}
#if (macro)
- static function readHmmData():hmm.HmmConfig
- {
- return hmm.HmmConfig.HmmConfigs.readHmmJsonOrThrow();
- }
-
- static function formatHmmData(hmmData:hmm.HmmConfig):Array
+ @SuppressWarnings('checkstyle:Dynamic')
+ static function formatHmmData():Array
{
var result:Array = [];
- for (library in hmmData.dependencies)
+ var hmmData:Dynamic = haxe.Json.parse(sys.io.File.getContent('hmm.json'));
+ var dependencies:Array = cast hmmData.dependencies;
+ for (library in dependencies)
{
- switch (library)
+ switch (library.type)
{
- case Haxelib(name, version):
- result.push('${name} haxelib(${o(version)})');
- case Git(name, url, ref, dir):
- result.push('${name} git(${url}/${o(dir, '')}:${o(ref)})');
- case Mercurial(name, url, ref, dir):
- result.push('${name} mercurial(${url}/${o(dir, '')}:${o(ref)})');
- case Dev(name, path):
- result.push('${name} dev(${path})');
+ case 'haxelib':
+ result.push('${library.name} haxelib(${library.version ?? 'None'})');
+ case 'git':
+ result.push('${library.name} git(${library.url}/${library.dir ?? ''}:${library.ref ?? 'None'}');
+ case 'mercurial':
+ result.push('${library.name} mercurial(${library.url}/${library.dir ?? ''}:${library.ref ?? 'None'})');
+ case 'dev':
+ result.push('${library.name} dev(${library.path})');
+ case ty:
+ throw 'Unhandled hmm library type ${ty}';
}
}
return result;
}
- static function o(option:haxe.ds.Option, defaultValue:String = 'None'):String
- {
- switch (option)
- {
- case Some(value):
- return value;
- case None:
- return defaultValue;
- }
- }
-
static function readLibraryCurrentVersion(libraryName:String):String
{
var path = Path.join([Path.addTrailingSlash(Sys.getCwd()), '.haxelib', libraryName, '.current']);