mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	externals: allow user to use system lodepng (#7138)
This commit is contained in:
		
							parent
							
								
									ee372572a6
								
							
						
					
					
						commit
						fcc0fd671a
					
				
					 3 changed files with 41 additions and 1 deletions
				
			
		
							
								
								
									
										8
									
								
								externals/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								externals/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -327,7 +327,13 @@ if (ENABLE_WEB_SERVICE) | ||||||
| endif() | endif() | ||||||
| 
 | 
 | ||||||
| # lodepng | # lodepng | ||||||
| add_subdirectory(lodepng) | if(USE_SYSTEM_LODEPNG) | ||||||
|  |     add_library(lodepng INTERFACE) | ||||||
|  |     find_package(lodepng REQUIRED) | ||||||
|  |     target_link_libraries(lodepng INTERFACE lodepng::lodepng) | ||||||
|  | else() | ||||||
|  |     add_subdirectory(lodepng) | ||||||
|  | endif() | ||||||
| 
 | 
 | ||||||
| # (xperia64): Only use libyuv on Android b/c of build issues on Windows and mandatory JPEG | # (xperia64): Only use libyuv on Android b/c of build issues on Windows and mandatory JPEG | ||||||
| if(ANDROID) | if(ANDROID) | ||||||
|  |  | ||||||
|  | @ -21,6 +21,7 @@ option(USE_SYSTEM_ZSTD "Use the system Zstandard library (instead of the bundled | ||||||
| option(USE_SYSTEM_ENET "Use the system libenet (instead of the bundled one)" OFF) | option(USE_SYSTEM_ENET "Use the system libenet (instead of the bundled one)" OFF) | ||||||
| option(USE_SYSTEM_CRYPTOPP "Use the system cryptopp (instead of the bundled one)" OFF) | option(USE_SYSTEM_CRYPTOPP "Use the system cryptopp (instead of the bundled one)" OFF) | ||||||
| option(USE_SYSTEM_CUBEB "Use the system cubeb (instead of the bundled one)" OFF) | option(USE_SYSTEM_CUBEB "Use the system cubeb (instead of the bundled one)" OFF) | ||||||
|  | option(USE_SYSTEM_LODEPNG "Use the system lodepng (instead of the bundled one)" OFF) | ||||||
| 
 | 
 | ||||||
| # Qt and MoltenVK are handled separately | # Qt and MoltenVK are handled separately | ||||||
| CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_SDL2 "Disable system SDL2" OFF "USE_SYSTEM_LIBS" OFF) | CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_SDL2 "Disable system SDL2" OFF "USE_SYSTEM_LIBS" OFF) | ||||||
|  | @ -41,6 +42,7 @@ CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_ZSTD "Disable system Zstandard" OFF "USE_S | ||||||
| CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_ENET "Disable system libenet" OFF "USE_SYSTEM_LIBS" OFF) | CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_ENET "Disable system libenet" OFF "USE_SYSTEM_LIBS" OFF) | ||||||
| CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_CRYPTOPP "Disable system cryptopp" OFF "USE_SYSTEM_LIBS" OFF) | CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_CRYPTOPP "Disable system cryptopp" OFF "USE_SYSTEM_LIBS" OFF) | ||||||
| CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_CUBEB "Disable system cubeb" OFF "USE_SYSTEM_LIBS" OFF) | CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_CUBEB "Disable system cubeb" OFF "USE_SYSTEM_LIBS" OFF) | ||||||
|  | CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_LODEPNG "Disable system lodepng" OFF "USE_SYSTEM_LIBS" OFF) | ||||||
| 
 | 
 | ||||||
| set(LIB_VAR_LIST | set(LIB_VAR_LIST | ||||||
|     SDL2 |     SDL2 | ||||||
|  | @ -61,6 +63,7 @@ set(LIB_VAR_LIST | ||||||
|     ENET |     ENET | ||||||
|     CRYPTOPP |     CRYPTOPP | ||||||
|     CUBEB |     CUBEB | ||||||
|  |     LODEPNG | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
| # First, check that USE_SYSTEM_XXX is not used with USE_SYSTEM_LIBS | # First, check that USE_SYSTEM_XXX is not used with USE_SYSTEM_LIBS | ||||||
|  |  | ||||||
							
								
								
									
										31
									
								
								externals/cmake-modules/Findlodepng.cmake
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								externals/cmake-modules/Findlodepng.cmake
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | ||||||
|  | if(NOT LODEPNG_FOUND) | ||||||
|  |     find_path(LODEPNG_INCLUDE_DIRS NAMES lodepng.h | ||||||
|  |             PATHS | ||||||
|  |             /usr/include | ||||||
|  |             /usr/local/include | ||||||
|  |             ) | ||||||
|  | 
 | ||||||
|  |     find_library(LODEPNG_LIBRARY_DIRS NAMES lodepng | ||||||
|  |             PATHS | ||||||
|  |             /usr/lib | ||||||
|  |             /usr/local/lib | ||||||
|  |             ) | ||||||
|  | 
 | ||||||
|  |     if(LODEPNG_INCLUDE_DIRS AND LODEPNG_LIBRARY_DIRS) | ||||||
|  |         set(LODEPNG_FOUND TRUE CACHE INTERNAL "Found lodepng") | ||||||
|  |         message(STATUS "Found lodepng: ${LODEPNG_LIBRARY_DIRS}, ${LODEPNG_INCLUDE_DIRS}") | ||||||
|  |     else() | ||||||
|  |         set(LODEPNG_FOUND FALSE CACHE INTERNAL "Found lodepng") | ||||||
|  |         message(STATUS "Lodepng not found.") | ||||||
|  |     endif() | ||||||
|  | endif() | ||||||
|  | 
 | ||||||
|  | if(LODEPNG_FOUND AND NOT TARGET lodepng::lodepng) | ||||||
|  |     add_library(lodepng::lodepng UNKNOWN IMPORTED) | ||||||
|  |     set_target_properties(lodepng::lodepng PROPERTIES | ||||||
|  |         INCLUDE_DIRECTORIES ${LODEPNG_INCLUDE_DIRS} | ||||||
|  |         INTERFACE_LINK_LIBRARIES ${LODEPNG_LIBRARY_DIRS} | ||||||
|  |         IMPORTED_LOCATION ${LODEPNG_LIBRARY_DIRS} | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|  | endif() | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue