Fix BUILD_SHARED_LIBS for clang which broke in D61909
authorChris Bieneman <chris.bieneman@me.com>
Tue, 21 May 2019 15:56:17 +0000 (15:56 +0000)
committerChris Bieneman <chris.bieneman@me.com>
Tue, 21 May 2019 15:56:17 +0000 (15:56 +0000)
llvm_add_library ignores `BUILD_SHARED_LIBS` `STATIC` is explicitly specified. This restores the `BUILD_SHARED_LIBS` behavior to the clang build.

llvm-svn: 361271

clang/cmake/modules/AddClang.cmake

index b598f13ff6ff487fc63fc18c77067fc164ee706b..0c9cd6676033647d182e9a008e067776fe555b04 100644 (file)
@@ -83,7 +83,13 @@ macro(add_clang_library name)
   if(ARG_SHARED)
     set(LIBTYPE SHARED)
   else()
-    set(LIBTYPE STATIC OBJECT)
+    # llvm_add_library ignores BUILD_SHARED_LIBS if STATIC is explicitly set,
+    # so we need to handle it here.
+    if(BUILD_SHARED_LIBS)
+      set(LIBTYPE SHARED OBJECT)
+    else()
+      set(LIBTYPE STATIC OBJECT)
+    endif()
     set_property(GLOBAL APPEND PROPERTY CLANG_STATIC_LIBS ${name})
   endif()
   llvm_add_library(${name} ${LIBTYPE} ${ARG_UNPARSED_ARGUMENTS} ${srcs})