pollymc/libraries
flow 3ec511010f
fix: Build iconfix as static library
On CI we build using the bundled Quazip, and automatically set
-DBUILD_STATIC_LIBS to true, so it build iconfix statically as well.

However, since we recently added support for using the system quazip,
this flag is not set anymore, and PolyMC fails to run because iconfix
neither is statically linked, nor it creates a .so file for dynamic
linking.

Since most other libs are built statically, we should make this one
static as well. Maybe we should consider allowing for dynamic linking of
libs now that quazip is not much of an issue anymore. :^)
2022-04-21 09:34:44 -03:00
..
classparser refactor: simpler includes for quazip 2022-01-31 21:40:59 +01:00
hoedown NOISSUE tabs -> spaces 2018-07-15 14:51:05 +02:00
iconfix fix: Build iconfix as static library 2022-04-21 09:34:44 -03:00
javacheck Enable LTO/IPO on release builds 2022-03-22 21:04:35 +01:00
katabasis Enable LTO/IPO on release builds 2022-03-22 21:04:35 +01:00
launcher Enable LTO/IPO on release builds 2022-03-22 21:04:35 +01:00
libnbtplusplus@2203af7eeb libs: update bundled submodules 2022-04-16 10:23:15 -03:00
LocalPeer Enable LTO/IPO on release builds 2022-03-22 21:04:35 +01:00
optional-bare Enable LTO/IPO on release builds 2022-03-22 21:04:35 +01:00
quazip@6117161af0 libs: update bundled submodules 2022-04-16 10:23:15 -03:00
rainbow Enable LTO/IPO on release builds 2022-03-22 21:04:35 +01:00
systeminfo Changes required to support FreeBSD 2021-12-12 11:39:36 +00:00
tomlc99 switch to new toml library 2021-04-17 09:46:11 -07:00
xz-embedded Enable LTO/IPO on release builds 2022-03-22 21:04:35 +01:00
README.md Completely remove Google Analytics library 2021-12-29 10:37:09 -05:00

Third-party libraries

This folder has third-party or otherwise external libraries needed for other parts to work.

classparser

A simplistic parser for Java class files.

This library has served as a base for some (much more full-featured and advanced) work under NDA for AVG. It, however, should NOT be confused with that work.

Copyright belongs to Petr Mrázek, unless explicitly stated otherwise in the source files. Available under the Apache 2.0 license.

hoedown

Hoedown is a revived fork of Sundown, the Markdown parser based on the original code of the Upskirt library by Natacha Porté.

See github repo.

iconfix

This was originally part of the razor-qt project and the Qt toolkit, respecitvely. Its sole purpose is to reimplement Qt's icon loading logic to prevent it from using any platform plugins that could break icon loading.

Licensed under LGPL 2.1

javacheck

Simple Java tool that prints the JVM details - version and platform bitness.

Do what you want with it. It is so trivial that noone cares.

Katabasis

Oauth2 library customized for Microsoft authentication.

This is a fork of the O2 library.

MIT licensed.

launcher

Java launcher part for Minecraft.

It:

  • Starts a process
  • Waits for a launch script on stdin
  • Consumes the launch script you feed it
  • Proceeds with launch when it gets the launcher command

This means the process is essentially idle until the final command is sent. You can, for example, attach a profiler before you send it.

A legacy and onesix launchers are available.

  • legacy is intended for use with Minecraft versions < 1.6 and is deprecated.
  • onesix can handle launching any Minecraft version, at the cost of some extra features legacy enables (custom window icon and title).

Example (some parts have been censored):

