Browse Source

Projucer: Fixed a Visual Studio exporter library linking bug

tags/2021-05-28
tpoole 7 years ago
parent
commit
03e6684355
1 changed files with 21 additions and 8 deletions
  1. +21
    -8
      extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h

+ 21
- 8
extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h 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)
{


Loading…
Cancel
Save