mirror of
				https://github.com/pocoproject/poco.git
				synced 2025-11-04 12:17:37 +01:00 
			
		
		
		
	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()
 | 
						|
 |