mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	externals: Make system dynamic library headers flags instead of auto-detect. (#7065)
This commit is contained in:
		
							parent
							
								
									956b0868fd
								
							
						
					
					
						commit
						e49b3c75bd
					
				
					 5 changed files with 34 additions and 50 deletions
				
			
		
							
								
								
									
										32
									
								
								externals/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								externals/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -150,7 +150,37 @@ endif() | |||
| add_subdirectory(open_source_archives) | ||||
| 
 | ||||
| # Dynamic library headers | ||||
| add_subdirectory(library-headers EXCLUDE_FROM_ALL) | ||||
| add_library(library-headers INTERFACE) | ||||
| 
 | ||||
| if (USE_SYSTEM_FDK_AAC_HEADERS) | ||||
|     find_path(SYSTEM_FDK_AAC_INCLUDES NAMES fdk-aac/aacdecoder_lib.h) | ||||
|     if (SYSTEM_FDK_AAC_INCLUDES STREQUAL "SYSTEM_FDK_AAC_INCLUDES-NOTFOUND") | ||||
|         message(WARNING "System fdk-aac headers not found. Falling back on bundled headers.") | ||||
|     else() | ||||
|         message(STATUS "Using system fdk_aac headers.") | ||||
|         target_include_directories(library-headers SYSTEM INTERFACE ${SYSTEM_FDK_AAC_INCLUDES}) | ||||
|         set(FOUND_FDK_AAC_HEADERS ON) | ||||
|     endif() | ||||
| endif() | ||||
| if (NOT FOUND_FDK_AAC_HEADERS) | ||||
|     message(STATUS "Using bundled fdk_aac headers.") | ||||
|     target_include_directories(library-headers SYSTEM INTERFACE ./library-headers/fdk-aac/include) | ||||
| endif() | ||||
| 
 | ||||
| if (USE_SYSTEM_FFMPEG_HEADERS) | ||||
|     find_path(SYSTEM_FFMPEG_INCLUDES NAMES libavutil/avutil.h) | ||||
|     if (SYSTEM_FFMPEG_INCLUDES STREQUAL "SYSTEM_FFMPEG_INCLUDES-NOTFOUND") | ||||
|         message(WARNING "System FFmpeg headers not found. Falling back on bundled headers.") | ||||
|     else() | ||||
|         message(STATUS "Using system FFmpeg headers.") | ||||
|         target_include_directories(library-headers SYSTEM INTERFACE ${SYSTEM_FFMPEG_INCLUDES}) | ||||
|         set(FOUND_FFMPEG_HEADERS ON) | ||||
|     endif() | ||||
| endif() | ||||
| if (NOT FOUND_FFMPEG_HEADERS) | ||||
|     message(STATUS "Using bundled ffmpeg headers.") | ||||
|     target_include_directories(library-headers SYSTEM INTERFACE ./library-headers/ffmpeg/include) | ||||
| endif() | ||||
| 
 | ||||
| # SoundTouch | ||||
| if(NOT USE_SYSTEM_SOUNDTOUCH) | ||||
|  |  | |||
							
								
								
									
										48
									
								
								externals/library-headers/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								externals/library-headers/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -1,48 +0,0 @@ | |||
| add_library(library-headers INTERFACE) | ||||
| 
 | ||||
| # libfdk-aac headers | ||||
| find_path(FDK_AAC_INCLUDES NAMES fdk-aac/aacdecoder_lib.h) | ||||
| if (FDK_AAC_INCLUDES STREQUAL "FDK_AAC_INCLUDES-NOTFOUND") | ||||
|     message(STATUS "fdk_aac headers not found, using bundled headers.") | ||||
|     target_include_directories(library-headers INTERFACE ./library-headers/fdk-aac/include) | ||||
| else() | ||||
|     message(STATUS "Using headers from system fdk_aac") | ||||
|     target_include_directories(library-headers SYSTEM INTERFACE ${FDK_AAC_INCLUDES}) | ||||
| endif() | ||||
| 
 | ||||
| # FFmpeg headers | ||||
| find_path(AVUTIL_INCLUDES NAMES libavutil/avutil.h) | ||||
| find_path(AVCODEC_INCLUDES NAMES libavcodec/avcodec.h) | ||||
| find_path(AVFORMAT_INCLUDES NAMES libavformat/avformat.h) | ||||
| find_path(AVFILTER_INCLUDES NAMES libavfilter/avfilter.h) | ||||
| find_path(SWRESAMPLE_INCLUDES NAMES libswresample/swresample.h) | ||||
| # Make sure all the headers are found and from the same place, so we don't | ||||
| # have missing or mismatched components. | ||||
| if (AVUTIL_INCLUDES STREQUAL "AVUTIL_INCLUDES-NOTFOUND" | ||||
|     OR NOT AVCODEC_INCLUDES STREQUAL AVUTIL_INCLUDES | ||||
|     OR NOT AVFORMAT_INCLUDES STREQUAL AVUTIL_INCLUDES | ||||
|     OR NOT AVFILTER_INCLUDES STREQUAL AVUTIL_INCLUDES | ||||
|     OR NOT SWRESAMPLE_INCLUDES STREQUAL AVUTIL_INCLUDES) | ||||
|     message(STATUS "Complete FFmpeg headers not found, using bundled headers.") | ||||
|     target_include_directories(library-headers INTERFACE ./library-headers/ffmpeg/include) | ||||
| else() | ||||
|     # Extract libavutil version from header. | ||||
|     file(STRINGS "${AVUTIL_INCLUDES}/libavutil/version.h" AVUTIL_VERSION_DATA | ||||
|         REGEX "#define LIBAVUTIL_VERSION_(MAJOR|MINOR|MICRO) ") | ||||
|     set(AVUTIL_VERSION_REGEX "([0-9]+)") | ||||
|     foreach(v MAJOR MINOR MICRO) | ||||
|         if("${AVUTIL_VERSION_DATA}" MATCHES "#define LIBAVUTIL_VERSION_${v}[\\t ]+${AVUTIL_VERSION_REGEX}") | ||||
|             set(AVUTIL_VERSION_${v} "${CMAKE_MATCH_1}") | ||||
|         endif() | ||||
|     endforeach() | ||||
|     set(AVUTIL_VERSION "${AVUTIL_VERSION_MAJOR}.${AVUTIL_VERSION_MINOR}.${AVUTIL_VERSION_MICRO}") | ||||
| 
 | ||||
|     message(STATUS "Detected FFmpeg libavutil version is ${AVUTIL_VERSION}") | ||||
|     if ("${AVUTIL_VERSION}" VERSION_LESS "56.30.100") | ||||
|         message(WARNING "System FFmpeg version is too low (< 4.2), using bundled headers.") | ||||
|         target_include_directories(library-headers INTERFACE ./library-headers/ffmpeg/include) | ||||
|     else() | ||||
|         message(STATUS "Using headers from system FFmpeg") | ||||
|         target_include_directories(library-headers SYSTEM INTERFACE ${AVUTIL_INCLUDES}) | ||||
|     endif() | ||||
| endif() | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue