Merge pull request #1661 from tobil4sk/mingw-fixes-develop
Allow cross compiling Windows projects with MinGW
This commit is contained in:
@@ -32,9 +32,9 @@ import sys.io.Process;
|
|||||||
@:access(lime._internal.backend.native.NativeCFFI)
|
@:access(lime._internal.backend.native.NativeCFFI)
|
||||||
@:access(lime.system.Display)
|
@:access(lime.system.Display)
|
||||||
@:access(lime.system.DisplayMode)
|
@:access(lime.system.DisplayMode)
|
||||||
#if (cpp && windows && !HXCPP_MINGW && !lime_disable_gpu_hint)
|
#if (cpp && windows && !lime_disable_gpu_hint)
|
||||||
@:cppFileCode('
|
@:cppFileCode('
|
||||||
#if defined(HX_WINDOWS)
|
#if defined(HX_WINDOWS) && !defined(__MINGW32__)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
_declspec(dllexport) unsigned long NvOptimusEnablement = 0x00000001;
|
_declspec(dllexport) unsigned long NvOptimusEnablement = 0x00000001;
|
||||||
_declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
|
_declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ class ProjectXMLParser extends HXProject
|
|||||||
{
|
{
|
||||||
defines.set("native", "1");
|
defines.set("native", "1");
|
||||||
|
|
||||||
if (target == Platform.WINDOWS)
|
if (target == Platform.WINDOWS && targetFlags.exists("mingw"))
|
||||||
{
|
{
|
||||||
defines.set("targetType", "cpp");
|
defines.set("targetType", "cpp");
|
||||||
defines.set("cpp", "1");
|
defines.set("cpp", "1");
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class WindowsPlatform extends PlatformTarget
|
|||||||
{
|
{
|
||||||
targetType = "winjs";
|
targetType = "winjs";
|
||||||
}
|
}
|
||||||
else if (project.targetFlags.exists("neko") || project.target != cast System.hostPlatform)
|
else if (project.targetFlags.exists("neko"))
|
||||||
{
|
{
|
||||||
targetType = "neko";
|
targetType = "neko";
|
||||||
}
|
}
|
||||||
@@ -496,6 +496,24 @@ class WindowsPlatform extends PlatformTarget
|
|||||||
CPPHelper.compile(project, targetDirectory + "/obj", flags);
|
CPPHelper.compile(project, targetDirectory + "/obj", flags);
|
||||||
|
|
||||||
System.copyFile(targetDirectory + "/obj/ApplicationMain" + (project.debug ? "-debug" : "") + ".exe", executablePath);
|
System.copyFile(targetDirectory + "/obj/ApplicationMain" + (project.debug ? "-debug" : "") + ".exe", executablePath);
|
||||||
|
|
||||||
|
if (project.targetFlags.exists("mingw"))
|
||||||
|
{
|
||||||
|
var libraries = ["libwinpthread-1.dll", "libstdc++-6.dll"];
|
||||||
|
if (is64)
|
||||||
|
{
|
||||||
|
libraries.push("libgcc_s_seh-1.dll");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
libraries.push("libgcc_s_dw2-1.dll");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (library in libraries)
|
||||||
|
{
|
||||||
|
System.copyIfNewer(targetDirectory + "/obj/" + library, Path.combine(applicationDirectory, library));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user