[llvm] r245718 - Filter libraries that are not installed out of CMake exports (currently

Dan Liew via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 21 11:10:57 PDT 2015


Author: delcypher
Date: Fri Aug 21 13:10:57 2015
New Revision: 245718

URL: http://llvm.org/viewvc/llvm-project?rev=245718&view=rev
Log:
Filter libraries that are not installed out of CMake exports (currently
gtest and gtest_main) when generating ``Makefile.llvmbuild``.

Libraries that are not installed should not be exported because they
won't be available from an install tree.  Rather than filtering out the
gtest libraries in cmake/modules/Makefile, simply teach llvm-build to
filter out libraries that will not be installed from its generated list
of exported libraries.

Note that LLVMBUILD_LIB_DEPS_* are used during our own CMake build
process so we cannot filter LLVMBUILD_LIB_DEPS_gtest* out in llvm-build.
We must leave this gtest filter logic in cmake/modules/Makefile.

Modified:
    llvm/trunk/cmake/modules/Makefile
    llvm/trunk/utils/llvm-build/llvmbuild/main.py

Modified: llvm/trunk/cmake/modules/Makefile
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/Makefile?rev=245718&r1=245717&r2=245718&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/Makefile (original)
+++ llvm/trunk/cmake/modules/Makefile Fri Aug 21 13:10:57 2015
@@ -37,10 +37,6 @@ else
 	LLVM_ENABLE_RTTI := 0
 endif
 
-# Strip out gtest and gtest_main from LLVM_LIBS_TO_EXPORT, these are not
-# installed and won't be available from the install tree.
-LLVM_LIBS_TO_EXPORT := $(filter-out gtest gtest_main,$(LLVM_LIBS_TO_EXPORT))
-
 ifndef LLVM_LIBS_TO_EXPORT
 $(error LLVM_LIBS_TO_EXPORT cannot be empty)
 endif
@@ -122,7 +118,7 @@ $(PROJ_OBJ_DIR)/LLVMExports.cmake: $(LLV
 	  done && \
 	  cat "$(LLVMBuildCMakeExportsFrag)" && \
 	  echo 'set_property(TARGET LLVMSupport APPEND PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES '"$(subst -l,,$(LIBS))"')' \
-	) | grep -v gtest > $@
+	) > $@
 
 all-local:: $(addprefix $(PROJ_OBJ_DIR)/, $(OBJMODS))
 

Modified: llvm/trunk/utils/llvm-build/llvmbuild/main.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/llvm-build/llvmbuild/main.py?rev=245718&r1=245717&r2=245718&view=diff
==============================================================================
--- llvm/trunk/utils/llvm-build/llvmbuild/main.py (original)
+++ llvm/trunk/utils/llvm-build/llvmbuild/main.py Fri Aug 21 13:10:57 2015
@@ -503,7 +503,8 @@ subdirectories = %s
 
     def foreach_cmake_library(self, f,
                               enabled_optional_components,
-                              skip_disabled):
+                              skip_disabled,
+                              skip_not_installed):
         for ci in self.ordered_component_infos:
             # Skip optional components which are not enabled.
             if ci.type_name == 'OptionalLibrary' \
@@ -520,6 +521,10 @@ subdirectories = %s
                 if tg and not tg.enabled:
                     continue
 
+            # Skip targets that will not be installed
+            if skip_not_installed and not ci.installed:
+                continue
+
             f(ci)
 
 
@@ -600,7 +605,8 @@ set_property(GLOBAL PROPERTY LLVMBUILD_L
                      for dep in self.get_required_libraries_for_component(ci)))))
             ,
             enabled_optional_components,
-            skip_disabled = False
+            skip_disabled = False,
+            skip_not_installed = False # Dependency info must be emitted for internals libs too
             )
 
         f.close()
@@ -635,7 +641,8 @@ set_property(TARGET %s PROPERTY IMPORTED
                      for dep in self.get_required_libraries_for_component(ci)))))
             ,
             enabled_optional_components,
-            skip_disabled = True
+            skip_disabled = True,
+            skip_not_installed = True # Do not export internal libraries like gtest
             )
 
         f.close()
@@ -715,10 +722,10 @@ LLVM_LIBS_TO_EXPORT :=""")
                 f.write(' \\\n  %s' % ci.get_prefixed_library_name())
             ,
             enabled_optional_components,
-            skip_disabled = True
+            skip_disabled = True,
+            skip_not_installed = True # Do not export internal libraries like gtest
             )
         f.write('\n')
-
         f.close()
 
 def add_magic_target_components(parser, project, opts):




More information about the llvm-commits mailing list