浏览代码

add_library: Fix INTERFACE on platforms with no shared libs (#14561)

Stephen Kelly 12 年之前
父节点
当前提交
64f73b0fb6

+ 1 - 0
Source/cmAddLibraryCommand.cxx

@@ -229,6 +229,7 @@ bool cmAddLibraryCommand
     yet its linker language. */
   if ((type != cmTarget::STATIC_LIBRARY) &&
       (type != cmTarget::OBJECT_LIBRARY) &&
+      (type != cmTarget::INTERFACE_LIBRARY) &&
        (this->Makefile->GetCMakeInstance()->GetPropertyAsBool(
                                       "TARGET_SUPPORTS_SHARED_LIBS") == false))
     {

+ 1 - 0
Tests/RunCMake/interface_library/RunCMakeTest.cmake

@@ -2,3 +2,4 @@ include(RunCMake)
 
 run_cmake(invalid_name)
 run_cmake(target_commands)
+run_cmake(no_shared_libs)

+ 1 - 0
Tests/RunCMake/interface_library/no_shared_libs-stderr.txt

@@ -0,0 +1 @@
+^$

+ 5 - 0
Tests/RunCMake/interface_library/no_shared_libs.cmake

@@ -0,0 +1,5 @@
+
+cmake_minimum_required(VERSION 2.8.12.20131009)
+set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
+add_library(foo INTERFACE)
+target_compile_definitions(foo INTERFACE FOO_DEFINE)