mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-11 23:54:18 +00:00
Fixed some bugs in LTO builds
This commit is contained in:
parent
98f8ee9e04
commit
f2261faee7
3 changed files with 24 additions and 8 deletions
|
|
@ -376,11 +376,6 @@ protected:
|
|||
{
|
||||
return "${ANDROID_ABI}";
|
||||
}
|
||||
|
||||
String getLinkerFlagsString() const
|
||||
{
|
||||
return String ("\"-DCMAKE_EXE_LINKER_FLAGS_") + (isDebug() ? "DEBUG" : "RELEASE") + "=-flto\"";
|
||||
}
|
||||
};
|
||||
|
||||
BuildConfiguration::Ptr createBuildConfig (const ValueTree& v) const override
|
||||
|
|
@ -476,6 +471,22 @@ private:
|
|||
mo << newLine;
|
||||
}
|
||||
|
||||
if (cfg.isLinkTimeOptimisationEnabled())
|
||||
{
|
||||
// There's no MIPS support for LTO
|
||||
String mipsCondition ("NOT (ANDROID_ABI STREQUAL \"mips\" OR ANDROID_ABI STREQUAL \"mips64\")");
|
||||
mo << " if(" << mipsCondition << ")" << newLine;
|
||||
StringArray cmakeVariables ("CMAKE_C_FLAGS", "CMAKE_CXX_FLAGS", "CMAKE_EXE_LINKER_FLAGS");
|
||||
|
||||
for (auto& variable : cmakeVariables)
|
||||
{
|
||||
auto configVariable = variable + "_" + cfg.getProductFlavourCMakeIdentifier();
|
||||
mo << " SET(" << configVariable << " \"${" << configVariable << "} -flto\")" << newLine;
|
||||
}
|
||||
|
||||
mo << " ENDIF(" << mipsCondition << ")" << newLine;
|
||||
}
|
||||
|
||||
first = false;
|
||||
}
|
||||
|
||||
|
|
@ -633,9 +644,8 @@ private:
|
|||
<< ", \"-DCMAKE_CXX_FLAGS_" << (cfg.isDebug() ? "DEBUG" : "RELEASE")
|
||||
<< "=-O" << cfg.getGCCOptimisationFlag() << "\""
|
||||
<< ", \"-DCMAKE_C_FLAGS_" << (cfg.isDebug() ? "DEBUG" : "RELEASE")
|
||||
<< "=-O" << cfg.getGCCOptimisationFlag() << "\""
|
||||
<< (cfg.isLinkTimeOptimisationEnabled() ? ", " + cfg.getLinkerFlagsString() : "")
|
||||
<< newLine;
|
||||
<< "=-O" << cfg.getGCCOptimisationFlag() << "\"" << newLine;
|
||||
|
||||
mo << " }" << newLine;
|
||||
mo << " }" << newLine << newLine;
|
||||
mo << " dimension \"default\"" << newLine;
|
||||
|
|
|
|||
|
|
@ -481,6 +481,9 @@ private:
|
|||
if (! config.isDebug())
|
||||
flags.add ("-s");
|
||||
|
||||
if (config.isLinkTimeOptimisationEnabled())
|
||||
flags.add ("-flto");
|
||||
|
||||
flags.addTokens (replacePreprocessorTokens (config, getExtraLinkerFlagsString()).trim(), " \n", "\"'");
|
||||
|
||||
const auto packages = getPackages();
|
||||
|
|
|
|||
|
|
@ -585,6 +585,9 @@ private:
|
|||
if (! config.isDebug())
|
||||
result.add ("-fvisibility=hidden");
|
||||
|
||||
if (config.isLinkTimeOptimisationEnabled())
|
||||
result.add ("-flto");
|
||||
|
||||
auto extraFlags = getExtraLinkerFlagsString().trim();
|
||||
|
||||
if (extraFlags.isNotEmpty())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue