mirror of
				https://github.com/pocoproject/poco.git
				synced 2025-10-25 10:09:36 +02:00 
			
		
		
		
	 10425a9556
			
		
	
	10425a9556
	
	
	
		
			
			This fixes problems when a project adds a directory to CMAKE_PREFIX_PATH, then calls find_package(Poco ...) and afterwards calls find_package() for another project located in one of the directories of the original CMAKE_PREFIX_PATH variable.
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| if (CMAKE_VERSION VERSION_LESS 2.8.9)
 | |
|     message(FATAL_ERROR "Poco requires at least CMake version 2.8.9")
 | |
| endif()
 | |
| 
 | |
| if (NOT Poco_FIND_COMPONENTS)
 | |
|     set(Poco_NOT_FOUND_MESSAGE "The Poco package requires at least one component")
 | |
|     set(Poco_FOUND False)
 | |
|     return()
 | |
| endif()
 | |
| 
 | |
| set(_Poco_FIND_PARTS_REQUIRED)
 | |
| if (Poco_FIND_REQUIRED)
 | |
|     set(_Poco_FIND_PARTS_REQUIRED REQUIRED)
 | |
| endif()
 | |
| set(_Poco_FIND_PARTS_QUIET)
 | |
| if (Poco_FIND_QUIETLY)
 | |
|     set(_Poco_FIND_PARTS_QUIET QUIET)
 | |
| endif()
 | |
| 
 | |
| get_filename_component(_Poco_install_prefix "${CMAKE_CURRENT_LIST_DIR}" ABSOLUTE)
 | |
| 
 | |
| set(_Poco_NOTFOUND_MESSAGE)
 | |
| 
 | |
| # Let components find each other, but don't overwrite CMAKE_PREFIX_PATH
 | |
| set(_Poco_CMAKE_PREFIX_PATH_old ${CMAKE_PREFIX_PATH})
 | |
| set(CMAKE_PREFIX_PATH ${_Poco_install_prefix})
 | |
| 
 | |
| foreach(module ${Poco_FIND_COMPONENTS})
 | |
|     find_package(Poco${module}
 | |
|         ${_Poco_FIND_PARTS_QUIET}
 | |
|         ${_Poco_FIND_PARTS_REQUIRED}
 | |
|         PATHS "${_Poco_install_prefix}" NO_DEFAULT_PATH
 | |
|     )
 | |
|     if (NOT Poco${module}_FOUND)
 | |
|         if (Poco_FIND_REQUIRED_${module})
 | |
|             set(_Poco_NOTFOUND_MESSAGE "${_Poco_NOTFOUND_MESSAGE}Failed to find Poco component \"${module}\" config file at \"${_Poco_install_prefix}/Poco${module}/Poco${module}Config.cmake\"\n")
 | |
|         elseif(NOT Poco_FIND_QUIETLY)
 | |
|             message(WARNING "Failed to find Poco component \"${module}\" config file at \"${_Poco_install_prefix}/Poco${module}/Poco${module}Config.cmake\"")
 | |
|         endif()
 | |
|     endif()
 | |
| 
 | |
|     # For backward compatibility set the LIBRARIES variable
 | |
|     list(APPEND Poco_LIBRARIES "Poco::${module}")
 | |
| endforeach()
 | |
| 
 | |
| # Restore the original CMAKE_PREFIX_PATH value
 | |
| set(CMAKE_PREFIX_PATH ${_Poco_CMAKE_PREFIX_PATH_old})
 | |
| 
 | |
| if (_Poco_NOTFOUND_MESSAGE)
 | |
|     set(Poco_NOT_FOUND_MESSAGE "${_Poco_NOTFOUND_MESSAGE}")
 | |
|     set(Poco_FOUND False)
 | |
| endif()
 | |
| 
 |