From 9a0cf7c77c8f4df83ff76d00192531e5e060af74 Mon Sep 17 00:00:00 2001 From: cxl Date: Thu, 22 Oct 2015 18:55:43 +0000 Subject: [PATCH] ide: adding mingw64 git-svn-id: svn://ultimatepp.org/upp/trunk@9066 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/SSL/SSL.upp | 4 +--- uppsrc/ide/Builders/GccBuilder.icpp | 4 ++-- uppsrc/ide/InstantSetup.cpp | 29 ++++++++++++++++++----------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/uppsrc/Core/SSL/SSL.upp b/uppsrc/Core/SSL/SSL.upp index 17137bd41..59c7f6aad 100644 --- a/uppsrc/Core/SSL/SSL.upp +++ b/uppsrc/Core/SSL/SSL.upp @@ -10,9 +10,7 @@ library(WIN32 MSC SHARED !DEBUG) "libeay32MD ssleay32MD"; library(WIN32 MSC SHARED DEBUG) "libeay32MDd ssleay32MDd"; -library(WIN32) gdi32; - -library(WIN32 GCC) "libeay32.a ssleay32.a"; +library(WIN32 GCC) "ssl crypto"; link(WIN32 MSC SO) /nodefaultlib:libc; diff --git a/uppsrc/ide/Builders/GccBuilder.icpp b/uppsrc/ide/Builders/GccBuilder.icpp index 7bb0a0690..9f41eb085 100644 --- a/uppsrc/ide/Builders/GccBuilder.icpp +++ b/uppsrc/ide/Builders/GccBuilder.icpp @@ -519,8 +519,6 @@ bool GccBuilder::Link(const Vector& linkfile, const String& linkoptions, if(!HasFlag("SOLARIS") && !HasFlag("OSX11") && !HasFlag("OBJC")) lnk << " -Wl,--start-group "; for(int pass = 0; pass < 2; pass++) { - if(pass == 1 && !HasFlag("SOLARIS") && !HasFlag("OSX11")) - lnk << " -Wl,--end-group"; for(i = 0; i < lib.GetCount(); i++) { String ln = lib[i]; String ext = ToLower(GetFileExt(ln)); @@ -550,6 +548,8 @@ bool GccBuilder::Link(const Vector& linkfile, const String& linkoptions, lnk << " -l" << ln; } } + if(pass == 1 && !HasFlag("SOLARIS") && !HasFlag("OSX11")) + lnk << " -Wl,--end-group"; } PutConsole("Linking..."); bool error = false; diff --git a/uppsrc/ide/InstantSetup.cpp b/uppsrc/ide/InstantSetup.cpp index 7dd8c4d14..d76b66993 100644 --- a/uppsrc/ide/InstantSetup.cpp +++ b/uppsrc/ide/InstantSetup.cpp @@ -167,6 +167,7 @@ void InstantSetup() if(CheckDirs(bins, 2) && CheckDirs(incs, 4) && CheckDirs(libs, 3)) { if(!x64) default_method = "MSC15"; + continue; } @@ -228,8 +229,9 @@ void InstantSetup() } } - do { - String method = "MINGW32"; + for(int x64 = 0; x64 < 2; x64++) { + String m = x64 ? "64" : "32"; + String method = "MINGW" + m; #ifdef _DEBUG method << "Test"; #endif @@ -239,11 +241,14 @@ void InstantSetup() Vector incs = Split(bm.Get("INCLUDE", ""), ';'); Vector libs = Split(bm.Get("LIB", ""), ';'); if(CheckDirs(bins, 2) && CheckDirs(incs, 2) && CheckDirs(libs, 2)) { - default_method = Nvl(default_method, method); - break; + if(!x64) + default_method = Nvl(default_method, method); + continue; } String bin = GetExeDirFile("bin"); + if(!DirectoryExists(bin + "/mingw" + m)) + break; bmSet(bm, "BUILDER", "GCC"); bmSet(bm, "COMPILER", ""); @@ -267,20 +272,22 @@ void InstantSetup() bmSet(bm, "ALLOW_PRECOMPILED_HEADERS", "1"); // bmSet(bm, "LINKMODE_LOCK", "0"); - bins.At(0) = bin + "/mingw32/bin"; - bins.At(1) = bin + "/OpenSSL-Win32"; - incs.At(0) = bin + "/mingw32/i686-w64-mingw32/include"; - incs.At(1) = bin + "/OpenSSL-Win32/include"; - libs.At(0) = bin + "/mingw32/i686-w64-mingw32/lib"; - libs.At(1) = bin + "/OpenSSL-Win32/lib/MinGW"; + bins.At(0) = bin + "/mingw" + m + "/bin"; + bins.At(1) = bin + "/mingw" + m + "/opt/bin"; + incs.At(0) = bin + "/mingw" + m + "/i686-w64-mingw32/include"; + incs.At(1) = bin + "/mingw" + m + "/opt/include"; + libs.At(0) = bin + "/mingw" + m + "/i686-w64-mingw32/lib"; + libs.At(1) = bin + "/mingw" + m + "/opt/lib"; bm.GetAdd("PATH") = Join(bins, ";"); bm.GetAdd("INCLUDE") = Join(incs, ";"); bm.GetAdd("LIB") = Join(libs, ";"); SaveVarFile(ConfigFile(method + ".bm"), bm); + + if(!x64) + default_method = Nvl(default_method, method); } - while(0); if(default_method.GetCount()) SaveFile(GetExeDirFile("default_method"), default_method);