Merge topic 'windows-export-all-fix-objlib'
13a6ff31
VS: Fix WINDOWS_EXPORT_ALL_SYMBOLS for object libraries
This commit is contained in:
commit
1fc340f0d4
|
@ -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)
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue