mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	Cmake truncates the full link path to a shared library if it is missing an SONAME in some undocumented scenarios. This causes builds in some systems to fail if "lpeg" isn't a library on the system path. The path of imported libraries aren't modified by cmake, so we can use that as a workaround until a proper solution for this has been identified. Closes https://github.com/neovim/neovim/issues/23395.
		
			
				
	
	
		
			17 lines
		
	
	
		
			555 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			555 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
find_library(LPEG_LIBRARY NAMES lpeg_a lpeg liblpeg_a)
 | 
						|
 | 
						|
# Ubuntu-specific workaround to find system paths
 | 
						|
function(ubuntu)
 | 
						|
  set(CMAKE_FIND_LIBRARY_PREFIXES "")
 | 
						|
  find_library(LPEG_LIBRARY NAMES lpeg PATH_SUFFIXES lua/5.1)
 | 
						|
endfunction()
 | 
						|
ubuntu()
 | 
						|
 | 
						|
find_package_handle_standard_args(Lpeg DEFAULT_MSG LPEG_LIBRARY)
 | 
						|
mark_as_advanced(LPEG_LIBRARY)
 | 
						|
 | 
						|
# Workaround: use an imported library to prevent cmake from modifying library
 | 
						|
# link path. See #23395.
 | 
						|
add_library(lpeg UNKNOWN IMPORTED)
 | 
						|
set_target_properties(lpeg PROPERTIES IMPORTED_LOCATION ${LPEG_LIBRARY})
 |