mod legacyjavafixer-1.0
mainClass net.minecraft.launchwrapper.Launch
param --username
param CENSORED
param --version
param MultiMC5
param --gameDir
param /home/peterix/minecraft/FTB/17ForgeTest/minecraft
param --assetsDir
param /home/peterix/minecraft/mmc5/assets
param --assetIndex
param 1.7.10
param --uuid
param CENSORED
param --accessToken
param CENSORED
param --userProperties
param {}
param --userType
param mojang
param --tweakClass
param cpw.mods.fml.common.launcher.FMLTweaker
windowTitle MultiMC: 172ForgeTest
windowParams 854x480
userName CENSORED
sessionId token:CENSORED:CENSORED
cp /home/peterix/minecraft/FTB/libraries/com/mojang/realms/1.3.5/realms-1.3.5.jar
cp /home/peterix/minecraft/FTB/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar
cp /home/peterix/minecraft/FTB/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar
cp /home/peterix/minecraft/FTB/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar
cp /home/peterix/minecraft/FTB/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar
cp /home/peterix/minecraft/FTB/libraries/java3d/vecmath/1.3.1/vecmath-1.3.1.jar
cp /home/peterix/minecraft/FTB/libraries/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar
cp /home/peterix/minecraft/FTB/libraries/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar
cp /home/peterix/minecraft/FTB/libraries/net/sf/jopt-simple/jopt-simple/4.5/jopt-simple-4.5.jar
cp /home/peterix/minecraft/FTB/libraries/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar
cp /home/peterix/minecraft/FTB/libraries/com/paulscode/codecwav/20101023/codecwav-20101023.jar
cp /home/peterix/minecraft/FTB/libraries/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar
cp /home/peterix/minecraft/FTB/libraries/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar
cp /home/peterix/minecraft/FTB/libraries/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar
cp /home/peterix/minecraft/FTB/libraries/io/netty/netty-all/4.0.10.Final/netty-all-4.0.10.Final.jar
cp /home/peterix/minecraft/FTB/libraries/com/google/guava/guava/16.0/guava-16.0.jar
cp /home/peterix/minecraft/FTB/libraries/org/apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1.jar
cp /home/peterix/minecraft/FTB/libraries/commons-io/commons-io/2.4/commons-io-2.4.jar
cp /home/peterix/minecraft/FTB/libraries/commons-codec/commons-codec/1.9/commons-codec-1.9.jar
cp /home/peterix/minecraft/FTB/libraries/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar
cp /home/peterix/minecraft/FTB/libraries/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar
cp /home/peterix/minecraft/FTB/libraries/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar
cp /home/peterix/minecraft/FTB/libraries/com/mojang/authlib/1.5.16/authlib-1.5.16.jar
cp /home/peterix/minecraft/FTB/libraries/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar
cp /home/peterix/minecraft/FTB/libraries/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar
cp /home/peterix/minecraft/FTB/libraries/org/lwjgl/lwjgl/lwjgl/2.9.1/lwjgl-2.9.1.jar
cp /home/peterix/minecraft/FTB/libraries/org/lwjgl/lwjgl/lwjgl_util/2.9.1/lwjgl_util-2.9.1.jar
cp /home/peterix/minecraft/FTB/libraries/tv/twitch/twitch/5.16/twitch-5.16.jar
cp /home/peterix/minecraft/FTB/libraries/net/minecraftforge/forge/1.7.10-10.13.0.1178/forge-1.7.10-10.13.0.1178.jar
cp /home/peterix/minecraft/FTB/libraries/net/minecraft/launchwrapper/1.9/launchwrapper-1.9.jar
cp /home/peterix/minecraft/FTB/libraries/org/ow2/asm/asm-all/4.1/asm-all-4.1.jar
cp /home/peterix/minecraft/FTB/libraries/com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.jar
cp /home/peterix/minecraft/FTB/libraries/com/typesafe/config/1.2.1/config-1.2.1.jar
cp /home/peterix/minecraft/FTB/libraries/org/scala-lang/scala-actors-migration_2.11/1.1.0/scala-actors-migration_2.11-1.1.0.jar
cp /home/peterix/minecraft/FTB/libraries/org/scala-lang/scala-compiler/2.11.1/scala-compiler-2.11.1.jar
cp /home/peterix/minecraft/FTB/libraries/org/scala-lang/plugins/scala-continuations-library_2.11/1.0.2/scala-continuations-library_2.11-1.0.2.jar
cp /home/peterix/minecraft/FTB/libraries/org/scala-lang/plugins/scala-continuations-plugin_2.11.1/1.0.2/scala-continuations-plugin_2.11.1-1.0.2.jar
cp /home/peterix/minecraft/FTB/libraries/org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar
cp /home/peterix/minecraft/FTB/libraries/org/scala-lang/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar
cp /home/peterix/minecraft/FTB/libraries/org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.jar
cp /home/peterix/minecraft/FTB/libraries/org/scala-lang/scala-swing_2.11/1.0.1/scala-swing_2.11-1.0.1.jar
cp /home/peterix/minecraft/FTB/libraries/org/scala-lang/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar
cp /home/peterix/minecraft/FTB/libraries/lzma/lzma/0.0.1/lzma-0.0.1.jar
ext /home/peterix/minecraft/FTB/libraries/org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-linux.jar
ext /home/peterix/minecraft/FTB/libraries/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar
natives /home/peterix/minecraft/FTB/17ForgeTest/natives
cp /home/peterix/minecraft/FTB/versions/1.7.10/1.7.10.jar
launcher onesix

Available under the Apache 2.0 license.

libnbtplusplus

libnbt++ is a free C++ library for Minecraft's file format Named Binary Tag (NBT). It can read and write compressed and uncompressed NBT files and provides a code interface for working with NBT data.

See github repo.

Available either under LGPL version 3 or later.

LocalPeer

Library for making only one instance of the application run at all times.

BSD licensed, derived from QtSingleApplication.

Changes are made to make the code more generic and useful in less usual conditions.

optional-bare

A simple single-file header-only version of a C++17-like optional for default-constructible, copyable types, for C++98 and later.

Imported from: 0bb1d183bc

Boost Software License - Version 1.0

quazip

A zip manipulation library, forked for MultiMC's use.

LGPL 2.1

rainbow

Color functions extracted from KGuiAddons. Used for adaptive text coloring.

Available either under LGPL version 2.1 or later.

systeminfo

A MultiMC-specific library for probing system information.

Apache 2.0

tomlc99

A TOML language parser. Used by Forge 1.14+ to store mod metadata.

See github repo.

Licenced under the MIT licence.

xz-embedded

Tiny implementation of LZMA2 de/compression. This format is only used by Forge to save bandwidth.

Public domain.