Skip to content
Snippets Groups Projects
Commit 1fc340f0 authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic 'windows-export-all-fix-objlib'

13a6ff31 VS: Fix WINDOWS_EXPORT_ALL_SYMBOLS for object libraries
parents 3e7689ec 13a6ff31
Branches
Tags
No related merge requests found
......@@ -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());
......
......@@ -2,7 +2,9 @@ project(autoexport)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${autoexport_BINARY_DIR}/bin)
add_subdirectory(sub)
add_library(autoexport SHARED hello.cxx world.cxx foo.c)
add_library(objlib OBJECT objlib.c)
set_property(TARGET objlib PROPERTY POSITION_INDEPENDENT_CODE 1)
add_library(autoexport SHARED hello.cxx world.cxx foo.c $<TARGET_OBJECTS:objlib>)
add_executable(say say.cxx)
if(MSVC)
......
int objlib()
{
return 7;
}
......@@ -11,6 +11,7 @@ extern "C" {
int WINAPI foo();
// test regular C
int bar();
int objlib();
}
// test c++ functions
......@@ -39,6 +40,7 @@ int main()
foo();
printf("\n");
bar();
objlib();
printf("\n");
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment