forked from OSchip/llvm-project
				
			[lld][cmake] Fix BUILD_SHARED_LIBS installation
Summary: This fixes a regression caused by D28397, which switched lld from using add_llvm_library to llvm_add_library. The latter does not automatically set up install rules for libraries, as it's expected the project will set them up manually based on its own needs. This adds the install rules to add_lld_library for lld. They were inspired by the similar add_clang_library macro in clang. Reviewers: ruiu, beanz, davidlt, EricWF, dtzWill Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D29007 llvm-svn: 292909
This commit is contained in:
		
							parent
							
								
									d591f17aad
								
							
						
					
					
						commit
						dbcc04a5fa
					
				| 
						 | 
					@ -1,6 +1,38 @@
 | 
				
			||||||
macro(add_lld_library name)
 | 
					macro(add_lld_library name)
 | 
				
			||||||
  llvm_add_library(${name} ${ARGN})
 | 
					  cmake_parse_arguments(ARG
 | 
				
			||||||
 | 
					    "SHARED"
 | 
				
			||||||
 | 
					    ""
 | 
				
			||||||
 | 
					    ""
 | 
				
			||||||
 | 
					    ${ARGN})
 | 
				
			||||||
 | 
					  if(ARG_SHARED)
 | 
				
			||||||
 | 
					    set(ARG_ENABLE_SHARED SHARED)
 | 
				
			||||||
 | 
					  endif()
 | 
				
			||||||
 | 
					  llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS})
 | 
				
			||||||
  set_target_properties(${name} PROPERTIES FOLDER "lld libraries")
 | 
					  set_target_properties(${name} PROPERTIES FOLDER "lld libraries")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (LLD_BUILD_TOOLS)
 | 
				
			||||||
 | 
					    if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
 | 
				
			||||||
 | 
					        NOT LLVM_DISTRIBUTION_COMPONENTS)
 | 
				
			||||||
 | 
					      set(export_to_lldtargets EXPORT lldTargets)
 | 
				
			||||||
 | 
					      set_property(GLOBAL PROPERTY LLD_HAS_EXPORTS True)
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    install(TARGETS ${name}
 | 
				
			||||||
 | 
					      COMPONENT ${name}
 | 
				
			||||||
 | 
					      ${export_to_lldtargets}
 | 
				
			||||||
 | 
					      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
 | 
				
			||||||
 | 
					      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
 | 
				
			||||||
 | 
					      RUNTIME DESTINATION bin)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
 | 
				
			||||||
 | 
					      add_custom_target(install-${name}
 | 
				
			||||||
 | 
					        DEPENDS ${name}
 | 
				
			||||||
 | 
					        COMMAND "${CMAKE_COMMAND}"
 | 
				
			||||||
 | 
					          -DCMAKE_INSTALL_COMPONENT=${name}
 | 
				
			||||||
 | 
					          -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					    set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name})
 | 
				
			||||||
 | 
					  endif()
 | 
				
			||||||
endmacro(add_lld_library)
 | 
					endmacro(add_lld_library)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
macro(add_lld_executable name)
 | 
					macro(add_lld_executable name)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue