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)
 |