proletariatgames / unreal.hx Goto Github PK
View Code? Open in Web Editor NEWUnreal.hx: Haxe Integration for Unreal
License: MIT License
Unreal.hx: Haxe Integration for Unreal
License: MIT License
So I've been porting UE4's First-Person Shooter template to unreal.hx, and I'm very close, there's just one area that's causing some frustration. When my FP weapon fires, I'm trying to play the fire animation, and referencing the original C++, it looks like I should be using Montage_IsPlaying() like this:
if (FireAnimation != null)
{
// Get the animation object for the arms mesh
var AnimInstance:UAnimInstance = Mesh1P.GetAnimInstance();
if (AnimInstance != null)
{
//trace("Anim Instance exists");
trace("Montage playing: "+AnimInstance.Montage_IsPlaying(null) );
//AnimInstance.Montage_Play(FireAnimation, 1.0);
}
}
However, when I run it in-game, UE4 crashes with this:
C++ EH exception - code e06d7363 (first/second chance not available)
KERNELBASE
VCRUNTIME140
UE4Editor_RooVR_1506!hx::Throw() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\stdlibs.cpp:54]
UE4Editor_RooVR_1506!__hxcpp_dbg_checkedThrow() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\include\hx\debug.h:350]
UE4Editor_RooVR_1506!hx::NullReference() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\debug.cpp:440]
UE4Editor_RooVR_1506!hx::ObjectPtrhx::EnumBase_obj::operator->() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\include\hx\object.h:377]
UE4Editor_RooVR_1506!_hx_getEnumValueIndex() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\include\enum.h:157]
UE4Editor_RooVR_1506!unreal::UAnimInstance_obj::Montage_Play() [c:\users\jamie\dropbox\roovr\intermediate\haxe\roovr-win-development-editor\static\src\unreal\uaniminstance.cpp:892]
UE4Editor_RooVR_1506!unreal::__s_Montage_Play() [c:\users\jamie\dropbox\roovr\intermediate\haxe\roovr-win-development-editor\static\src\unreal\uaniminstance.cpp:3325]
UE4Editor_RooVR_1506!hx::CallHaxe::run() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:1727]
UE4Editor_RooVR_1506!hx::CallHaxe::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:1744]
UE4Editor_RooVR_1506!hx::IfExpr::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:541]
UE4Editor_RooVR_1506!hx::BlockExpr::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:433]
UE4Editor_RooVR_1506!hx::IfExpr::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:541]
UE4Editor_RooVR_1506!hx::BlockExpr::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:433]
UE4Editor_RooVR_1506!hx::ScriptCallable::runFunctionClosure() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppiafunction.cpp:485]
UE4Editor_RooVR_1506!hx::CppiaClosure::doRun() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppiafunction.cpp:651]
UE4Editor_RooVR_1506!hx::CppiaClosure::__run() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppiafunction.cpp:730]
UE4Editor_RooVR_1506!cpp::Variant::operator()() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\include\cpp\variant.h:309]
UE4Editor_RooVR_1506!uhx::expose::Character_Expose::OnFire() [c:\users\jamie\dropbox\roovr\intermediate\haxe\roovr-win-development-editor\static\src\uhx\expose\character_expose.cpp:215]
Any guidance would be much appreciated. Thanks!
I want to work with tink.core
in hot-reload mode. I made a class
package game;
import tink.core.*;
@:uclass
class AGameProjectGameMode extends unreal.AGameMode {
public function new(wrapped) {
super(wrapped);
Future.ofMany(
[
futureIt(1),
futureIt(2),
futureIt(3)
]
).handle(function(responses){
trace("Responses are: ", responses);
trace("Length of responses: ", responses.length);
trace("Iterate responses:");
for (response in responses) {
trace(">>>", response);
}
});
}
private function futureIt(number:Int):Future<Outcome<Int, Dynamic>> {
var future = Future.trigger();
future.trigger(Outcome.Success(number));
return future;
}
}
and put it in Scripts
directory. Traces are:
Responses are: ,[Success(1),Success(2),Success(3)]
Length of responses: ,7
Iterate responses:
>>>,Success(1)
>>>,Success(2)
>>>,Success(3)
>>>,null
>>>,null
>>>,null
>>>,null
In Static
path this code works correct.
Can you help me to understand it?
I'm trying to implement click listener for my actor object, so i overrided ReceiveActorOnClicked
method
@:uclass
@:uname("APickup")
class Pickup extends AActor {
...
override public function ReceiveActorOnClicked(ButtonPressed:unreal.inputcore.FKey):Void {
super.ReceiveActorOnClicked(ButtonPressed);
trace("Clicked");
}
}
But as a result i'm getting that compilation error.
Info HaxeModuleRules.hx:159: Touching /Users/pro13/dev/UE4_workshop/BingoAdventure/BingoAdventure.uproject
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Intermediate/Build/Mac/UE4Editor/Development/BingoAdventure/Module.BingoAdventure.2_of_8.cpp:4:
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Private/uhx/glues/BatteryPickup_Glue.cpp:26:
Info /Users/pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Public/BatteryPickup.h:44:16: error: 'ReceiveActorOnClicked' marked 'override' but does not override any member functions
Info virtual void ReceiveActorOnClicked(FKey ButtonPressed) override;
Info ^
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Intermediate/Build/Mac/UE4Editor/Inc/BingoAdventure/BingoAdventure.generated.cpp:10:
Info In file included from ../../../../../pro13/dev/UE4_workshop/BingoAdventure/Intermediate/Build/Mac/UE4Editor/Inc/BingoAdventure/BingoAdventure.generated.dep.h:18:
Info ../../../../../pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Public/BatteryPickup.h:44:16: error: 'ReceiveActorOnClicked' marked 'override' but does not override any member functions
Info virtual void ReceiveActorOnClicked(FKey ButtonPressed) override;
Info ^
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Intermediate/Build/Mac/UE4Editor/Development/BingoAdventure/Module.BingoAdventure.1_of_8.cpp:8:
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Private/BatteryPickup.cpp:25:
Info /Users/pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Public//BatteryPickup.h:44:16: error: 'ReceiveActorOnClicked' marked 'override' but does not override any member functions
Info virtual void ReceiveActorOnClicked(FKey ButtonPressed) override;
Info ^
Info 1 error generated.
Info 1 error generated.
Info 1 error generated.
Info ERROR: UBT ERROR: Failed to produce item: /Users/pro13/dev/UE4_workshop/BingoAdventure/Binaries/Mac/UE4Editor-BingoAdventure-5706.dylib
Info Total build time: 419.48 seconds
my haxe version is 3.4.0
unreal.hx is 2f51bd6
Tested on Windows 10, Haxe 3.4.2, Unreal 4.16.3, Unreal.hx 4.16 branch:
Adding new @:uclass classes to the scripts folder and compiling for cppia seems to produce a crash in UE if the editor is open. Doing a full build works as expected, and cppia compilation on already existing classes built with a full build works fine.
Stack trace:
UE4Editor-CoreUObject.dll!StaticAllocateObjectErrorTests(UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags) Line 2158 C++
UE4Editor-CoreUObject.dll!StaticAllocateObject(UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, bool bCanRecycleSubobjects, bool * bOutRecycledSubobject) Line 2211 C++
UE4Editor-CoreUObject.dll!StaticConstructObject_Internal(UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, UObject * InTemplate, bool bCopyTransientsFromClassDefaults, FObjectInstancingGraph * InInstanceGraph, bool bAssumeTemplateIsArchetype) Line 3166 C++
UE4Editor-HX416test.dll!uhx::glues::UObject_Glue_obj::NewObject(unsigned __int64 outer, unsigned __int64 uclass, unreal::VariantPtr name, int flags, unsigned __int64 objTemplate, bool bCopyTransientsFromClassDefaults) Line 50 C++
UE4Editor-HX416test.dll!unreal::UObject_obj::NewObject(Dynamic T_TP, hx::ObjectPtrunreal::UObject_obj outer, hx::ObjectPtrunreal::UClass_obj uclass, unreal::VariantPtr name, Dynamic flags, hx::ObjectPtrunreal::UObject_obj objTemplate, Dynamic bCopyTransientsFromClassDefaults) Line 824 C++
UE4Editor-HX416test.dll!uhx::runtime::UReflectionGenerator_obj::createClass(hx::ObjectPtrunreal::UObject_obj outer, String uclassName, hx::ObjectPtrunreal::UClass_obj parent, bool parentHxGenerated, String hxPath) Line 1993 C++
UE4Editor-HX416test.dll!uhx::runtime::UReflectionGenerator_obj::getUpdatedClass(hx::ObjectPtruhx::runtime::DynamicRegistry_obj reg) Line 692 C++
UE4Editor-HX416test.dll!uhx::runtime::UReflectionGenerator_obj::cppiaHotReload() Line 456 C++
UE4Editor-HX416test.dll!UnrealInit_obj::editorSetup'::
2'::_hx_Closure_1::_hx_run() Line 408 C++
UE4Editor-HX416test.dll!UnrealInit_obj::editorSetup'::
2'::_hx_Closure_1::__run() Line 529 C++
UE4Editor-HX416test.dll!Dynamic::operator()() Line 300 C++
UE4Editor-HX416test.dll!UnrealInit_obj::editorSetup'::
2'::_hx_Closure_5::_hx_run(float deltaTime) Line 740 C++
UE4Editor-HX416test.dll!UnrealInit_obj::editorSetup'::
2'::_hx_Closure_5::run(const Dynamic & inArg0) Line 742 C++
UE4Editor-HX416test.dll!Dynamic::operator()(const Dynamic & inArg0) Line 301 C++
UE4Editor-HX416test.dll!uhx::expose::HxcppRuntime::callFunction1(unsigned int64 ptr, unsigned int64 arg0) Line 451 C++
UE4Editor-HX416test.dll!TBaseFunctorDelegateInstance<bool cdecl(float),uhx::LambdaBinder<bool,float> >::Execute(float <Params_0>) Line 1132 C++
UE4Editor-Core.dll!FTicker::Tick(float DeltaTime) Line 82 C++
UE4Editor.exe!FEngineLoop::Tick() Line 3262 C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE * hInInstance, HINSTANCE * hPrevInstance, int nCmdShow) Line 166 C++
UE4Editor.exe!WinMain(HINSTANCE * hInInstance, HINSTANCE * hPrevInstance, char * __formal, int nCmdShow) Line 199 C++
Hi, I'm using the example PlatformerGame as testbed to see if this still works with UE 4.16.
I've taken the latest project from GitHub and updated Plugin/UnrealHx to use the 4.16 branch
While running the usual haxe init-plugin.hxml -D UE_VER=4.16
I get the following error. Can you point me in the right direction by any chance?
--macro:1: character 1 : Uncaught exception Type not found 'HaxeModuleRules'
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool/Package.hx:43: characters 19-53 : Called from here
Update
This is the hxml generated by the build tool:
# use this to build the build tool. if you have made any changes to any .Build.hx files, run this
-cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool/src
-cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool
-cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx
-net-lib /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool/lib/DotNETUtilities-4.16.dll
-net-lib /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool/lib/UnrealBuildTool-4.16.dll
-cs /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/BuildTool
HaxeInit
-D UE_VER=4.16
-D no-root
-D net_ver=45
-D analyzer
-D real_position
--macro Package.main("/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source", [{ name:"Generated", target:"/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Source/HaxeInit/Generated.Build.cs" }], {"targetExternal":"/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/HaxeExternalModule.Build.cs","files":["/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/PlatformerGame.Build.hx"]})
According to https://github.com/HaxeFoundation/hxcpp/blob/master/docs/ThreadsAndStacks.md , setting a local top of stack every time a haxe callback is done is better because less stack is analyzed by the GC. This will also allow Haxe code to be called from other threads
I found a bug in Windows. Project path containes a space "C:\Users\T.Buglov\Documents\Unreal Projects\GameProjectHaxe". So init-plugin generates wrong "gen-build-module-rules.hxml" with bad target section. Finally, I have error
[exec] ERROR: Couldn't find target rules file for target 'GameProjectHaxeEditor' in rules assembly 'UE4Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.Other path without spaces "C:\Users\T.Buglov\Documents\UnrealProjects\GameProjectHaxe" works fine.
See #45 (comment)
It seems that copying/moving on Windows doesn't update the last modfiied timestamp, leading to issues where copied files aren't detected by UhxBuild
Haxe classes were compiled with success in Unreal 4.9, but when upgraded to 4.10 I've got the error: "ERROR: UBT ERROR: Failed to produce item: /home/maxim/Documents/Unreal Projects/MyProject6/Binaries/Linux/libUE4Editor-MyProject6-8385.so".
Here are the errors i get ๐
Running E:/UE4/UE_4.18/Engine/Binaries/DotNET/UnrealBuildTool.exe -projectfiles -project="E:/Beast v2.07/uhx/uhx.uproject" -game -rocket -progress Discovering modules, targets and source code for project... While compiling E:\Beast v2.07\uhx\Intermediate\Build\BuildRules\uhxModuleRules.dll: ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(239,9) : error CS1502: The best overloaded method match for 'UnrealBuildTool.BuildVersion.TryRead(Tools.DotNETCommon.FileReference, out UnrealBuildTool.BuildVersion)' has some invalid arguments ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(239,30) : error CS1503: Argument 1: cannot convert from 'string' to 'Tools.DotNETCommon.FileReference' ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(362,10) : error CS0718: 'UnrealBuildTool.UProjectInfo': static types cannot be used as type arguments ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(362,45) : error CS0117: 'UnrealBuildTool.UProjectInfo' does not contain a definition for 'FilterGameProjects' ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(365,28) : error CS0117: 'UnrealBuildTool.UProjectInfo' does not contain a definition for 'FilterGameProjects' ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(371,31) : error CS1061: 'UnrealBuildTool.UProjectInfo' does not contain a definition for 'Folder' and no extension method 'Folder' accepting a first argument of type 'UnrealBuildTool.UProjectInfo' could be found (are you missing a using directive or an assembly reference?) ERROR: UnrealBuildTool Exception: Unable to compile source files.
After running haxe init-plugin.hxml
, you are unable to generate the visual studio project files due to missing references.
Running C:/Program Files/Unreal Engine/4.9/Engine/Binaries/DotNET/UnrealBuildTool.exe -projectfiles -project="Playground.uproject" -game -rocket -progress
Discovering modules, targets and source code for game...
Errors detected while compiling Intermediate\Build\BuildRules\RocketUE4ModuleRules.dll:
HaxeExternalModule.Build.cs(2,7) : error CS0246: The type or namespace name 'haxe' could not be found (are you missing a using directive or an assembly reference?)
HaxeExternalModule.Build.cs(5,43) : error CS0400: The type or namespace name 'BaseModuleRules' could not be found in the global namespace (are you missing an assembly reference?)
Playground.Build.cs(2,7) : error CS0246: The type or namespace name 'haxe' could not be found (are you missing a using directive or an assembly reference?)
Playground.Build.cs(5,35) : error CS0400: The type or namespace name 'HaxeModuleRules' could not be found in the global namespace (are you missing an assembly reference?)
UnrealBuildTool Exception: ERROR: UnrealBuildTool encountered an error while compiling source files
When setting up an extern for the following c++ function, the "Ref" operator is ignored and extern failes to compile:
C++
bool GetRaw( const TArray < uint8 > *& OutRawData )
Haxe Extern:
public function GetRaw(InFormat:Const<ERGBFormat>,InBitDepth:Int32,OutRaw:Ref<PPtr<Const<TArray<UInt8>>>>):Bool;
Error :
[..../Generated/Private/uhx/glues/IImageWrapper_Glue.cpp(38): error C2664: 'bool IImageWrapper::GetRaw(const ERGBFormat::Type,int32,const TArray<uint8,FDefaultAllocator> *&)': cannot convert argument 3 from 'TArray<uint8,FDefaultAllocator> *' to 'const TArray<uint8,FDefaultAllocator> *&'
..../Intermediate/Haxe/HX416test-Win-Development-Editor/Generated/Private/uhx/glues/IImageWrapper_Glue.cpp(38): note: Conversion loses qualifiers
]
From my testing it seems linking / hotloading does not take place while the UE4 editor is open. Compiles ok, but does not link. By closing the editor and compiling again, linking is performed like normal.
Does not happen always, but quite often.
[Windows 10 / VS 2015 / Haxe 3.4.7]
This looks promising, but could you please provide more examples. I'm finding that the AMyActor
example isn't working, I've tried putting a simple trace in the Tick
function, but it doesn't seem to be called.
This is possibly because PrimaryActorTick.bCanEverTick
is never set to true, but I can't figure out how you actually create a constructor to set it...
Could you maybe post a few more examples to get an idea of the basic workflow.
I use haxe 3.3.0-rc.1, hxcpp 3.3.49
[exec] [2017.01.10-10.41.33:046][ 22]CompilerResultsLog: New page: Compilation - Jan 11, 2017, 1:41:33 AM [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Running Mono... [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info /hdd/maxim/git/iceowl/ue414/Engine ~/HaxePlatformerGame/PlatformerGame [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Using clang version '3.8.0' (string), 3 (major), 8 (minor), 0 (patch) [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Creating makefile for hot reloading PlatformerGame (.uproject file is newer) [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Compiling game modules for hot reload [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info BaseModuleRules.hx:45: modulePath: /home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/PlatformerGame.Build.cs [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info BaseModuleRules.hx:46: haxeInitPath: /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Source/HaxeInit/HaxeInit.Build.cs [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info InitPlugin.hx:48: Updating game project... [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info InitPlugin.hx:50: Updating game module... [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxe -version [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info HaxeCompiler: 3.3.0 [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info HaxeModuleRules.hx:230: baking externs [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxe --cwd /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -D use-rtti-doc -D bake-externs -cpp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor --no-output --macro ue4hx.internal.ExternBaker.process(["/home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs","/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Externs"], false) -D WITH_EDITOR -D BUILDTOOL_VERSION_LEVEL=4 [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info HaxeModuleRules.hx:265: compiling Haxe [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxe --cwd /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe arguments.hxml -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static -main UnrealInit -D static_link -D destination=/home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/libhaxeruntime.a -D haxe_runtime_dir=/home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame -D bake_dir=/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -D HXCPP_DLL_EXPORT -cpp /home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/Static/Built --macro ue4hx.internal.CreateGlue.run(["/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static"], ["/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Scripts"]) -D WITH_EDITOR -dce no -debug -D HXCPP_M64 -D scriptable -D WITH_CPPIA -D BUILDTOOL_VERSION_LEVEL=4 [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxelib run hxcpp Build.xml haxe -Ddebug -DBUILDTOOL_VERSION_LEVEL="4" -DHXCPP_DLL_EXPORT="1" -DHXCPP_M64="1" -DWITH_CPPIA="1" -DWITH_EDITOR="1" -Dbake_dir="/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor" -Ddestination="/home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/libhaxeruntime.a" -Dhaxe3="1" -Dhaxe_runtime_dir="/home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame" -Dhaxe_ver="3.3" -Dhxcpp_api_level="330" -Dscriptable="1" -Dsource-header="Generated by Haxe 3.3.0" -Dstatic_link="1" -I"/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Scripts/" -I"/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static/" -I"/home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static/" -I"/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor/" -I"" -I"./" -I"/" -I"/opt/haxetoolkit/linux64/haxe/std/cpp/_std/" -I"/opt/haxetoolkit/linux64/haxe/std/" [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Creating /home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/Static/Built/obj/linux64-stat-debug/__pch/haxe/hxcpp.h.gch... [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info - Compiling group 'haxe' with flags -Iinclude -I/home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/Generated/Shared -c -fvisibility=hidden -g -fpic -fPIC -DHX_LINUX -DHXCPP_DEBUG -DSTATIC_LINK(static) -DHXCPP_M64 -DHXCPP_VISIT_ALLOCS(haxe) -DHXCPP_SCRIPTABLE(haxe) -DHXCPP_API_LEVEL=330(haxe) -m64 -DHXCPP_M64 -I/opt/haxetoolkit/haxelib/hxcpp/3,3,49/include tags=[haxe,static] [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info - Compile : src/uhx/glues/PlayerController_GlueScript.cpp [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info - Compile : src/uhx/expose/PlayerController_Expose.cpp [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info clean libUnrealInit-debug.a [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info - Link : libUnrealInit-debug.a [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info - Ranlib : libUnrealInit-debug.a [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxe --cwd /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe arguments.hxml -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Scripts -main UnrealCppia -D cppia -D ustatic_target=/home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/Static/Built -cpp /home/maxim/HaxePlatformerGame/PlatformerGame/Binaries/Haxe/game.cppia --macro ue4hx.internal.CreateCppia.run(["/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static"], ["/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Scripts"],null) -debug -D WITH_EDITOR -D BUILDTOOL_VERSION_LEVEL=4 [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info BaseModuleRules.hx:45: modulePath: /home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/HaxeExternalModule.Build.cs [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info BaseModuleRules.hx:46: haxeInitPath: /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Source/HaxeInit/HaxeInit.Build.cs [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress push 5% [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Generating code...' 0% [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Generating code...' 67% [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Generating code...' 100% [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress pop [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Using bundled libc++ standard C++ library. [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source files...' 0% [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Performing 3 actions (8 in parallel) [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source code...' 0% [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info [2/3] Link libUE4Editor-PlatformerGameLoadingScreen-8539.so [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info [1/3] Compile Module.PlatformerGame.1_of_8.cpp [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source code...' 25% [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source code...' 50% [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info [3/3] Link libUE4Editor-PlatformerGame-2306.so [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source code...' 75% [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Total build time: 53.38 seconds [exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info HaxeModuleRules.hx:159: Touching /home/maxim/HaxePlatformerGame/PlatformerGame/PlatformerGame.uproject [exec] [2017.01.10-10.41.33:047][ 22]LogMainFrame: MainFrame: Module compiling took 53.552 seconds [exec] [2017.01.10-10.41.33:125][ 22]HaxeLog: UnrealInit.hx:24: initializing unreal haxe [exec] [2017.01.10-10.41.33:125][ 22]HaxeLog: UnrealInit.hx:70: loading cppia [exec] [2017.01.10-10.41.33:136][ 22]HaxeLog: UnrealCppia.hx:3: initializing unreal cppia script [exec] [2017.01.10-10.41.33:136][ 22]HaxeLog: UnrealInit.hx:75: Setting cppia live reload types [exec] [2017.01.10-10.41.33:145][ 22]LogClass: EGameState HotReload. [exec] [2017.01.10-10.41.33:177][ 22]LogContentBrowser: Native class hierarchy updated for 'PlatformerGame' in 0.0265 seconds. Added 12 classes and 7 folders. [exec] [2017.01.10-10.41.33:177][ 22]Module being reloaded does not support dynamic unloading -- abandoning existing loaded module so that we can load the recompiled version! [exec] terminating with uncaught exception of type Dynamic [exec] Signal 6 caught. [exec] Malloc Size=131076 LargeMemoryPoolOffset=131092 [exec] Malloc Size=65535 LargeMemoryPoolOffset=196655 [exec] Malloc Size=556026 LargeMemoryPoolOffset=752698 [exec] [2017.01.10-10.41.33:213][ 22]Display: HotReload successful (21 functions remapped 1 scriptstructs remapped) [exec] CommonLinuxCrashHandler: Signal=6 [exec] Using binned. [exec] LogPlatformFile: Not using cached read wrapper [exec] LogInit:Display: RandInit(548487015) SRandInit(548487015). [exec] LogTaskGraph: Started task graph with 4 named threads and 7 total threads with 1 sets of task threads. [exec] LogInit: Build: ++UE4+Release-4.14-CL-0 [exec] LogInit: Engine Version: 4.14.2-0+++UE4+Release-4.14 [exec] LogInit: Compatible Engine Version: 4.14.0-0+++UE4+Release-4.14 [exec] LogInit: Net CL: 0 [exec] LogInit: Compiled (64-bit): Jan 9 2017 17:23:42 [exec] LogInit: Compiled with Clang: 3.8.0 (tags/RELEASE_380/final) [exec] LogInit: Build Configuration: Shipping [exec] LogInit: Branch Name: ++UE4+Release-4.14 [exec] LogInit: Command line: -Abslog=/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Logs/PlatformerGame-CRC.log /home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/ [exec] LogInit: Base directory: /hdd/maxim/git/iceowl/ue414/Engine/Binaries/Linux/ [exec] LogInit: Installed Engine Build: 1 [exec] LogInit: Presizing for max 100000 objects, including 0 objects not considered by GC, pre-allocating 0 bytes for permanent pool. [exec] LogInit: Object subsystem initialized [exec] [2017.01.10-10.41.33:328][ 0]LogInit: Linux hardware info: [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - we are the first instance of this executable [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - this process' id (pid) is 10872, parent process' id (ppid) is 6600 [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - we are not running under debugger [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - machine network name is 'maxim' [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - user name is 'maxim' (maxim) [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - we're logged in locally [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - we're running with rendering [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - CPU: GenuineIntel 'Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz' (signature: 0x306C3) [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - Number of physical cores available for the process: 4 [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - Number of logical cores available for the process: 8 [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - Cache line size: 64 [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - Memory allocator used: binned [exec] [2017.01.10-10.41.33:328][ 0]LogLinux: Skipped benchmarking clocks because the engine is running in a standalone program mode - CLOCK_REALTIME will be used. [exec] [2017.01.10-10.41.33:328][ 0]LogInit: Linux-specific commandline switches: [exec] [2017.01.10-10.41.33:328][ 0]LogInit: -nodwarf (currently OFF): suppress parsing of DWARF debug info (callstacks will be generated faster, but won't have line numbers) [exec] [2017.01.10-10.41.33:328][ 0]LogInit: -ansimalloc - use malloc()/free() from libc (useful for tools like valgrind and electric fence) [exec] [2017.01.10-10.41.33:328][ 0]LogInit: -jemalloc - use jemalloc for all memory allocation [exec] [2017.01.10-10.41.33:328][ 0]LogInit: -binnedmalloc - use binned malloc for all memory allocation [exec] [2017.01.10-10.41.33:328][ 0]LogInit: -httpproxy=ADDRESS:PORT - redirects HTTP requests to a proxy (only supported if compiled with libcurl) [exec] [2017.01.10-10.41.33:328][ 0]LogInit: -reuseconn - allow libcurl to reuse HTTP connections (only matters if compiled with libcurl) [exec] [2017.01.10-10.41.33:328][ 0]LogInit: -virtmemkb=NUMBER - sets process virtual memory (address space) limit (overrides VirtualMemoryLimitInKB value from .ini) [exec] [2017.01.10-10.41.33:328][ 0]LogInit: - Physical RAM available (not considering process quota): 16 GB (15983 MB, 16366848 KB, 16759652352 bytes) [exec] [2017.01.10-10.41.33:328][ 0]LogUObjectArray: 141 objects as part of root set at end of initial load. [exec] [2017.01.10-10.41.33:328][ 0]LogUObjectAllocator: 23664 out of 0 bytes used by permanent object pool. [exec] [2017.01.10-10.41.33:328][ 0]LogUObjectArray: CloseDisregardForGC: 0/0 objects in disregard for GC pool [exec] [2017.01.10-10.41.33:328][ 0]LogTextLocalizationManager: No translations for ('') exist, falling back to 'en' for localization and internationalization data. [exec] [2017.01.10-10.41.33:330][ 0]CrashReportClientLog: CrashReportClientVersion=1.0 [exec] [2017.01.10-10.41.33:330][ 0]CrashReportClientLog: CrashReportReceiver disabled [exec] [2017.01.10-10.41.33:330][ 0]CrashReportClientLog: DataRouterUrl: https://datarouter.ol.epicgames.com/datarouter/api/v1/public/data [exec] [2017.01.10-10.41.33:330][ 0]LogQoSReporter:Error: QoS API server is not configured, no QoS metrics will be reported. [exec] [2017.01.10-10.41.33:330][ 0]LogQoSReporter: QoSReporter initialized (InstanceId = '00048D092101110A0029014A20B29A00', SystemId = '2a5d5f96ef9147c0b35535562b32d0ff') [exec] [2017.01.10-10.41.33:330][ 0]LogQoSReporter: APIKey = 'CrashReportClient.Release'. APIServer = ''. AppVersion = 'UE4-CL-0'. AppEnvironment = 'Release' [exec] [2017.01.10-10.41.33:330][ 0]LogQoSReporter: QoSReporter has been configured without a valid deployment name. [exec] [2017.01.10-10.41.33:330][ 0]LogQoSReporter: QoSReporter has been configured without a valid deployment name. [exec] [2017.01.10-10.41.33:330][ 0]CrashReportClientLog: Initial state = Unknown UploadState value [exec] [2017.01.10-10.41.33:330][ 0]CrashReportClientLog: Initial state = Unknown UploadState value [exec] [2017.01.10-10.41.33:331][ 0]LogCrashDebugHelper: DepotName: //UE4/Release-4.14 [exec] [2017.01.10-10.41.33:331][ 0]LogCrashDebugHelper: BuiltFromCL: 0 [exec] [2017.01.10-10.41.33:331][ 0]LogCrashDebugHelper: EngineVersion: 4.14.2-0+++UE4+Release-4.14 [exec] [2017.01.10-10.41.33:331][ 0]LogCrashDebugHelper: BuildVersion: ++UE4+Release-4.14-CL-0 [exec] [2017.01.10-10.41.33:331][ 0]LogCrashDebugHelper:Warning: CrashDebugHelperConfig invalid [exec] [2017.01.10-10.41.33:331][ 0]LogCrashDebugHelper:Warning: PDB Cache disabled [exec] [2017.01.10-10.41.34:300][ 0]CrashReportClientLog: Got 5 pending files to upload from 'crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47' [exec] [2017.01.10-10.41.34:300][ 0]CrashReportClientLog: State change from Ready to SendingFiles [exec] [2017.01.10-10.41.34:300][ 0]CrashReportClientLog: CompressAndSendData have 5 pending files [exec] [2017.01.10-10.41.34:300][ 0]CrashReportClientLog: CompressAndSendData compressing 556026 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/PlatformerGame.log') [exec] [2017.01.10-10.41.34:300][ 0]CrashReportClientLog: CompressAndSendData compressing 1933 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/wermeta.xml') [exec] [2017.01.10-10.41.34:301][ 0]CrashReportClientLog: CompressAndSendData compressing 2898 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/Diagnostics.txt') [exec] [2017.01.10-10.41.34:301][ 0]CrashReportClientLog: CompressAndSendData compressing 4 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/minidump.dmp') [exec] [2017.01.10-10.41.34:301][ 0]CrashReportClientLog: CompressAndSendData compressing 85 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/CrashReportClient.ini') [exec] [2017.01.10-10.41.34:316][ 0]LogInit: Using libcurl 7.46.0 [exec] [2017.01.10-10.41.34:316][ 0]LogInit: - built for x86_64-pc-linux-gnu [exec] [2017.01.10-10.41.34:316][ 0]LogInit: - supports SSL with OpenSSL/1.0.2d [exec] [2017.01.10-10.41.34:316][ 0]LogInit: - supports HTTP deflate (compression) using libz 1.2.8 [exec] [2017.01.10-10.41.34:316][ 0]LogInit: - other features: [exec] [2017.01.10-10.41.34:316][ 0]LogInit: CURL_VERSION_SSL [exec] [2017.01.10-10.41.34:317][ 0]LogInit: CURL_VERSION_LIBZ [exec] [2017.01.10-10.41.34:317][ 0]LogInit: CURL_VERSION_IPV6 [exec] [2017.01.10-10.41.34:317][ 0]LogInit: CURL_VERSION_ASYNCHDNS [exec] [2017.01.10-10.41.34:317][ 0]LogInit: CURL_VERSION_LARGEFILE [exec] [2017.01.10-10.41.34:317][ 0]LogInit: CURL_VERSION_TLSAUTH_SRP [exec] [2017.01.10-10.41.34:317][ 0]LogInit: Libcurl: checking if '/etc/pki/tls/certs/ca-bundle.crt' exists [exec] [2017.01.10-10.41.34:317][ 0]LogInit: Libcurl: checking if '/etc/ssl/certs/ca-certificates.crt' exists [exec] [2017.01.10-10.41.34:317][ 0]LogInit: CurlRequestOptions (configurable via config and command line): [exec] [2017.01.10-10.41.34:317][ 0]LogInit: - bVerifyPeer = true - Libcurl will verify peer certificate [exec] [2017.01.10-10.41.34:317][ 0]LogInit: - bUseHttpProxy = false - Libcurl will NOT use HTTP proxy [exec] [2017.01.10-10.41.34:317][ 0]LogInit: - bDontReuseConnections = false - Libcurl will reuse connections [exec] [2017.01.10-10.41.34:317][ 0]LogInit: - CertBundlePath = /etc/ssl/certs/ca-certificates.crt - Libcurl will set CURLOPT_CAINFO to it [exec] [2017.01.10-10.41.34:317][ 0]CrashReportClientLog: Sending HTTP request: https://datarouter.ol.epicgames.com/datarouter/api/v1/public/data?AppID=CrashReporter&AppVersion=4.14.2-0%2B%2B%2BUE4%2BRelease-4.14&AppEnvironment=Release&UploadType=crashreports&UserID=000353d20e080f150002012725704178%7C%7C2a5d5f96ef9147c0b35535562b32d0ff [exec] [2017.01.10-10.41.35:769][ 0]CrashReportClientLog: OnProcessRequestComplete(), State=SendingFiles bSucceeded=1 [exec] [2017.01.10-10.41.35:769][ 0]CrashReportClientLog: State change from SendingFiles to SendingFiles [exec] [2017.01.10-10.41.35:769][ 0]CrashReportClientLog: All uploads done [exec] [2017.01.10-10.41.35:769][ 0]CrashReportClientLog: State change from SendingFiles to Finished [exec] [2017.01.10-10.41.36:304][ 0]LogLinux: FLinuxPlatformMisc::RequestExit(0) [exec] [2017.01.10-10.41.36:304][ 0]LogGenericPlatformMisc: FPlatformMisc::RequestExit(0) [exec] [2017.01.10-10.41.36:337][ 0]CrashReportClientLog: Final state (Receiver) = Finished [exec] [2017.01.10-10.41.36:337][ 0]CrashReportClientLog: Final state (Receiver) = Unknown UploadState value [exec] [2017.01.10-10.41.36:337][ 0]LogExit: Preparing to exit. [exec] [2017.01.10-10.41.36:338][ 0]LogObj: Freed 0b from 0 cluster array pools. [exec] [2017.01.10-10.41.36:338][ 0]LogExit: Object subsystem successfully closed. [exec] [2017.01.10-10.41.36:356][ 0]LogModuleManager: Shutting down and abandoning module HTTP (5) [exec] [2017.01.10-10.41.36:356][ 0]LogModuleManager: Shutting down and abandoning module CrashDebugHelper (4) [exec] [2017.01.10-10.41.36:356][ 0]LogModuleManager: Shutting down and abandoning module QoSReporter (3) [exec] [2017.01.10-10.41.36:356][ 0]LogModuleManager: Shutting down and abandoning module Analytics (2) [exec] [2017.01.10-10.41.36:356][ 0]LogModuleManager: Shutting down and abandoning module CoreUObject (1) [exec] [2017.01.10-10.41.36:356][ 0]LogExit: Exiting. [exec] Engine crash handling finished; re-raising signal 6 for the default handler. Good bye.
BUILD FAILED
/home/maxim/HaxePlatformerGame/PlatformerGame/build.xml:125: The following error occurred while executing this line:
/home/maxim/HaxePlatformerGame/PlatformerGame/build.xml:43: exec returned: 134Total time: 8 minutes 49 seconds
maxim@maxim ~/HaxePlatformerGame/PlatformerGame $
Create a system that will allow multiple unreal versions to be used with the same unreal.hx codebase
Because the title says it is unreal.
In my tests I'm getting this error when I use haxe.Json package.
var obj = { content: "asd" };
haxe.Json.stringify(obj);
If "haxe.Json.stringify(obj);" is commented, the change works fine.
Greetings,
I am attempting to get unreal.hx working with ue4.14, and I have gotten as far as running init-plugin.hxml successfully, but now when I try to compile, I get the following error:
CompilerResultsLog:Error: Error HaxeCompiler: ./src/unreal/_TArrayImpl/TArrayImpl_Impl_.cpp(116) : error C2819: type 'uhx::glues::TArrayImpl_Glue_obj' does not have an overloaded member 'operator ->' CompilerResultsLog:Error: Error HaxeCompiler: C:/Users/Jamie/Dropbox/RooVR/Source/RooVR/../RooVR/Generated/Public/uhx/glues/TArrayImpl_Glue.h(26) : note: see declaration of 'uhx::glues::TArrayImpl_Glue_obj' CompilerResultsLog:Error: Error HaxeCompiler: ./src/unreal/_TArrayImpl/TArrayImpl_Impl_.cpp(116) : note: did you intend to use '.' instead? CompilerResultsLog:Error: Error HaxeCompiler: ./src/unreal/_TArrayImpl/TArrayImpl_Impl_.cpp(116) : error C2232: '->uhx::glues::TArrayImpl_Glue_obj::set_Item': left operand has 'class' type, use '.'
Has anyone else encountered this before?
When I try to compile the source on Editor it's causing an error.
Investigating I found that the error is occurring on BuildApi.Build.cs, when it calls the haxe command.
When the code calls the haxe command, it's calling from mono, and mono doesn't recognize the bin path to call.
ERROR: Unable to instantiate module 'MyProject': System.ComponentModel.Win32Exception: ApplicationName='haxe', CommandLine='--cwd "/Users/gilmar/Documents/Unreal Projects/MyProject/Plugins/UnrealHx/Haxe/BuildTool" compile-project.hxml -D "EngineDir=/Users/Shared/Epic Games/UE_4.19/Engine" -D "ProjectDir=/Users/gilmar/Documents/Unreal Projects/MyProject" -D "TargetName=MyProjectEditor" -D "TargetPlatform=Mac" -D "TargetConfiguration=Development" -D "TargetType=Editor" -D "ProjectFile=/Users/gilmar/Documents/Unreal Projects/MyProject/MyProject.uproject" -D "PluginDir=/Users/gilmar/Documents/Unreal Projects/MyProject/Plugins/UnrealHx" -D UE_BUILD_CS', CurrentDirectory='', Native error= Cannot find the specified file
at System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in :0
at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in :0
at System.Diagnostics.Process.Start () [0x00000] in :0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
at HaxeModuleRules.callHaxe (UnrealBuildTool.ModuleRules rules, HaxeCompilationInfo info, HaxeConfigOptions options) [0x00000] in :0
at HaxeModuleRules.setupHaxeTarget (UnrealBuildTool.ModuleRules rules, Boolean forceHaxeCompilation, HaxeConfigOptions options) [0x00000] in :0
at HaxeModuleRules.run () [0x00000] in :0
at BaseModuleRules..ctor (UnrealBuildTool.ReadOnlyTargetRules target) [0x00000] in :0
at HaxeModuleRules..ctor (UnrealBuildTool.ReadOnlyTargetRules target) [0x00000] in :0
at MyProject..ctor (UnrealBuildTool.ReadOnlyTargetRules Target) [0x00000] in :0
at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in :0
(referenced via MyProject.Target.cs)
Hi guys,
Thank you so much for this plugin, it's awesome! Would you be so kind to help me understand what is happening under the hood of Haxe compiling? As i understand Haxe is just intermediate syntax between Haxe language and c++. I mean if Haxe compiles directly to c++ why compiling time in Haxe is so short? Are we compiling C++ generated code after Haxe compilation?
Thank you, hope UE 4.12 support will be released soon. Now i have this kind of problem:
\Plugins\UE4Haxe\Source\HaxeInit\HaxeInit.Build.cs(1404,22) : error CS0619: 'UnrealBuildTool.RulesCompiler.GetModuleFilename(string)' is obsolete: 'GetModuleFilename is deprecated, use the ModuleDirectory property on any ModuleRules instead to get a path to your module.'
Any chance of someone putting together a super basic setup video tutorial?
I'm using UE 4.17.2. After adding the plugin to my project and compiling I get the following error in the UE4 console. I am trying this on MacOS so I'm guessing there is some config somewhere that I need to change so that this doesn't happen ?
CompilerResultsLog: BuildApi.Build.cs: Using Haxe
CompilerResultsLog: Calling Haxe
CompilerResultsLog: Calling the build tool with arguments --cwd "/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/Plugins/UnrealHx/Haxe/BuildTool" compile-project.hxml -D "EngineDir=/Users/Shared/Epic Games/UE_4.17/Engine" -D "ProjectDir=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2" -D "TargetName=MyProject2Editor" -D "TargetP
latform=Mac" -D "TargetConfiguration=Development" -D "TargetType=Editor" -D "ProjectFile=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/MyProject2.uproject" -D "PluginDir=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/Plugins/UnrealHx" -D UE_BUILD_CS
CompilerResultsLog: ERROR: Unable to instantiate instance of 'MyProject2' object type from compiled assembly 'MyProject2ModuleRules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'. Unreal Build Tool creates an instance of your module's 'Rules' object in order to find out about your module's requirements. The CLR exception details may provide more i
nformation: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ComponentModel.Win32Exception: ApplicationName='haxe', CommandLine='--cwd "/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/Plugins/UnrealHx/Haxe/BuildTool" compile-project.hxml -D "EngineDir=/Users/Shared/Epic Games/U
E_4.17/Engine" -D "ProjectDir=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2" -D "TargetName=MyProject2Editor" -D "TargetPlatform=Mac" -D "TargetConfiguration=Development" -D "TargetType=Editor" -D "ProjectFile=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/MyProject2.uproject" -D "PluginDir=/Users/mwallace/Dropbox/Development
/Unreal Projects/MyProject2/Plugins/UnrealHx" -D UE_BUILD_CS', CurrentDirectory='', Native error= Cannot find the specified file
CompilerResultsLog: at System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0
CompilerResultsLog: at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0
CompilerResultsLog: at System.Diagnostics.Process.Start () [0x00000] in <filename unknown>:0
CompilerResultsLog: at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
CompilerResultsLog: at HaxeModuleRules.callHaxe (UnrealBuildTool.ModuleRules rules, HaxeCompilationInfo info, HaxeConfigOptions options) [0x00000] in <filename unknown>:0
CompilerResultsLog: at HaxeModuleRules.setupHaxeTarget (UnrealBuildTool.ModuleRules rules, Boolean forceHaxeCompilation, HaxeConfigOptions options) [0x00000] in <filename unknown>:0
CompilerResultsLog: at HaxeModuleRules.run () [0x00000] in <filename unknown>:0
CompilerResultsLog: at BaseModuleRules..ctor (UnrealBuildTool.ReadOnlyTargetRules target) [0x00000] in <filename unknown>:0
CompilerResultsLog: at HaxeModuleRules..ctor (UnrealBuildTool.ReadOnlyTargetRules target) [0x00000] in <filename unknown>:0
CompilerResultsLog: at MyProject2..ctor (UnrealBuildTool.ReadOnlyTargetRules Target) [0x00000] in <filename unknown>:0
CompilerResultsLog: at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
CompilerResultsLog: at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
CompilerResultsLog: --- End of inner exception stack trace ---
CompilerResultsLog: at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
CompilerResultsLog: at System.Reflection.MonoCMethod.DoInvoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
CompilerResultsLog: at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
CompilerResultsLog: at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
CompilerResultsLog: at UnrealBuildTool.RulesAssembly.CreateModuleRules (System.String ModuleName, UnrealBuildTool.ReadOnlyTargetRules Target, UnrealBuildTool.FileReference& ModuleFileName) [0x00000] in <filename unknown>:0
LogMainFrame: MainFrame: Module compiling took 2.797 seconds```
I don't know all haxe syntax but I'm very interesting to this project, but please give me an example of porting .build. Cause I'm stuck at that process. Can we use tool ? If not, how ?
Thank you.
This is less of a problem with Unreal.hx and more of a problem with how Visual Studio works, but perhaps someone here can point me in the right direction.
Ever since my harddisk failure (I have replaced the failing harddisk), I've been getting this problem, where I wasn't before. I'm assuming the Unreal.hx build tool is not pointing to the right crt due to some paths being messed up? This is in Visual Studio 2017, but I had both 2017 and 2015 installed previously. My guess is that it's pointing to the VS2017 includes but the VS2015 lib, as __std_reverse_trivially_swappable_1 and such are only included in the VS2017 CRT as far as I know (in vector_algorithms.cpp). Any way/ideas to solve this issue?
Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol __std_reverse_trivially_swappable_1 referenced in function "public: virtual class String __cdecl haxe::io::Bytes_obj__scriptable::__ToString(void)const " (?__ToString@Bytes_obj__scriptable@io@haxe@@UEBA?AVString@@XZ) RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(d419743c_Bytes.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(8db8204d_ByteArray.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(d419743c_BytesBuffer.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(9d57483c_Lib.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(d419743c_Path.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_UnrealInit.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_ArrayBuiltin.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(6f10cfb9_File.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_Cppia.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_CppiaVars.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_StringBuf.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_StringTools.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(5370fa6a_CFFI.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(5370fa6a_StdLibs.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_String.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_1 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_Array.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_8 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(5370fa6a_Hash.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_8 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_UnrealInit.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_8 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_ArrayBuiltin.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_8 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(39811e08_Immix.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_8 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_Array.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_8 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_Cppia.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_8 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_CppiaVars.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_4 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_CppiaVars.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_4 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(5370fa6a_Hash.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_4 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_StringTools.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_4 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_ArrayBuiltin.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_4 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_String.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_4 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_Array.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_4 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(9a51aeaf_ClassWrap.obj) 1
Error LNK2001 unresolved external symbol __std_reverse_trivially_swappable_4 RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_Cppia.obj) 1
Error LNK2019 unresolved external symbol __std_reverse_trivially_swappable_2 referenced in function "void __cdecl std::_Reverse_unchecked1<unsigned short *>(unsigned short * const,unsigned short * const,struct std::integral_constant<unsigned __int64,2>)" (??$_Reverse_unchecked1@PEAG@std@@YAXQEAG0U?$integral_constant@_K$01@0@@Z) RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_Array.obj) 1
Error LNK1120 4 unresolved externals RunAndGun D:\UnrealProjects\RunAndGun\Binaries\Win64\UE4Editor-RunAndGun.dll 1
Error Failed to produce item: D:\UnrealProjects\RunAndGun\Binaries\Win64\UE4Editor-RunAndGun.dll RunAndGun D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\ERROR 1
Error MSB3075 The command "C:\LocalBuilds\Engine\Windows\Engine\Build\BatchFiles\Build.bat RunAndGunEditor Win64 Development "D:\UnrealProjects\RunAndGun\RunAndGun.uproject" -waitmutex" exited with code 5. Please verify that you have sufficient rights to run this command. RunAndGun C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets 44
Extra paths for static and scripts seems not to be included when compiling,
and triggers a "type not found" error for respective classes existing in the added folders.
class UhxConfig
{
public static function getConfig(data:UhxBuildData, config:UhxBuildConfig)
{
config.extraStaticClasspaths = ['C:/dev/haxe/unrealhx/libs/Static'];
config.extraScriptClasspaths = ['C:/dev/haxe/unrealhx/libs/Scripts'];
return config;
}
}
Hello, I've been trying to get CreateDefaultSubobject to work after referencing it's usage in the Platformer port's ClimbMarker class, but keep getting an error. Here it is in the ClimbMarker:
var SceneComp = init.CreateDefaultSubobject(new TypeParam<USceneComponent>(), this, "SceneComp", false);
...and then mine:
FirstPersonCameraComponent = init.CreateDefaultSubobject(new TypeParam<UCameraComponent>(), this, "FirstPersonCamera", false);
... and then the error:
characters 121-126 : Bool should be unreal.UClass For function argument 'ReturnType'
Does anyone have a clue what I'm doing wrong? I'm using UE4.16, so it's possible that function definition has changed since 4.11.
-Jamie
I just did a fresh install into a 4.19 project with the latest branch, and I'm getting a compile error relating to MethodPointer:
\Plugins\UnrealHx/Haxe/Static/unreal/MethodPointer.hx:59: characters 21-70 :
unreal.MethodPointer<Unknown<0>, Unknown<1>> should be Float -> Void
For function argument 'func'
Has anyone else received this error?
EDIT:
For additional information, I am porting some code from a 4.16 project, where I am using MethodPointer to bind functions to input actions. I suppose it's possible this process has changed since that version.
EDIT 2:
Turns out BindAction/BindAxis don't need MethodPointers anymore, so I can proceed regardless of this error.
This is an incredibly interesting library doing something quite important that is prohibitively frustrating to get working. Please update the docs to reflect the creation of an actual working setup, including the exact versions of haxe, hxcs, hxcpp and unreal: I'm getting thematically similar but otherwise different compile errors based on various combinations of each, usually down to missing types, wrong enum values, or most recently Int not being a declared type. The example project does not build either.
I know much of this is Epic's fault with how much they love to break C++ features every update, but still.
Would love to pitch in on this one but it needs a nicer doormat. Plz 2 make Unreal fun again <3
@:uclass
class ACollidingPawn extends APawn
{
var OurParticleSystem: UParticleSystemComponent;
var OurMovementComponent: UCollidingPawnMovementComponent;
public function new (wrapped) {
super(wrapped);
PrimaryActorTick.bCanEverTick = true;
var init = FObjectInitializer.Get();
OurParticleSystem = init.CreateDefaultSubobject(this,"MovementParticles",false); // OK
OurMovementComponent = init.CreateDefaultSubobject(this, "GetMovementComponent",false); // FAILED
}
}
@:uclass
class UCollidingPawnMovementComponent extends UPawnMovementComponent
{
public function new(wrapped)
{
super(wrapped);
}
}
HaxeLog:Error: UnrealInit.hx:83: Error while loading cppia: Bad link
I'm trying to create some simple helper functions to aid in finding and creating objects.
@:generic
public static function AddSubObject<T:UObject>(parent:AActor, name:String, transient:Bool = false):T
{
var object:T = FObjectInitializer.Get().CreateDefaultSubobject(parent, name, transient);
return object;
}
...
var sphere:USphereComponent = AddSubObject("Sphere", false);
Which generates the following code:
@:glueCppIncludes("Engine.h", "<OPointers.h>", "Object.h", "UObject/NameTypes.h", "<TypeParamGlue.h>")
@:glueHeaderIncludes("<UEPointer.h>")
@:glueHeaderCode("static void * CreateDefaultSubobject_AddSubObject_T(unreal::helpers::UEPointer * self, void * Outer, unreal::helpers::UEPointer * SubojectName, bool bTransient);")
@:glueCppCode("void * __pvt::_hx_unreal::FObjectInitializer_GlueGeneric_obj::CreateDefaultSubobject_AddSubObject_T(unreal::helpers::UEPointer * self, void * Outer, unreal::helpers::UEPointer * SubojectName, bool bTransient) {\n\treturn TypeParamGlue<T *>::ueToHaxe( ( (FObjectInitializer *) (::unreal::helpers::UEPointer::getPointer(self)) )->CreateDefaultSubobject<T>(( (UObject *) Outer ), (*(( (FName *) (::unreal::helpers::UEPointer::getPointer(SubojectName)) ))), bTransient) );\n}")
@:noCompletion
@:noUsing
@:genericInstance
@:glueCppIncludes("Engine.h", "<OPointers.h>", "Object.h", "UObject/NameTypes.h", "<TypeParamGlue.h>")
@:glueHeaderIncludes("<UEPointer.h>")
@:thisConst
@:typeName
@:ifFeature("unreal.FObjectInitializer.CreateDefaultSubobject_AddSubObject_T")
public static function CreateDefaultSubobject_AddSubObject_T(self : unreal.PExternal<unreal.FObjectInitializer>, Outer : unreal.UObject, SubojectName : unreal.FName, bTransient : Bool) : ue4hx.internal.PExternalDef<T> {
return (unreal.helpers.HaxeHelpers.pointerToDynamic( __pvt._hx_unreal.FObjectInitializer_GlueGeneric.CreateDefaultSubobject_AddSubObject_T(@:privateAccess self.getWrapped().get_raw(), @:privateAccess Outer.getWrapped().rawCast(), @:privateAccess SubojectName.getWrapped().get_raw(), bTransient) ) : ue4hx.internal.PExternalDef<T>);
}
Which throws the error: Type not found: T
.
@waneck I tried checking out the ue4.14 branch and using the HaxePlatformerGame sample as a head start but as soon as I try to open the project and convert it to 4.14 I get the following error:
Project files could not be generated. Log output:
Running Mono...
Setting up Mono
/Users/Shared/UnrealEngine/4.14/Engine /Users/Shared/UnrealEngine/4.14/Engine/Binaries/Mac
Discovering modules, targets and source code for project...
Messages while compiling /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Intermediate/Build/BuildRules/PlatformerGameModuleRules.dll:
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame.Target.cs(25,48) : error CS0115: `PlatformerGameTarget.GUBP_GetPlatforms_MonolithicOnly(UnrealBuildTool.UnrealTargetPlatform)' is marked as an override but no suitable method found to override
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame.Target.cs(39,48) : error CS0115: `PlatformerGameTarget.GUBP_GetBuildOnlyPlatforms_MonolithicOnly(UnrealBuildTool.UnrealTargetPlatform)' is marked as an override but no suitable method found to override
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame.Target.cs(61,53) : error CS0115: `PlatformerGameTarget.GUBP_GetConfigs_MonolithicOnly(UnrealBuildTool.UnrealTargetPlatform, UnrealBuildTool.UnrealTargetPlatform)' is marked as an override but no suitable method found to override
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGameEditor.Target.cs(25,21) : error CS0246: The type or namespace name `GUBPProjectOptions' could not be found. Are you missing an assembly reference?
UnrealBuildTool Exception: ERROR: UnrealBuildTool encountered an error while compiling source files
I've changed the build.xml of the project and commented out all the GUB* overrides and now it goes a bit further but still hangs at this:
MacBookPro-Valerio:PlatformerGame tanis$ ant build
Buildfile: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/build.xml
init-plugin:
[exec] InitPlugin.hx:22: Inferring project location...
[exec] InitPlugin.hx:13: Game location: ../../PlatformerGame.uproject
[exec] InitPlugin.hx:48: Updating game project...
[exec] InitPlugin.hx:50: Updating game module...
[exec] InitPlugin.hx:148: Building BuildTool...
[exec] InitPlugin.hx:18: Project update done.
build:
[exec]
[exec] Running Mono...
[exec]
[exec] /Users/Shared/UnrealEngine/4.14/Engine /Users/Shared/UnrealEngine/4.14/Engine
[exec] Compiling with MacOSX SDK 10.12
[exec] InitPlugin.hx:48: Updating game project...
[exec] InitPlugin.hx:50: Updating game module...
[exec] haxe -version
[exec] HaxeCompiler: 3.4.0
[exec] HaxeModuleRules.hx:230: baking externs
[exec] haxe --cwd /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe -cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -D use-rtti-doc -D bake-externs -cpp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor --no-output --macro ue4hx.internal.ExternBaker.process(["/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs","/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Externs"], false) -D WITH_EDITOR -D BUILDTOOL_VERSION_LEVEL=4
[exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/AActor.hx:877: characters 9-113 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
[exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/AActor.hx:882: characters 9-111 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
[exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/AActor.hx:887: characters 9-113 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
[exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/AActor.hx:892: characters 9-113 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
[exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/UDataTableFunctionLibrary.hx:18: characters 16-249 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
[exec] HaxeModuleRules.hx:265: compiling Haxe
[exec] haxe --cwd /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe arguments.hxml -cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Static -main UnrealInit -D static_link -D destination=/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Mac-Development-Editor/libhaxeruntime.a -D haxe_runtime_dir=/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame -D bake_dir=/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -D HXCPP_DLL_EXPORT -cpp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Mac-Development-Editor/Static/Built --macro ue4hx.internal.CreateGlue.run(["/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Static"], ["/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Scripts"]) -D WITH_EDITOR -dce no -debug -D HXCPP_M64 -D scriptable -D WITH_CPPIA -D BUILDTOOL_VERSION_LEVEL=4
[exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Scripts/platformer/PlayerController.hx:3: characters 7-52 : Type not found : unreal.gamemenubuilder.IGameMenuBuilderModule
[exec] Haxe compilation failed
[exec] HaxeModuleRules.hx:159: Touching /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/PlatformerGame.uproject
BUILD FAILED
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/build.xml:142: The following error occurred while executing this line:
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/build.xml:54: exec returned: 10
Total time: 1 minute 2 seconds
I get this error when I do a full re-compile:
CompilerResultsLog: Error: C:\Users\VectorSource\Dropbox\VectorSourceVR\Source\VectorSourceVR\Generated\Unity\Win-Dev-Editor\Unreal.Win-Dev-Editor.uhxglue.cpp(849) : warning C4996: 'FHierarchicalSimplification::DrawDistance': LOD transition is now based on screen size rather than drawing distance, see TransitionScreenSize Please update your code to the new A
PI before upgrading to the next release, otherwise your project will no longer compile.
CompilerResultsLog: Error: C:\Program Files\Epic Games\UE_4.19\Engine\Source\Runtime\Engine\Classes\GameFramework/WorldSettings.h(271) : note: see declaration of 'FHierarchicalSimplification::DrawDistance'
CompilerResultsLog: Error: C:\Users\VectorSource\Dropbox\VectorSourceVR\Source\VectorSourceVR\Generated\Unity\Win-Dev-Editor\Unreal.Win-Dev-Editor.uhxglue.cpp(849) : note: This diagnostic occurred in the compiler generated function 'FHierarchicalSimplification::FHierarchicalSimplification(FHierarchicalSimplification &&)'
Assuming this needs to be fixed before 4.20, whenever that may be?
We've added a workaround for FVector_NetQuantize to solve for that case in particular, but there is an issue currently with types that subclass a POD type. When it is accessed as its parent, the struct layout of a POD type is used, even if it was actually created as a normal non-POD type (as all types that have a superclass aren't POD anymore)
I'm attempting to get the ue4.16 branch up and running with a bare-bones project, and I have run into a couple problems. I've cloned/checked out that branch, and ran init-plugin.hxml. At first I got an "invalid excape sequence" error, which related to the gameDir string that was generated (which had backslashes in it). I remedied this by adding gameDir = gameDir.replace('\\','/');
at line 85 in InitPlugin.hx, but then I get the following error:
c:\HaxeToolkit\haxe\std/haxe/macro/Context.hx:247: charactes 9-32:Type not found 'HaxeModuleRules' (called from ../unreal.hx/Haxe/BuildTool/Package.hx:42
Is the 4.16 branch missing some files?
Please HELP!
Hi, I'm using the development branch but I can't make it work
whatever I do I get this error, I tried the dev_4.19 branch, same thing
I'm following the instructions on the README then I open the project and hit compile and I get this error
CompilerResultsLog: ERROR: /media/LNX_PROJ_2017/UE4_PROJx_2018/haxeTest01/Plugins/UnrealHX/Source/HaxeInit/BuildApi.Build.cs(359,53) : error CS0117: `UnrealBuildTool.UProjectInfo' does not contain a definition for `FilterGameProjects'
CompilerResultsLog: ERROR: /media/LNX_PROJ_2017/UE4_PROJx_2018/haxeTest01/Plugins/UnrealHX/Source/HaxeInit/BuildApi.Build.cs(362,35) : error CS0117: `UnrealBuildTool.UProjectInfo' does not contain a definition for `FilterGameProjects'
CompilerResultsLog: ERROR: Unable to compile source files.
Thanks
Hi! :) We experimented with UnrealHx under linux and everything was good. But now we are trying to make Android build and we faced a problem.
I'm trying to do HaxePlatformerGame version for Android. https://github.com/nitrobin/HaxePlatformerGame
https://github.com/nitrobin/unreal.hx
We were able to compile the application into apk-file, but the app crashes immediately at startup:
com.YourCompany.Project-1 / lib / arm / libUE4.so ", RTLD_LAZY) failed: dlopen failed: can not locate symbol" "referenced by" libUE4.so "...
Logs: https://goo.gl/9zVUHF
HaxeModuleRules changes: https://github.com/nitrobin/unreal.hx/blob/android/Haxe/BuildTool/src/HaxeModuleRules.hx#L345
Can anyone help us with it? Any tips?
If you name a ufunction
function argument char
, you get into compiler errors because of the C++ type. We should escape them instead.
It appears that there is a variable in the UE4 c++, GEngine
, which is an instance of UEngine
, that exists at a global level. Is it possible to create externs for global variables? How would I achieve this in Haxe? I know that "untyped" works for the javascript target, but I'd imagine that would be ill-advised for c++. Thoughts?
Consider the following code:
var uncompressedBGRA:Ref<Const<TArray< UInt8 >>> = Ref.fromStruct(TArray.create(new TypeParam< UInt8 >()));
var data = uncompressedBGRA.get();
This gives the following compiler error:
./src/nx/NXTest.cpp(140): error C2227: left of '->__Field' must point to class/struct/union/generic type
./src/nx/NXTest.cpp(140): note: type is 'unreal::UIntPtr'
Generated cpp code:
unreal::VariantPtr uncA = ( ( unreal::VariantPtr)(uncompressedBGRA->_Field(HX("getStruct",8b,c3,8f,8d),hx::paccDynamic)((int)0)) );
I've been working on this for several hours but having lots of problems and cant find clear docs on this. Tried to setup the platformer, but when I tried opening unreal it tired to compiled several DLLs, but then it said it could not compile and I should compile manually.
So I tried the ant build method but kept getting errors. The last of which was this;
E:\Unreal Projects\PlatformerGame>ant build
Buildfile: E:\Unreal Projects\PlatformerGame\build.xml
init-plugin:
BUILD FAILED
E:\Unreal Projects\PlatformerGame\build.xml:134: Execute failed: java.io.IOException: Cannot run program "E:\Unreal Projects\PlatformerGame\haxe" (in directory "E:\Unreal Projects\PlatformerGame\Plugins\UnrealHx"): CreateProcess error=5, Access is denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:426)
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:440)
at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:629)
etc...
I've tried several things over the hours but nothing has worked.
I also tried setting up unreal.hx in unreal, but the instructions are unclear to me;
Port your main Build.cs module to Build.hx and make sure it extends HaxeModuleRules
not sure how to do this step.
Is there anything more? a video showing steps?
The wiki has an article on declaring delegates, but then how would I assign a function to the new delegate? Or an existing one?
I try to launch game for HTML5 and Android targets, but compilation is fail with error:
LogPlayLevel: UnrealBuildTool: In file included from E:\sp2\unreal\unreal_project\Source\GameProjectHaxe\Generated\Private\uhx\glues\AActor_Glue.cpp:25: LogPlayLevel: UnrealBuildTool: In file included from E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/../GameProjectHaxe/Generated/Public/uhx/glues/AActor_Glue.h:15: LogPlayLevel: UnrealBuildTool: E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/Generated/Shared\VariantPtr.h(25,10) : error: constructor cannot be redeclared LogPlayLevel: UnrealBuildTool: inline VariantPtr(int inRHS) : raw((UIntPtr) inRHS) { } LogPlayLevel: UnrealBuildTool: ^ LogPlayLevel: UnrealBuildTool: E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/Generated/Shared\VariantPtr.h(23,10) : note: previous declaration is here LogPlayLevel: UnrealBuildTool: inline VariantPtr(IntPtr inRHS) : raw((UIntPtr) inRHS) { } LogPlayLevel: UnrealBuildTool: ^ LogPlayLevel: UnrealBuildTool: E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/Generated/Shared\VariantPtr.h(25,10) : error: redefinition of 'VariantPtr' LogPlayLevel: UnrealBuildTool: inline VariantPtr(int inRHS) : raw((UIntPtr) inRHS) { } LogPlayLevel: UnrealBuildTool: ^ LogPlayLevel: UnrealBuildTool: E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/Generated/Shared\VariantPtr.h(23,10) : note: previous definition is here LogPlayLevel: UnrealBuildTool: inline VariantPtr(IntPtr inRHS) : raw((UIntPtr) inRHS) { } LogPlayLevel: UnrealBuildTool: ^ LogPlayLevel: UnrealBuildTool: 2 errors generated.
Trying to get the 4.14 branch working but running into errors.
(Other projects not using unreal.hx compiles normaly)
Is 4.14 support working at this point?
Setup:
Windows 10
Visual Studio 2015
Unreal4.13.3-Release
Haxe 3.3.0-rc1
Hxcs 3.4.0
Hxcpp 3.4.49 (also tried 3.3.49, 3.4.2)
Unreal.hx [ue4.14 branch] ad65c5f8c66387a294e55cae425cb9e7177780cf
Performing 6 actions (4 in parallel)
Module.UnrealHxTest4.1_of_8.cpp
Module.UnrealHxTest4.6_of_8.cpp
Module.UnrealHxTest4.2_of_8.cpp
Module.UnrealHxTest4.7_of_8.cpp
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): error C2065: 'DBM_PostLighting': undeclared identifier
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): error C2131: expression did not evaluate to a constant
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): note: failure was caused by non-constant arguments or reference to a non-constant symbol
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): note: see usage of 'DBM_PostLighting'
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): error C2051: case expression not constant
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(103): error C2065: 'DBM_PostLighting': undeclared identifier
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\ULocalPlayer_Glue.cpp(38): fatal error C1083: Cannot open include file: 'OnlineSubsystemTypes.h': No such file or directory Module.UnrealHxTest4.5_of_8.cpp
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\AGameModeBase_Glue.cpp(324): error C2568: '->*': unable to resolve function overload
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\AGameModeBase_Glue.cpp(324): note: could be 'FString AGameModeBase::InitNewPlayer(APlayerController *,const TSharedPtr<const FUniqueNetId,0> &,const FString &,const FString &)'
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\AGameModeBase_Glue.cpp(324): note: or 'FString AGameModeBase::InitNewPlayer(APlayerController *,const FUniqueNetIdRepl &,const FString &,const FString &)'
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\IOnlinePlatformData_Glue.cpp(26): fatal error C1083: Cannot open include file: 'OnlineSubsystemTypes.h': No such file or directory
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\UInputComponent_Glue.cpp(47): error C2664: 'FInputActionBinding &UInputComponent::GetActionBinding(const int32)': cannot convert argument 1 from 'FName' to 'const int32'
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\UInputComponent_Glue.cpp(47): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
ERROR : UBT error : Failed to produce item: G:\Unreal\projects\UnrealHxTest4\Binaries\Win64\UE4Editor-UnrealHxTest4.pdb
I was playing with 'PlatformerGame' example lately, before there was an effort to use 'haxefield' Unreal project of my own. In both cases i failed to see the AActor - subclasses (from Haxe/Scripts dir) to be hot deployed to Unreal editor (Class view), though glue code was generated and gen-build-script.hxml succeded.
In logs there were only traces from UnrealCppia and company.
If anybody can help to clarify this behaviour - is it OK or need some more tweaks and details for setup ? Do i need full static recompile to see new classes in Editor ?
Hello !
I am actually trying to setup my first Haxe project with Unreal Engine, since one week, but I still encounter the same issue : "UE4Editor-HaxeInit.dll missing or built with different engine version".
It freeze totally the execution by the impossibility to finish the compilation.
I've try on version 4.10.1 first, but I've seen that the plugin was made for 4.8.0, so I've installed the 4.8.3, because it was the only 4.8 version available for the download.
So, how can I solve that ?
Hello, I'm porting the FPS HUD to Haxe, and have run into a few issues:
Should I be approaching HUD rendering another way?
I'm getting the following error while trying to instantiate a USplineComponent. It compiles fine, but when I run the editor, I get this error:
Error while loading cppia:Bad link
Unknown static call to
uhx.glues.ESplineCoordinateSpace_Glue::ueToHaxe (0)
in unreal.EsplineCoordinateSpace_EnumConv::000000F511CCA340
CallStatic at unreal/EsplineCoordinateSpace.hx:42 ueToHaxe
Any clue what's going on?
I am new to haxe, and I notice unreal.hx few weeks ago.
I think it's awesome and hope to study in depth.
I notice there is a vscode extension hxcpp-vscode-debugger that can debug the haxe code, after some study it works with the static part of unreal.hx code, but not the script part.
Is there any way for me to use the hxcpp-debugger with the script part?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.