mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	externals: Move library headers CMake logic to Citra. (#6627)
This commit is contained in:
		
							parent
							
								
									bfb6a5b5de
								
							
						
					
					
						commit
						70225e92f7
					
				
					 3 changed files with 49 additions and 1 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitmodules
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitmodules
									
										
									
									
										vendored
									
									
								
							|  | @ -80,5 +80,5 @@ | |||
|     path = externals/sirit | ||||
|     url = https://github.com/yuzu-emu/sirit | ||||
| [submodule "library-headers"] | ||||
|     path = externals/library-headers | ||||
|     path = externals/library-headers/library-headers | ||||
|     url = https://github.com/citra-emu/ext-library-headers.git | ||||
|  |  | |||
							
								
								
									
										48
									
								
								externals/library-headers/CMakeLists.txt
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								externals/library-headers/CMakeLists.txt
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,48 @@ | |||
| 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