You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							2.3 KiB
						
					
					
				
								# copied from CARL
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								macro(add_imported_library_interface name include)
							 | 
						|
									add_library(${name} INTERFACE IMPORTED)
							 | 
						|
									set_target_properties(${name} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${include}")
							 | 
						|
								endmacro(add_imported_library_interface)
							 | 
						|
								
							 | 
						|
								macro(add_imported_library name type lib include)
							 | 
						|
								# Workaround from https://cmake.org/Bug/view.php?id=15052
							 | 
						|
									file(MAKE_DIRECTORY "${include}")
							 | 
						|
									if("${lib}" STREQUAL "")
							 | 
						|
										if("${type}" STREQUAL "SHARED")
							 | 
						|
											add_library(${name} INTERFACE IMPORTED)
							 | 
						|
											set_target_properties(${name} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${include}")
							 | 
						|
										endif()
							 | 
						|
									else()
							 | 
						|
										add_library(${name}_${type} ${type} IMPORTED)
							 | 
						|
										set_target_properties(${name}_${type} PROPERTIES IMPORTED_LOCATION "${lib}")
							 | 
						|
										set_target_properties(${name}_${type} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${include}")
							 | 
						|
									endif()
							 | 
						|
								endmacro(add_imported_library)
							 | 
						|
								
							 | 
						|
								macro(export_option name)
							 | 
						|
									list(APPEND EXPORTED_OPTIONS "${name}")
							 | 
						|
								endmacro(export_option)
							 | 
						|
								
							 | 
						|
								macro(export_target output TARGET)
							 | 
						|
									get_target_property(TYPE ${TARGET} TYPE)
							 | 
						|
									if(TYPE STREQUAL "SHARED_LIBRARY")
							 | 
						|
										get_target_property(LOCATION ${TARGET} IMPORTED_LOCATION)
							 | 
						|
										get_target_property(INCLUDE ${TARGET} INTERFACE_INCLUDE_DIRECTORIES)
							 | 
						|
										set(${output} "${${output}}
							 | 
						|
								add_library(${TARGET} SHARED IMPORTED)
							 | 
						|
								set_target_properties(${TARGET} PROPERTIES IMPORTED_LOCATION \"${LOCATION}\")
							 | 
						|
								set_target_properties(${TARGET} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES \"${INCLUDE}\")
							 | 
						|
								")
							 | 
						|
									elseif(TYPE STREQUAL "STATIC_LIBRARY")
							 | 
						|
										get_target_property(LOCATION ${TARGET} IMPORTED_LOCATION)
							 | 
						|
										get_target_property(INCLUDE ${TARGET} INTERFACE_INCLUDE_DIRECTORIES)
							 | 
						|
										set(${output} "${${output}}
							 | 
						|
								add_library(${TARGET} STATIC IMPORTED)
							 | 
						|
								set_target_properties(${TARGET} PROPERTIES IMPORTED_LOCATION \"${LOCATION}\")
							 | 
						|
								set_target_properties(${TARGET} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES \"${INCLUDE}\")
							 | 
						|
								")
							 | 
						|
										if(NOT "${ARGN}" STREQUAL "")
							 | 
						|
											set(${output} "${${output}}set_target_properties(${TARGET} PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES \"${ARGN}\")
							 | 
						|
								")
							 | 
						|
										endif()
							 | 
						|
									elseif(TYPE STREQUAL "INTERFACE_LIBRARY")
							 | 
						|
										get_target_property(INCLUDE ${TARGET} INTERFACE_INCLUDE_DIRECTORIES)
							 | 
						|
										set(${output} "${${output}}
							 | 
						|
								add_library(${TARGET} INTERFACE IMPORTED)
							 | 
						|
								set_target_properties(${TARGET} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES \"${INCLUDE}\")
							 | 
						|
								")
							 | 
						|
									else()
							 | 
						|
										message(STATUS "Unknown type ${TYPE}")
							 | 
						|
									endif()
							 | 
						|
								endmacro(export_target)
							 |