Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
87d0bb5
Update Window.hx
bananaTiko Sep 25, 2025
382e5f0
Update main.yml
bananaTiko Sep 25, 2025
f54563e
Create .gitignore
bananaTiko Sep 25, 2025
b6539c9
Amazon device support
bananaTiko Sep 25, 2025
a477096
Amazon device support
bananaTiko Sep 25, 2025
ce4d7d9
Amazon device support
bananaTiko Sep 25, 2025
54d39b5
Update AndroidPlatform.hx
bananaTiko Sep 25, 2025
a785326
Update SDLActivity.java
bananaTiko Sep 25, 2025
5922e26
Update build.gradle
bananaTiko Sep 25, 2025
e21bc0c
Update build.gradle
bananaTiko Sep 25, 2025
c0989ba
Update MetaData.hx
bananaTiko Sep 25, 2025
e33f64c
Create AdaptiveIcon.hx
bananaTiko Sep 25, 2025
595a234
Update HXProject.hx
bananaTiko Sep 25, 2025
6a4ecc9
Update ProjectHelper.hx
bananaTiko Sep 25, 2025
685bade
Update ProjectXMLParser.hx
bananaTiko Sep 25, 2025
9121d3e
Update AndroidPlatform.hx
bananaTiko Sep 25, 2025
1e2ac6f
Update ConfigData.hx
bananaTiko Sep 25, 2025
a7506c0
Update ProjectXMLParser.hx
bananaTiko Sep 25, 2025
29d2136
Create ApplicationMain.rc
bananaTiko Sep 25, 2025
3d94cbe
Update WindowsPlatform.hx
bananaTiko Sep 25, 2025
1be21ef
Update ConfigData.hx
bananaTiko Sep 30, 2025
7d72082
add refactor.yml
bananaTiko Sep 30, 2025
e8d6412
Delete .github/workflows/refactor.yml
bananaTiko Sep 30, 2025
67d9518
Update main.yml
bananaTiko Sep 30, 2025
ed2dce6
Rename README.md to README-old.md
bananaTiko Sep 30, 2025
f1ba483
Update main.yml
bananaTiko Sep 30, 2025
1f4e124
Rename README-old.md to README.md
bananaTiko Sep 30, 2025
11910d1
Update ConfigData.hx
bananaTiko Sep 30, 2025
b6a4104
Update main.yml
bananaTiko Sep 30, 2025
7b21545
Update Window.hx
bananaTiko Oct 1, 2025
36297b2
Update release.hxml
bananaTiko Oct 3, 2025
37a4e27
Update final.hxml
bananaTiko Oct 3, 2025
e0c5fe9
Update debug.hxml
bananaTiko Oct 3, 2025
459d7f1
Rename README.md to README_OLD.md
bananaTiko Oct 5, 2025
4719edc
Create README_2.md
bananaTiko Oct 5, 2025
b990436
Rename README_2.md to README.md
bananaTiko Oct 5, 2025
aa31b41
Chromebook fixes
bananaTiko Oct 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 133 additions & 50 deletions .github/workflows/main.yml

Large diffs are not rendered by default.

