1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Projucer: Fixed a Visual Studio exporter library linking bug

This commit is contained in:
tpoole 2017-09-25 11:42:38 +01:00
parent a4f5663fce
commit 03e6684355

View file

@ -529,6 +529,13 @@ public:
: "NDEBUG;%(PreprocessorDefinitions)");
}
const String externalLibraries (getExternalLibraries (config, getOwner().getExternalLibrariesString()));
const auto additionalDependencies = externalLibraries.isNotEmpty() ? getOwner().replacePreprocessorTokens (config, externalLibraries).trim() + ";%(AdditionalDependencies)"
: String();
const StringArray librarySearchPaths (config.getLibrarySearchPaths());
const auto additionalLibraryDirs = librarySearchPaths.size() > 0 ? getOwner().replacePreprocessorTokens (config, librarySearchPaths.joinIntoString (";")) + ";%(AdditionalLibraryDirectories)"
: String();
{
XmlElement* link = group->createNewChildElement ("Link");
link->createNewChildElement ("OutputFile")->addTextElement (getOutputFilePath (config));
@ -551,17 +558,13 @@ public:
link->createNewChildElement ("EnableCOMDATFolding")->addTextElement ("true");
}
const StringArray librarySearchPaths (config.getLibrarySearchPaths());
if (librarySearchPaths.size() > 0)
link->createNewChildElement ("AdditionalLibraryDirectories")->addTextElement (getOwner().replacePreprocessorTokens (config, librarySearchPaths.joinIntoString (";"))
+ ";%(AdditionalLibraryDirectories)");
if (additionalLibraryDirs.isNotEmpty())
link->createNewChildElement ("AdditionalLibraryDirectories")->addTextElement (additionalLibraryDirs);
link->createNewChildElement ("LargeAddressAware")->addTextElement ("true");
const String externalLibraries (getExternalLibraries (config, getOwner().getExternalLibrariesString()));
if (externalLibraries.isNotEmpty())
link->createNewChildElement ("AdditionalDependencies")->addTextElement (getOwner().replacePreprocessorTokens (config, externalLibraries).trim()
+ ";%(AdditionalDependencies)");
if (additionalDependencies.isNotEmpty())
link->createNewChildElement ("AdditionalDependencies")->addTextElement (additionalDependencies);
String extraLinkerOptions (getOwner().getExtraLinkerFlagsString());
if (extraLinkerOptions.isNotEmpty())
@ -584,6 +587,16 @@ public:
bsc->createNewChildElement ("OutputFile")->addTextElement (getOwner().getIntDirFile (config, config.getOutputFilename (".bsc", true)));
}
{
XmlElement* lib = group->createNewChildElement ("Lib");
if (additionalDependencies.isNotEmpty())
lib->createNewChildElement ("AdditionalDependencies")->addTextElement (additionalDependencies);
if (additionalLibraryDirs.isNotEmpty())
lib->createNewChildElement ("AdditionalLibraryDirectories")->addTextElement (additionalLibraryDirs);
}
const RelativePath& manifestFile = getOwner().getManifestPath();
if (manifestFile.getRoot() != RelativePath::unknown)
{