diff options
author | Robert Maynard <robert.maynard@kitware.com> | 2017-03-23 09:32:08 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-04-18 11:36:10 -0400 |
commit | eec93bceec5411e4409b5e3ee5dc301fca6fcbfd (patch) | |
tree | 58758ce2d61173c52559f55c0979236cafa7f969 /Source/cmExportFileGenerator.cxx | |
parent | 93c89bc75ceee599ba7c08b8fe1ac5104942054f (diff) | |
download | cmake-eec93bceec5411e4409b5e3ee5dc301fca6fcbfd.tar.gz |
Allow OBJECT libraries to be installed, exported, and imported
Teach install() and export() to handle the actual object files.
Disallow this on Xcode with multiple architectures because it
still cannot be cleanly supported there.
Co-Author: Brad King <brad.king@kitware.com>
Diffstat (limited to 'Source/cmExportFileGenerator.cxx')
-rw-r--r-- | Source/cmExportFileGenerator.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 5875f9e96f..ae3ec3bc4d 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -441,6 +441,11 @@ void getCompatibleInterfaceProperties(cmGeneratorTarget* target, std::set<std::string>& ifaceProperties, const std::string& config) { + if (target->GetType() == cmStateEnums::OBJECT_LIBRARY) { + // object libraries have no link information, so nothing to compute + return; + } + cmComputeLinkInformation* info = target->GetLinkInformation(config); if (!info) { @@ -927,6 +932,9 @@ void cmExportFileGenerator::GenerateImportTargetCode( case cmStateEnums::UNKNOWN_LIBRARY: os << "add_library(" << targetName << " UNKNOWN IMPORTED)\n"; break; + case cmStateEnums::OBJECT_LIBRARY: + os << "add_library(" << targetName << " OBJECT IMPORTED)\n"; + break; case cmStateEnums::INTERFACE_LIBRARY: os << "add_library(" << targetName << " INTERFACE IMPORTED)\n"; break; |