Quellcode durchsuchen

add_library: Fix target type check for non-shared-lib platforms

When checking target types for TARGET_SUPPORTS_SHARED_LIBS == false,
enumerate exactly the library types not supported rather than trying to
maintain a list of all the types that are supported.  Otherwise

 add_library(SomeImportedLib UNKNOWN IMPORTED)

warns on platforms that do not support shared libraries.

Reported-by: Kelly Thompson <[email protected]>
Brad King vor 11 Jahren
Ursprung
Commit
bd360ee329
1 geänderte Dateien mit 2 neuen und 3 gelöschten Zeilen
  1. 2 3
      Source/cmAddLibraryCommand.cxx

+ 2 - 3
Source/cmAddLibraryCommand.cxx

@@ -328,9 +328,8 @@ bool cmAddLibraryCommand
     CMAKE_${LANG}_CREATE_SHARED_LIBRARY is defined and if not default to
     STATIC. But at this point we know only the name of the target, but not
     yet its linker language. */
-  if ((type != cmTarget::STATIC_LIBRARY) &&
-      (type != cmTarget::OBJECT_LIBRARY) &&
-      (type != cmTarget::INTERFACE_LIBRARY) &&
+  if ((type == cmTarget::SHARED_LIBRARY ||
+       type == cmTarget::MODULE_LIBRARY) &&
        (this->Makefile->GetCMakeInstance()->GetPropertyAsBool(
                                       "TARGET_SUPPORTS_SHARED_LIBS") == false))
     {