[LLDB] Fix/silence CMake developer warning for LLDB framework.
authorJonas Devlieghere <jonas@devlieghere.com>
Tue, 12 Nov 2019 22:15:06 +0000 (14:15 -0800)
committerJonas Devlieghere <jonas@devlieghere.com>
Tue, 12 Nov 2019 22:17:19 +0000 (14:17 -0800)
This fixes the following warning for developers:

  Target 'liblldb' was changed to a FRAMEWORK sometime after install().  This
  may result in the wrong install DESTINATION.  Set the FRAMEWORK property
  earlier.

The solution is to pass the FRAMEWORK flag to add_lldb_library and set
the target property before install(). For now liblldb is the only
customer.

lldb/cmake/modules/AddLLDB.cmake
lldb/source/API/CMakeLists.txt

index 6f05be3..e094092 100644 (file)
@@ -35,7 +35,7 @@ function(add_lldb_library name)
   # only supported parameters to this macro are the optional
   # MODULE;SHARED;STATIC library type and source files
   cmake_parse_arguments(PARAM
-    "MODULE;SHARED;STATIC;OBJECT;PLUGIN"
+    "MODULE;SHARED;STATIC;OBJECT;PLUGIN;FRAMEWORK"
     "INSTALL_PREFIX;ENTITLEMENTS"
     "EXTRA_CXXFLAGS;DEPENDS;LINK_LIBS;LINK_COMPONENTS;CLANG_LIBS"
     ${ARGN})
@@ -99,6 +99,14 @@ function(add_lldb_library name)
     endif()
   endif()
 
+  # A target cannot be changed to a FRAMEWORK after calling install() because
+  # this may result in the wrong install DESTINATION. The FRAMEWORK property
+  # must be set earlier.
+  if(PARAM_FRAMEWORK)
+    message(WARNING "{name} is now a FRAMEWORK")
+    set_target_properties(liblldb PROPERTIES FRAMEWORK ON)
+  endif()
+
   if(PARAM_SHARED)
     set(install_dest lib${LLVM_LIBDIR_SUFFIX})
     if(PARAM_INSTALL_PREFIX)
index f06ed1f..488dae3 100644 (file)
@@ -13,7 +13,7 @@ if(LLDB_BUILD_FRAMEWORK)
   set(option_install_prefix INSTALL_PREFIX ${LLDB_FRAMEWORK_INSTALL_DIR})
 endif()
 
-add_lldb_library(liblldb SHARED
+add_lldb_library(liblldb SHARED FRAMEWORK
   SBAddress.cpp
   SBAttachInfo.cpp
   SBBlock.cpp