diff options
author | Brad King <brad.king@kitware.com> | 2016-07-20 15:26:55 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-07-21 15:05:22 (GMT) |
commit | 13a6ff31becea16d567b23abc68bfa8aa75365ce (patch) | |
tree | c7a0005b500f8f0c52c49008bc7e272821cd170b /Source/cmGlobalVisualStudioGenerator.cxx | |
parent | df14a98e9c4af316cd5e75d6af8cc7b75da2db8f (diff) | |
download | CMake-13a6ff31becea16d567b23abc68bfa8aa75365ce.zip CMake-13a6ff31becea16d567b23abc68bfa8aa75365ce.tar.gz CMake-13a6ff31becea16d567b23abc68bfa8aa75365ce.tar.bz2 |
VS: Fix WINDOWS_EXPORT_ALL_SYMBOLS for object libraries
Teach Visual Studio generators to include object files from object
libraries in the list of objects whose symbols are to be exported.
The Makefile and Ninja generators already did this. Update the
test to cover this case.
Reported-by: Bertrand Bellenot <Bertrand.Bellenot@cern.ch>
Diffstat (limited to 'Source/cmGlobalVisualStudioGenerator.cxx')
-rw-r--r-- | Source/cmGlobalVisualStudioGenerator.cxx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index 1bec581..7bdd74d 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -827,6 +827,7 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( cmSystemTools::Error("could not open ", objs_file.c_str()); return; } + std::vector<std::string> objs; for (std::vector<cmSourceFile const*>::const_iterator it = objectSources.begin(); it != objectSources.end(); ++it) { @@ -836,6 +837,12 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( // It must exist because we populated the mapping just above. assert(!map_it->second.empty()); std::string objFile = obj_dir + map_it->second; + objs.push_back(objFile); + } + gt->UseObjectLibraries(objs, configName); + for (std::vector<std::string>::iterator it = objs.begin(); it != objs.end(); + ++it) { + std::string objFile = *it; // replace $(ConfigurationName) in the object names cmSystemTools::ReplaceString(objFile, this->GetCMakeCFGIntDir(), configName.c_str()); |