diff --git a/cmake/modules/Makefile b/cmake/modules/Makefile index f644c45dcd0..fb375b1ead5 100644 --- a/cmake/modules/Makefile +++ b/cmake/modules/Makefile @@ -9,8 +9,6 @@ LEVEL = ../.. -LINK_COMPONENTS := all - include $(LEVEL)/Makefile.common PROJ_cmake := $(DESTDIR)$(PROJ_prefix)/share/llvm/cmake @@ -39,24 +37,13 @@ else LLVM_ENABLE_RTTI := 0 endif -# Don't try to run llvm-config during clean because it won't be available -ifneq ($(MAKECMDGOALS),clean) -LLVM_LIBS_TO_EXPORT := $(subst -l,,$(shell $(LLVM_CONFIG) --libs $(LINK_COMPONENTS) || echo Error)) - -ifeq ($(LLVM_LIBS_TO_EXPORT),Error) -$(error llvm-config --libs failed) -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. -# FIXME: If we used llvm-config from the install tree this wouldn't be -# necessary. 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 -endif OBJMODS := LLVMConfig.cmake LLVMConfigVersion.cmake LLVMExports.cmake diff --git a/utils/llvm-build/llvmbuild/main.py b/utils/llvm-build/llvmbuild/main.py index 5742b05d4f9..6a2da754c3b 100644 --- a/utils/llvm-build/llvmbuild/main.py +++ b/utils/llvm-build/llvmbuild/main.py @@ -640,7 +640,7 @@ set_property(TARGET %s PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES %s)\n""" % ( f.close() - def write_make_fragment(self, output_path): + def write_make_fragment(self, output_path, enabled_optional_components): """ write_make_fragment(output_path) -> None @@ -706,6 +706,19 @@ set_property(TARGET %s PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES %s)\n""" % ( f.write("%s:\n" % (mk_quote_string_for_target(dep),)) f.write('endif\n') + f.write(""" +# List of libraries to be exported for use by applications. +# See 'cmake/modules/Makefile'. +LLVM_LIBS_TO_EXPORT :=""") + self.foreach_cmake_library( + lambda ci: + f.write(' \\\n %s' % ci.get_prefixed_library_name()) + , + enabled_optional_components, + skip_disabled = True + ) + f.write('\n') + f.close() def add_magic_target_components(parser, project, opts): @@ -929,7 +942,8 @@ given by --build-root) at the same SUBPATH""", # Write out the make fragment, if requested. if opts.write_make_fragment: - project_info.write_make_fragment(opts.write_make_fragment) + project_info.write_make_fragment(opts.write_make_fragment, + opts.optional_components) # Write out the cmake fragment, if requested. if opts.write_cmake_fragment: