mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
Clang and clang standard library is now default for all Android builds, c++14 enable by default for Android and minor improvments in code.
git-svn-id: svn://ultimatepp.org/upp/trunk@10568 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
12b26fc6aa
commit
b8a3ea0c8d
8 changed files with 146 additions and 136 deletions
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
namespace Upp {
|
||||
|
||||
static const String TOOLCHAIN_CLANG = "clang";
|
||||
|
||||
String AndroidNDK::GetDownloadUrl()
|
||||
{
|
||||
return "https://developer.android.com/ndk/downloads/index.html";
|
||||
|
|
@ -43,15 +45,20 @@ String AndroidNDK::FindDefaultPlatform() const
|
|||
|
||||
String AndroidNDK::FindDefaultToolchain() const
|
||||
{
|
||||
Vector<String> toolchains = FindToolchains();
|
||||
Sort(toolchains, StdGreater<String>());
|
||||
Index<String> toolchains(FindToolchains());
|
||||
|
||||
return toolchains[toolchains.GetCount() - 1];
|
||||
int clangIdx = toolchains.Find(TOOLCHAIN_CLANG);
|
||||
if (clangIdx >= 0) {
|
||||
return toolchains[clangIdx];
|
||||
}
|
||||
|
||||
SortIndex(toolchains, StdGreater<String>());
|
||||
return !toolchains.IsEmpty() ? toolchains[toolchains.GetCount()] : "";
|
||||
}
|
||||
|
||||
String AndroidNDK::FindDefaultCppRuntime() const
|
||||
{
|
||||
return "gnustl_shared";
|
||||
return "c++_shared";
|
||||
}
|
||||
|
||||
Vector<String> AndroidNDK::FindPlatforms() const
|
||||
|
|
@ -74,7 +81,7 @@ Vector<String> AndroidNDK::FindToolchains() const
|
|||
if(!ff.IsHidden() && ff.IsFolder()) {
|
||||
String name = ff.GetName();
|
||||
if(name.StartsWith("llvm")) {
|
||||
toolchains.Add("clang");
|
||||
toolchains.Add(TOOLCHAIN_CLANG);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -152,7 +159,7 @@ String AndroidNDK::GetCppIncludeDir(const String& cppRuntime) const
|
|||
}
|
||||
else
|
||||
if(cppRuntime.StartsWith("c++")) {
|
||||
return nest + "llvm-libc++" + DIR_SEPS + "libcxx" + DIR_SEPS + "include";
|
||||
return nest + "llvm-libc++" + DIR_SEPS + "include";
|
||||
}
|
||||
|
||||
return "";
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ bool AndroidBuilder::BuildPackage(
|
|||
compileCmd << (HasFlag("DEBUG") ? " -g" : " -g:none");
|
||||
compileCmd << " -d "<< project.GetClassesDir();
|
||||
compileCmd << " -classpath ";
|
||||
compileCmd << NormalizeExePath(androidSDK.AndroidJarPath()) << Java::GetDelimiter();
|
||||
compileCmd << NormalizeExePath(sdk.AndroidJarPath()) << Java::GetDelimiter();
|
||||
compileCmd << project.GetBuildDir();
|
||||
compileCmd << " -sourcepath ";
|
||||
compileCmd << javaSourcesDir << " ";
|
||||
|
|
@ -265,7 +265,7 @@ bool AndroidBuilder::Link(
|
|||
|
||||
// Now, we are going to start compiling c/c++ sources
|
||||
if(DirectoryExists(project.GetJniDir())) {
|
||||
if(!androidNDK.Validate()) {
|
||||
if(!ndk.Validate()) {
|
||||
PutErrorOnConsole("Android NDK was not detected");
|
||||
return false;
|
||||
}
|
||||
|
|
@ -277,7 +277,7 @@ bool AndroidBuilder::Link(
|
|||
GenerateApplicationMakeFile();
|
||||
GenerateMakeFile();
|
||||
|
||||
NDKBuild ndkBuild(androidNDK.GetNdkBuildPath());
|
||||
NDKBuild ndkBuild(ndk.GetNdkBuildPath());
|
||||
ndkBuild.SetWorkingDir(project.GetDir());
|
||||
ndkBuild.SetJobs(GetHydraThreads());
|
||||
if(Execute(ndkBuild.MakeCmd(), ss) != 0 ) {
|
||||
|
|
@ -291,7 +291,7 @@ bool AndroidBuilder::Link(
|
|||
PutConsole("-----");
|
||||
PutConsole("Creating dex file...");
|
||||
String dxCmd;
|
||||
dxCmd << NormalizeExePath(androidSDK.DxPath());
|
||||
dxCmd << NormalizeExePath(sdk.DxPath());
|
||||
dxCmd << " --dex ";
|
||||
dxCmd << "--output=" << project.GetBinDir() << DIR_SEPS << "classes.dex ";
|
||||
dxCmd << project.GetClassesDir();
|
||||
|
|
@ -306,12 +306,12 @@ bool AndroidBuilder::Link(
|
|||
String unsignedApkPath = GetSandboxDir() + DIR_SEPS + GetFileTitle(target) + ".unsigned.apk";
|
||||
DeleteFile(unsignedApkPath);
|
||||
String apkCmd;
|
||||
apkCmd << NormalizeExePath(androidSDK.AaptPath());
|
||||
apkCmd << NormalizeExePath(sdk.AaptPath());
|
||||
apkCmd << " package -v -f";
|
||||
if(DirectoryExists(project.GetResDir()))
|
||||
apkCmd << " -S " << project.GetResDir();
|
||||
apkCmd << " -M " << project.GetManifestPath();
|
||||
apkCmd << " -I " << NormalizeExePath(androidSDK.AndroidJarPath());
|
||||
apkCmd << " -I " << NormalizeExePath(sdk.AndroidJarPath());
|
||||
apkCmd << " -F " << unsignedApkPath;
|
||||
apkCmd << " " << project.GetBinDir();
|
||||
// PutConsole(apkCmd);
|
||||
|
|
@ -426,8 +426,7 @@ void AndroidBuilder::DeleteUnusedSourceFiles(
|
|||
Index<String> extsIdx = Index<String>(Split(exts, ","));
|
||||
Index<String> excludedFilesIdx = Index<String>(Split(excludedFiles, ","));
|
||||
|
||||
Vector<String> dirs;
|
||||
dirs.Add(nest);
|
||||
Vector<String> dirs { nest };
|
||||
for(int i = 0; i < dirs.GetCount(); i++) {
|
||||
for(FindFile ff(AppendFileName(dirs[i], "*")); ff; ff.Next()) {
|
||||
if(ff.IsHidden()) {
|
||||
|
|
@ -526,7 +525,7 @@ bool AndroidBuilder::SignApk(const String& target, const String& unsignedApkPath
|
|||
PutConsole("Aliging apk file...");
|
||||
DeleteFile(target);
|
||||
String zipalignCmd;
|
||||
zipalignCmd << NormalizeExePath(androidSDK.ZipalignPath());
|
||||
zipalignCmd << NormalizeExePath(sdk.ZipalignPath());
|
||||
zipalignCmd << " -f 4 ";
|
||||
zipalignCmd << (HasFlag("DEBUG") ? signedApkPath : unsignedApkPath) << " ";
|
||||
zipalignCmd << target;
|
||||
|
|
@ -590,7 +589,7 @@ bool AndroidBuilder::AddSharedLibsToApk(const String& apkPath)
|
|||
|
||||
ChDir(project.GetDir());
|
||||
String aaptAddCmd;
|
||||
aaptAddCmd << NormalizeExePath(androidSDK.AaptPath());
|
||||
aaptAddCmd << NormalizeExePath(sdk.AaptPath());
|
||||
aaptAddCmd << " add " << apkPath;
|
||||
for(int i = 0; i < sharedLibsToAdd.GetCount(); i++)
|
||||
aaptAddCmd << " " << sharedLibsToAdd[i];
|
||||
|
|
@ -608,15 +607,15 @@ bool AndroidBuilder::AddSharedLibsToApk(const String& apkPath)
|
|||
|
||||
bool AndroidBuilder::ValidateBuilderEnviorement()
|
||||
{
|
||||
if(!androidSDK.Validate()) {
|
||||
if(!sdk.Validate()) {
|
||||
PutErrorOnConsole("Android SDK was not detected");
|
||||
return false;
|
||||
}
|
||||
if(!androidSDK.ValidateBuildTools()) {
|
||||
if(!sdk.ValidateBuildTools()) {
|
||||
PutErrorOnConsole("Android SDK build tools was not detected");
|
||||
return false;
|
||||
}
|
||||
if(!androidSDK.ValidatePlatform()) {
|
||||
if(!sdk.ValidatePlatform()) {
|
||||
PutErrorOnConsole("Android SDK platform was not detected");
|
||||
return false;
|
||||
}
|
||||
|
|
@ -649,7 +648,7 @@ void AndroidBuilder::UpdateFile(const String& path, const String& data)
|
|||
void AndroidBuilder::GenerateApplicationMakeFile()
|
||||
{
|
||||
AndroidApplicationMakeFile makeFile;
|
||||
makeFile.SetPlatform(androidSDK.GetPlatform());
|
||||
makeFile.SetPlatform(sdk.GetPlatform());
|
||||
makeFile.SetArchitectures(ndkArchitectures);
|
||||
makeFile.SetCppRuntime(ndkCppRuntime);
|
||||
makeFile.SetCppFlags(ndkCppFlags);
|
||||
|
|
@ -713,12 +712,12 @@ bool AndroidBuilder::GenerateRFile()
|
|||
if(DirectoryExists(project.GetResDir())) {
|
||||
StringStream ss;
|
||||
String aaptCmd;
|
||||
aaptCmd << NormalizeExePath(androidSDK.AaptPath());
|
||||
aaptCmd << NormalizeExePath(sdk.AaptPath());
|
||||
aaptCmd << " package -v -f -m";
|
||||
aaptCmd << " -S " << project.GetResDir();
|
||||
aaptCmd << " -J " << project.GetJavaDir();
|
||||
aaptCmd << " -M " << project.GetManifestPath();
|
||||
aaptCmd << " -I " << NormalizeExePath(androidSDK.AndroidJarPath());
|
||||
aaptCmd << " -I " << NormalizeExePath(sdk.AndroidJarPath());
|
||||
|
||||
if(Execute(aaptCmd, ss) != 0) {
|
||||
PutConsole(ss.GetResult());
|
||||
|
|
@ -749,7 +748,7 @@ bool AndroidBuilder::PreprocessJava(const String& package, const String& file, c
|
|||
compileCmd << NormalizeExePath(jdk.GetJavacPath());
|
||||
compileCmd << " -d "<< classesDir;
|
||||
compileCmd << " -classpath ";
|
||||
compileCmd << NormalizeExePath(androidSDK.AndroidJarPath()) << Java::GetDelimiter();
|
||||
compileCmd << NormalizeExePath(sdk.AndroidJarPath()) << Java::GetDelimiter();
|
||||
compileCmd << project.GetBuildDir();
|
||||
compileCmd << " -sourcepath " << project.GetJavaDir();
|
||||
compileCmd << " " << file;
|
||||
|
|
@ -788,7 +787,7 @@ bool AndroidBuilder::PreprocessJava(const String& package, const String& file, c
|
|||
javahCmd << NormalizeExePath(jdk.GetJavahPath());
|
||||
javahCmd << " -classpath ";
|
||||
javahCmd << classesDir << Java::GetDelimiter();
|
||||
javahCmd << NormalizeExePath(androidSDK.AndroidJarPath()) << Java::GetDelimiter();
|
||||
javahCmd << NormalizeExePath(sdk.AndroidJarPath()) << Java::GetDelimiter();
|
||||
javahCmd << project.GetBuildDir();
|
||||
javahCmd << " -o " << target;
|
||||
javahCmd << " " << className;
|
||||
|
|
|
|||
|
|
@ -4,9 +4,101 @@
|
|||
#include "Android.h"
|
||||
|
||||
#include <ide/Core/Core.h>
|
||||
#include <ide/Android/Android.h>
|
||||
#include <ide/Java/Java.h>
|
||||
|
||||
namespace Upp {
|
||||
|
||||
class AndroidBuilder : public Builder {
|
||||
public:
|
||||
AndroidSDK sdk;
|
||||
AndroidNDK ndk;
|
||||
Jdk jdk;
|
||||
|
||||
bool ndk_blitz;
|
||||
Vector<String> ndkArchitectures;
|
||||
String ndkToolchain;
|
||||
String ndkCppRuntime;
|
||||
String ndkCppFlags;
|
||||
String ndkCFlags;
|
||||
|
||||
public:
|
||||
static Index<String> GetBuildersNames();
|
||||
|
||||
public:
|
||||
AndroidBuilder();
|
||||
|
||||
virtual String GetTargetExt() const override;
|
||||
virtual bool BuildPackage(
|
||||
const String& packageName,
|
||||
Vector<String>& linkfile,
|
||||
Vector<String>& immfile,
|
||||
String& linkoptions,
|
||||
const Vector<String>& all_uses,
|
||||
const Vector<String>& all_libraries,
|
||||
int optimize) override;
|
||||
virtual bool Link(
|
||||
const Vector<String>& linkfile, const String& linkoptions, bool createmap) override;
|
||||
virtual bool Preprocess(
|
||||
const String& package,
|
||||
const String& file,
|
||||
const String& target,
|
||||
bool asmout) override;
|
||||
virtual void CleanPackage(const String& package, const String& outdir) override;
|
||||
virtual void AfterClean() override;
|
||||
|
||||
protected:
|
||||
void ManageProjectCohesion();
|
||||
void DetectAndManageUnusedPackages(const String& nest, const Index<String>& packages);
|
||||
void DeleteUnusedSourceFiles(
|
||||
const String& nest,
|
||||
const Vector<String>& files,
|
||||
String exts,
|
||||
String excludedFiles = "");
|
||||
bool MovePackageFileToAndroidProject(const String& src, const String& dest);
|
||||
bool RealizePackageJavaSourcesDirectory(const String& packageName);
|
||||
bool RealizeLinkDirectories() const;
|
||||
|
||||
protected:
|
||||
bool FileNeedsUpdate(const String& path, const String& data);
|
||||
void UpdateFile(const String& path, const String& data);
|
||||
void GenerateApplicationMakeFile();
|
||||
void GenerateMakeFile();
|
||||
bool GenerateRFile();
|
||||
|
||||
protected:
|
||||
bool ValidateBuilderEnviorement();
|
||||
void PutErrorOnConsole(const String& msg);
|
||||
|
||||
bool SignApk(const String& target, const String& unsignedApkPath);
|
||||
bool GenerateDebugKey(const String& keystorePath);
|
||||
|
||||
bool AddSharedLibsToApk(const String& apkPath);
|
||||
bool PreprocessJava(const String& package, const String& file, const String& target);
|
||||
|
||||
protected:
|
||||
String GetFilePathInAndroidProject(
|
||||
const String& nestDir,
|
||||
const String& packageName,
|
||||
const String& fileName) const;
|
||||
|
||||
String RemoveDirNameFromFileName(String fileName) const;
|
||||
String NormalizeModuleName(String moduleName) const;
|
||||
|
||||
String GetModuleMakeFilePath(const String& packageName);
|
||||
|
||||
private:
|
||||
void InitProject();
|
||||
String GetSandboxDir() const;
|
||||
|
||||
private:
|
||||
AndroidProject project;
|
||||
const Workspace& wspc;
|
||||
|
||||
private:
|
||||
static const String RES_PKG_FLAG;
|
||||
};
|
||||
|
||||
class AndroidBuilderUtils final {
|
||||
public:
|
||||
AndroidBuilderUtils() = delete;
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ AndroidModuleMakeFileCreator::AndroidModuleMakeFileCreator(const Index<String>&
|
|||
|
||||
void AndroidModuleMakeFileCreator::AddSources(Vector<String>& sources)
|
||||
{
|
||||
for(int i = 0; i < sources.GetCount(); ++i) {
|
||||
makeFile.AddSourceFile(sources[i]);
|
||||
for(const String& source : sources) {
|
||||
makeFile.AddSourceFile(source);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -43,38 +43,38 @@ void AndroidModuleMakeFileCreator::AddIncludeWithSubdirs(const String& path)
|
|||
|
||||
void AndroidModuleMakeFileCreator::AddIncludes(const Array<OptItem>& uses)
|
||||
{
|
||||
for(int i = 0; i < uses.GetCount(); ++i) {
|
||||
makeFile.AddInclude(AndroidBuilderUtils::GetAssemblyDir(uses[i].text));
|
||||
for(const OptItem& use : uses) {
|
||||
makeFile.AddInclude(AndroidBuilderUtils::GetAssemblyDir(use.text));
|
||||
}
|
||||
}
|
||||
|
||||
void AndroidModuleMakeFileCreator::AddFlags(const Array<OptItem>& flags)
|
||||
{
|
||||
for(int i = 0; i < flags.GetCount(); ++i) {
|
||||
makeFile.AddCppFlag(flags[i].text);
|
||||
for(const OptItem& flag : flags) {
|
||||
makeFile.AddCppFlag(flag.text);
|
||||
}
|
||||
}
|
||||
|
||||
void AndroidModuleMakeFileCreator::AddLdLibraries(const Array<OptItem>& libraries)
|
||||
{
|
||||
Vector<String> libs = Split(Gather(libraries, config.GetKeys()), ' ');
|
||||
for(int i = 0; i < libs.GetCount(); ++i) {
|
||||
makeFile.AddLdLibrary(libs[i]);
|
||||
for(const String& lib : libs) {
|
||||
makeFile.AddLdLibrary(lib);
|
||||
}
|
||||
}
|
||||
|
||||
void AndroidModuleMakeFileCreator::AddStaticModuleLibrary(Array<OptItem>& staticLibraries)
|
||||
{
|
||||
Vector<String> slibs = Split(Gather(staticLibraries, config.GetKeys()), ' ');
|
||||
for(int i = 0; i < slibs.GetCount(); ++i) {
|
||||
makeFile.AddStaticModuleLibrary(slibs[i]);
|
||||
for(const String& slib : slibs) {
|
||||
makeFile.AddStaticModuleLibrary(slib);
|
||||
}
|
||||
}
|
||||
|
||||
void AndroidModuleMakeFileCreator::AddSharedLibraries(const Array<OptItem>& uses)
|
||||
{
|
||||
for(int i = 0; i < uses.GetCount(); i++) {
|
||||
makeFile.AddSharedLibrary(uses[i].text);
|
||||
for(const OptItem& use : uses) {
|
||||
makeFile.AddSharedLibrary(use.text);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "Builders.h"
|
||||
#include "AndroidBuilder.h"
|
||||
|
||||
#include <plugin/bz2/bz2.h>
|
||||
|
||||
|
|
@ -135,20 +136,20 @@ One<Builder> MakeBuild::CreateBuilder(Host *host)
|
|||
b->script = bm.Get("SCRIPT", "");
|
||||
if(AndroidBuilder::GetBuildersNames().Find(builder) > -1) {
|
||||
AndroidBuilder* ab = dynamic_cast<AndroidBuilder*>(b);
|
||||
ab->androidSDK.SetPath((bm.Get("SDK_PATH", "")));
|
||||
ab->androidNDK.SetPath((bm.Get("NDK_PATH", "")));
|
||||
ab->sdk.SetPath((bm.Get("SDK_PATH", "")));
|
||||
ab->ndk.SetPath((bm.Get("NDK_PATH", "")));
|
||||
ab->jdk.SetPath((bm.Get("JDK_PATH", "")));
|
||||
|
||||
String platformVersion = bm.Get("SDK_PLATFORM_VERSION", "");
|
||||
if(!platformVersion.IsEmpty())
|
||||
ab->androidSDK.SetPlatform(platformVersion);
|
||||
ab->sdk.SetPlatform(platformVersion);
|
||||
else
|
||||
ab->androidSDK.DeducePlatform();
|
||||
ab->sdk.DeducePlatform();
|
||||
String buildToolsRelease = bm.Get("SDK_BUILD_TOOLS_RELEASE", "");
|
||||
if(!buildToolsRelease.IsEmpty())
|
||||
ab->androidSDK.SetBuildToolsRelease(buildToolsRelease);
|
||||
ab->sdk.SetBuildToolsRelease(buildToolsRelease);
|
||||
else
|
||||
ab->androidSDK.DeduceBuildToolsRelease();
|
||||
ab->sdk.DeduceBuildToolsRelease();
|
||||
|
||||
ab->ndk_blitz = bm.Get("NDK_BLITZ", "") == "1";
|
||||
if(bm.Get("NDK_ARCH_ARMEABI", "") == "1")
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@
|
|||
#define BUILDERS_H
|
||||
|
||||
#include <ide/Core/Core.h>
|
||||
#include <ide/Android/Android.h>
|
||||
#include <ide/Java/Java.h>
|
||||
#include <plugin/bz2/bz2.h>
|
||||
|
||||
#include "Android.h"
|
||||
|
|
@ -159,96 +157,6 @@ private:
|
|||
bool script_error;
|
||||
};
|
||||
|
||||
class AndroidBuilder : public Builder {
|
||||
public:
|
||||
AndroidSDK androidSDK;
|
||||
AndroidNDK androidNDK;
|
||||
Jdk jdk;
|
||||
|
||||
bool ndk_blitz;
|
||||
Vector<String> ndkArchitectures;
|
||||
String ndkToolchain;
|
||||
String ndkCppRuntime;
|
||||
String ndkCppFlags;
|
||||
String ndkCFlags;
|
||||
|
||||
public:
|
||||
static Index<String> GetBuildersNames();
|
||||
|
||||
public:
|
||||
AndroidBuilder();
|
||||
|
||||
virtual String GetTargetExt() const override;
|
||||
virtual bool BuildPackage(
|
||||
const String& packageName,
|
||||
Vector<String>& linkfile,
|
||||
Vector<String>& immfile,
|
||||
String& linkoptions,
|
||||
const Vector<String>& all_uses,
|
||||
const Vector<String>& all_libraries,
|
||||
int optimize) override;
|
||||
virtual bool Link(
|
||||
const Vector<String>& linkfile, const String& linkoptions, bool createmap) override;
|
||||
virtual bool Preprocess(
|
||||
const String& package,
|
||||
const String& file,
|
||||
const String& target,
|
||||
bool asmout) override;
|
||||
virtual void CleanPackage(const String& package, const String& outdir) override;
|
||||
virtual void AfterClean() override;
|
||||
|
||||
protected:
|
||||
void ManageProjectCohesion();
|
||||
void DetectAndManageUnusedPackages(const String& nest, const Index<String>& packages);
|
||||
void DeleteUnusedSourceFiles(
|
||||
const String& nest,
|
||||
const Vector<String>& files,
|
||||
String exts,
|
||||
String excludedFiles = "");
|
||||
bool MovePackageFileToAndroidProject(const String& src, const String& dest);
|
||||
bool RealizePackageJavaSourcesDirectory(const String& packageName);
|
||||
bool RealizeLinkDirectories() const;
|
||||
|
||||
protected:
|
||||
bool FileNeedsUpdate(const String& path, const String& data);
|
||||
void UpdateFile(const String& path, const String& data);
|
||||
void GenerateApplicationMakeFile();
|
||||
void GenerateMakeFile();
|
||||
bool GenerateRFile();
|
||||
|
||||
protected:
|
||||
bool ValidateBuilderEnviorement();
|
||||
void PutErrorOnConsole(const String& msg);
|
||||
|
||||
bool SignApk(const String& target, const String& unsignedApkPath);
|
||||
bool GenerateDebugKey(const String& keystorePath);
|
||||
|
||||
bool AddSharedLibsToApk(const String& apkPath);
|
||||
bool PreprocessJava(const String& package, const String& file, const String& target);
|
||||
|
||||
protected:
|
||||
String GetFilePathInAndroidProject(
|
||||
const String& nestDir,
|
||||
const String& packageName,
|
||||
const String& fileName) const;
|
||||
|
||||
String RemoveDirNameFromFileName(String fileName) const;
|
||||
String NormalizeModuleName(String moduleName) const;
|
||||
|
||||
String GetModuleMakeFilePath(const String& packageName);
|
||||
|
||||
private:
|
||||
void InitProject();
|
||||
String GetSandboxDir() const;
|
||||
|
||||
private:
|
||||
AndroidProject project;
|
||||
const Workspace& wspc;
|
||||
|
||||
private:
|
||||
static const String RES_PKG_FLAG;
|
||||
};
|
||||
|
||||
void DeletePCHFile(const String& pch_file);
|
||||
|
||||
INITIALIZE(GccBuilder)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ file
|
|||
GccBuilder.cpp,
|
||||
MscBuilder.cpp,
|
||||
JavaBuilder.cpp,
|
||||
AndroidBuilder.cpp,
|
||||
ScriptBuilder.cpp,
|
||||
Android readonly separator,
|
||||
Android.h,
|
||||
|
|
@ -27,6 +26,7 @@ file
|
|||
AndroidModuleMakeFile.cpp,
|
||||
"Android Builder" readonly separator,
|
||||
AndroidBuilder.h,
|
||||
AndroidBuilder.cpp,
|
||||
AndroidBuilderUtils.cpp,
|
||||
AndroidModuleMakeFileBuilder.cpp,
|
||||
Components readonly separator,
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
#include <ide/Builders/AndroidBuilder.h>
|
||||
|
||||
#include "Methods.h"
|
||||
|
||||
void DirTable::SetData(const Value& data)
|
||||
|
|
@ -256,7 +258,7 @@ void AndroidBuilderSetup::OnNdkPathChange0(const String& ndkPath)
|
|||
ndk_arch_armeabi.Set(1);
|
||||
ndk_arch_armeabi_v7a.Set(1);
|
||||
ndk_arch_arm64_v8a.Set(1);
|
||||
ndk_common_cpp_options.SetData("-std=c++14 -fexceptions -frtti");
|
||||
ndk_common_cpp_options.SetData("-std=c++14 -fexceptions -frtti -Wno-logical-op-parentheses");
|
||||
}
|
||||
else
|
||||
ClearNdkCtrls();
|
||||
|
|
@ -889,6 +891,7 @@ 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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue