From 217198331bba501ca1bb24b7e2ce553a50b5cc9a Mon Sep 17 00:00:00 2001 From: klugier Date: Sat, 28 Jan 2017 18:13:01 +0000 Subject: [PATCH] AndroidBuilder now doesn't undefine platform flags. git-svn-id: svn://ultimatepp.org/upp/trunk@10789 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ide/Builders/AndroidBuilder.cpp | 15 --------------- uppsrc/ide/Builders/Build.cpp | 2 +- uppsrc/ide/Core/Host.cpp | 24 ++++++++++++++++++------ uppsrc/ide/Core/Host.h | 6 +++++- uppsrc/ide/Methods.cpp | 1 - 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/uppsrc/ide/Builders/AndroidBuilder.cpp b/uppsrc/ide/Builders/AndroidBuilder.cpp index fc9ae098c..c54890af8 100644 --- a/uppsrc/ide/Builders/AndroidBuilder.cpp +++ b/uppsrc/ide/Builders/AndroidBuilder.cpp @@ -313,21 +313,6 @@ bool AndroidBuilder::Preprocess( void AndroidBuilder::AddFlags(Index& cfg) { - // TODO: Blood hack - should be remove after release. - // Talk with Mirek how to do it well - without over engineering. - // U++ is not ready for full cross compilation right now. - - cfg.RemoveKey("WIN32"); - cfg.RemoveKey("LINUX"); - cfg.RemoveKey("POSIX"); - cfg.RemoveKey("BSD"); - cfg.RemoveKey("FREEBSD"); - cfg.RemoveKey("OPENBSD"); - cfg.RemoveKey("NETBSD"); - cfg.RemoveKey("DRAGONFLY"); - cfg.RemoveKey("SOLARIS"); - cfg.RemoveKey("OSX11"); - cfg.Add("LINUX"); cfg.Add("POSIX"); cfg.Add("ANDROID"); diff --git a/uppsrc/ide/Builders/Build.cpp b/uppsrc/ide/Builders/Build.cpp index 0f47992df..2259fbf8c 100644 --- a/uppsrc/ide/Builders/Build.cpp +++ b/uppsrc/ide/Builders/Build.cpp @@ -54,8 +54,8 @@ Index MakeBuild::PackageConfig(const Workspace& wspc, int package, if(!pkg.noblitz && m.def.blitz && bm.Get("DISABLE_BLITZ", "") != "1") cfg.FindAdd("BLITZ"); } - host.AddFlags(cfg); b.AddFlags(cfg); + host.AddFlags(cfg); for(int i = 0; i < pkg.flag.GetCount(); i++) { if(MatchWhen(pkg.flag[i].when, cfg.GetKeys())) { Vector h = Split(pkg.flag[i].text, ' '); diff --git a/uppsrc/ide/Core/Host.cpp b/uppsrc/ide/Core/Host.cpp index e35b648d0..eb7fc0b44 100644 --- a/uppsrc/ide/Core/Host.cpp +++ b/uppsrc/ide/Core/Host.cpp @@ -315,12 +315,9 @@ void LocalHost::Launch(const char *_cmdline, bool console) void LocalHost::AddFlags(Index& cfg) { - // Allow to specify custom platform flags - for (const String& config : cfg) - if(findarg(config, "WIN32", "LINUX", "POSIX", "BSD", "FREEBSD", - "OPENBSD", "NETBSD", "DRAGONFLY", "SOLARIS", "OSX11") >= 0) - return; - + if(HasPlatformFlag(cfg)) + return; + #if defined(PLATFORM_WIN32) cfg.Add("WIN32"); #endif @@ -362,6 +359,21 @@ void LocalHost::AddFlags(Index& cfg) #endif } +bool LocalHost::HasPlatformFlag(const Index& cfg) +{ + static const Index platformFlags = { + "ANDROID", "WIN32", "LINUX", "POSIX", + "BSD", "FREEBSD", "OPENBSD", "NETBSD", + "DRAGONFLY", "SOLARIS", "OSX11" + }; + + for(const String& flag : cfg) + if(platformFlags.Find(flag) >= 0) + return true; + + return false; +} + #if 0 static bool IsSamePath(const char *a, const char *b, int count) { for(; --count >= 0; a++, b++) diff --git a/uppsrc/ide/Core/Host.h b/uppsrc/ide/Core/Host.h index 5a0ac990f..5c8e6737a 100644 --- a/uppsrc/ide/Core/Host.h +++ b/uppsrc/ide/Core/Host.h @@ -33,7 +33,8 @@ struct Host { virtual ~Host() {} }; -struct LocalHost : Host { +class LocalHost : public Host { +public: Vector exedirs; String environment; @@ -63,6 +64,9 @@ struct LocalHost : Host { virtual One StartProcess(const char *cmdline); virtual void Launch(const char *cmdline, bool console); virtual void AddFlags(Index& cfg); + +private: + bool HasPlatformFlag(const Index& cfg); }; /* diff --git a/uppsrc/ide/Methods.cpp b/uppsrc/ide/Methods.cpp index 89beeab32..9e09762db 100644 --- a/uppsrc/ide/Methods.cpp +++ b/uppsrc/ide/Methods.cpp @@ -891,7 +891,6 @@ String Ide::GetIncludePath() MergeWith(include, ";", ndk.GetIncludeDir()); String cppIncludeDir = ndk.GetCppIncludeDir(bm.Get("NDK_CPP_RUNTIME", "")); - Cout() << cppIncludeDir << "\n"; if(!cppIncludeDir.IsEmpty()) MergeWith(include, ";", cppIncludeDir); }