121 changes: 10 additions & 111 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,116 +1,15 @@
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE.md) [![Haxelib Version](https://img.shields.io/github/tag/openfl/lime.svg?style=flat&label=haxelib)](http://lib.haxe.org/p/lime) [![Build Status](https://img.shields.io/github/actions/workflow/status/openfl/lime/main.yml?branch=develop)](https://github.com/openfl/lime/actions) [![Community](https://img.shields.io/discourse/posts?color=24afc4&server=https%3A%2F%2Fcommunity.openfl.org&label=community)](https://community.openfl.org/c/lime/19) [![Discord Server](https://img.shields.io/discord/415681294446493696.svg?color=7289da)](https://discordapp.com/invite/tDgq8EE)

Lime
Lime-UPF
====
A fork of lime used for/in UPF

Lime is a flexible, lightweight layer for Haxe cross-platform developers.

Lime supports native, Flash and HTML5 targets with unified support for:

* Windowing
* Input
* Events
* Audio
* Render contexts
* Network access
* Assets

Lime does not include a renderer, but exposes the current context:

* Cairo
* Canvas
* DOM
* Flash
* GL

The GL context is based upon the WebGL standard, implemented for both OpenGL and OpenGL ES as needed.

Lime provides a unified audio API, but also provides access to OpenAL for advanced audio on native targets.


License
=======

Lime is free, open-source software under the [MIT license](LICENSE.md).


Installation
============

First install the latest version of [Haxe](http://www.haxe.org/download).


Development Builds
==================

When there are changes, Lime is built nightly. Builds are available for download [here](https://github.com/openfl/lime/actions?query=branch%3Adevelop+is%3Asuccess).

To install a development build, use the "haxelib local" command:

haxelib local lime-haxelib.zip


Building from Source
====================

Clone the Lime repository, as well as the submodules:

git clone --recursive https://github.com/openfl/lime

Tell haxelib where your development copy of Lime is installed:

haxelib dev lime lime

The first time you run the "lime" command, it will attempt to build the Lime standard binary for your desktop platform as the command-line tools. To build these manually, use the following command (using "mac" or "linux" if appropriate):

haxelib install format
haxelib install hxp
lime rebuild windows

You can build additional binaries, or rebuild binaries after making changes, using "lime rebuild":

lime rebuild windows
lime rebuild linux -64 -release -clean

You can also rebuild the tools if you make changes to them:

lime rebuild tools

On a Windows machine, you should have Microsoft Visual Studio C++ (Express is just fine) installed. You will need Xcode on a Mac. To build on a Linux machine, you may need the following packages (or similar):

sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev g++ g++-multilib gcc-multilib libasound2-dev libx11-dev libxext-dev libxi-dev libxrandr-dev libxinerama-dev

To switch away from a source build, use:

haxelib dev lime


Sample
======

You can build a sample Lime project with the following commands:

lime create HelloWorld
cd HelloWorld
lime test neko

You can also list other projects that are available using "lime create".


Targets
=======

Lime currently supports the following targets:
Credits
====
FunkinCrew -
Funkin lime fork

lime test windows
lime test mac
lime test linux
lime test android
lime test ios
lime test html5
lime test flash
lime test air
lime test neko
lime test hl
Goose-Git -
Goose-Git Lime fork

Desktop builds are currently designed to be built on the same host OS
mdqinc -
SDL_GameControllerDB
116 changes: 116 additions & 0 deletions README_OLD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE.md) [![Haxelib Version](https://img.shields.io/github/tag/openfl/lime.svg?style=flat&label=haxelib)](http://lib.haxe.org/p/lime) [![Build Status](https://img.shields.io/github/actions/workflow/status/openfl/lime/main.yml?branch=develop)](https://github.com/openfl/lime/actions) [![Community](https://img.shields.io/discourse/posts?color=24afc4&server=https%3A%2F%2Fcommunity.openfl.org&label=community)](https://community.openfl.org/c/lime/19) [![Discord Server](https://img.shields.io/discord/415681294446493696.svg?color=7289da)](https://discordapp.com/invite/tDgq8EE)

Lime
====

Lime is a flexible, lightweight layer for Haxe cross-platform developers.

Lime supports native, Flash and HTML5 targets with unified support for:

* Windowing
* Input
* Events
* Audio
* Render contexts
* Network access
* Assets

Lime does not include a renderer, but exposes the current context:

* Cairo
* Canvas
* DOM
* Flash
* GL

The GL context is based upon the WebGL standard, implemented for both OpenGL and OpenGL ES as needed.

Lime provides a unified audio API, but also provides access to OpenAL for advanced audio on native targets.


License
=======

Lime is free, open-source software under the [MIT license](LICENSE.md).


Installation
============

First install the latest version of [Haxe](http://www.haxe.org/download).


Development Builds
==================

When there are changes, Lime is built nightly. Builds are available for download [here](https://github.com/openfl/lime/actions?query=branch%3Adevelop+is%3Asuccess).

To install a development build, use the "haxelib local" command:

haxelib local lime-haxelib.zip


Building from Source
====================

Clone the Lime repository, as well as the submodules:

git clone --recursive https://github.com/openfl/lime

Tell haxelib where your development copy of Lime is installed:

haxelib dev lime lime

The first time you run the "lime" command, it will attempt to build the Lime standard binary for your desktop platform as the command-line tools. To build these manually, use the following command (using "mac" or "linux" if appropriate):

haxelib install format
haxelib install hxp
lime rebuild windows

You can build additional binaries, or rebuild binaries after making changes, using "lime rebuild":

lime rebuild windows
lime rebuild linux -64 -release -clean

You can also rebuild the tools if you make changes to them:

lime rebuild tools

On a Windows machine, you should have Microsoft Visual Studio C++ (Express is just fine) installed. You will need Xcode on a Mac. To build on a Linux machine, you may need the following packages (or similar):

sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev g++ g++-multilib gcc-multilib libasound2-dev libx11-dev libxext-dev libxi-dev libxrandr-dev libxinerama-dev

To switch away from a source build, use:

haxelib dev lime


Sample
======

You can build a sample Lime project with the following commands:

lime create HelloWorld
cd HelloWorld
lime test neko

You can also list other projects that are available using "lime create".


Targets
=======

Lime currently supports the following targets:

lime test windows
lime test mac
lime test linux
lime test android
lime test ios
lime test html5
lime test flash
lime test air
lime test neko
lime test hl

Desktop builds are currently designed to be built on the same host OS
1 change: 1 addition & 0 deletions ndll/Windows64/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

18 changes: 18 additions & 0 deletions src/lime/tools/AdaptiveIcon.hx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package lime.tools;

class AdaptiveIcon
{
public var path:String;
public var hasRoundIcon:Bool;

public function new(path:String, hasRoundIcon:Bool)
{
this.path = path;
this.hasRoundIcon = hasRoundIcon;
}

public function clone():AdaptiveIcon
{
return new AdaptiveIcon(path, hasRoundIcon);
}
}
44 changes: 44 additions & 0 deletions src/lime/tools/ConfigData.hx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ import haxe.xml.Fast as Access;

abstract ConfigData(Dynamic) to Dynamic from Dynamic
{
private static inline var ARRAY:String = "config:array_";

/**
If set, `parse()` will add child nodes to this array instead of parsing them.
**/
@:noCompletion public var xmlChildren(get, set):Array<String>;

public function new()
{
this = {};
Expand Down Expand Up @@ -207,6 +214,32 @@ abstract ConfigData(Dynamic) to Dynamic from Dynamic
return defaultValue;
}

public function getKeyValueArray(id:String, defaultValues:Dynamic = null):Array<{ key:Dynamic, value:Dynamic }>
{
var values = {};
if (defaultValues != null)
{
ObjectTools.copyFields(defaultValues, values);
}

var data = get(id);
for (key in Reflect.fields(data))
{
if (!StringTools.endsWith (key, ARRAY))
{
Reflect.setField(values, key, Reflect.field(data, key));
}
}

var pairs = [];
for (key in Reflect.fields(values))
{
pairs.push({ key: key, value: Reflect.field(values, key) });
}

return pairs;
}

private function log(v:Dynamic):Void
{
if (Log.verbose)
Expand Down Expand Up @@ -541,4 +574,15 @@ abstract ConfigData(Dynamic) to Dynamic from Dynamic
Reflect.setField(bucket, node, value);
}
}

// Getters & Setters

private inline function get_xmlChildren():Array<String> {
return Reflect.field(this, "config:xml_children");
}

private inline function set_xmlChildren(value:Array<String>):Array<String> {
Reflect.setField(this, "config:xml_children", value);
return value;
}
}
17 changes: 17 additions & 0 deletions src/lime/tools/HXProject.hx
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ class HXProject extends Script
public var haxelibs:Array<Haxelib>;
public var host(get, null):Platform;
public var icons:Array<Icon>;
public var adaptiveIcon:AdaptiveIcon;
public var javaPaths:Array<String>;
public var keystore:Keystore;
public var languages:Array<String>;
Expand All @@ -60,6 +61,7 @@ class HXProject extends Script
public var templatePaths:Array<String>;
@:isVar public var window(get, set):WindowData;
public var windows:Array<WindowData>;
public var projectFilePath:String;

private var needRerun:Bool;

Expand Down Expand Up @@ -250,6 +252,11 @@ class HXProject extends Script
project.icons.push(icon.clone());
}

if (adaptiveIcon != null)
{
project.adaptiveIcon = adaptiveIcon.clone();
}

project.javaPaths = javaPaths.copy();

if (keystore != null)
Expand Down Expand Up @@ -721,6 +728,11 @@ class HXProject extends Script
icons = ArrayTools.concatUnique(icons, project.icons);
javaPaths = ArrayTools.concatUnique(javaPaths, project.javaPaths, true);

if (project.adaptiveIcon != null)
{
adaptiveIcon = project.adaptiveIcon;
}

if (keystore == null)
{
keystore = project.keystore;
Expand All @@ -739,6 +751,11 @@ class HXProject extends Script
launchStoryboard.merge(project.launchStoryboard);
}

if (projectFilePath == null)
{
projectFilePath = project.projectFilePath;
}

languages = ArrayTools.concatUnique(languages, project.languages, true);
libraries = ArrayTools.concatUnique(libraries, project.libraries, true);

Expand Down
4 changes: 3 additions & 1 deletion src/lime/tools/MetaData.hx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ abstract MetaData({
@:optional var packageName:String;
@:optional var title:String;
@:optional var version:String;
@:optional var copyrightYears:String;
}) from Dynamic
{
@:noCompletion
Expand All @@ -21,6 +22,7 @@ abstract MetaData({
description: "",
packageName: "",
title: "",
version: ""
version: "",
copyrightYears: ""
};
}
Loading