Skip to content

Commit

Permalink
Do not overwrite CMAKE_PREFIX_PATH in component config files.
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
saschazelzer committed Feb 4, 2015
1 parent 319e2d8 commit 10425a9
Show file tree
Hide file tree
Showing 17 changed files with 23 additions and 32 deletions.
3 changes: 1 addition & 2 deletions CppParser/cmake/PocoCppParserConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
include("${CMAKE_CURRENT_LIST_DIR}/PocoCppParserTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoCppParserTargets.cmake")
3 changes: 1 addition & 2 deletions Crypto/cmake/PocoCryptoConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
include("${CMAKE_CURRENT_LIST_DIR}/PocoCryptoTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoCryptoTargets.cmake")
3 changes: 1 addition & 2 deletions Data/MySQL/cmake/PocoDataMySQLConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
find_dependency(PocoData)
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataMySQLTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataMySQLTargets.cmake")
3 changes: 1 addition & 2 deletions Data/ODBC/cmake/PocoDataODBCConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
find_dependency(PocoData)
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataODBCTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataODBCTargets.cmake")
3 changes: 1 addition & 2 deletions Data/SQLite/cmake/PocoDataSQLiteConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
find_dependency(PocoData)
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataSQLiteTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataSQLiteTargets.cmake")
3 changes: 1 addition & 2 deletions Data/cmake/PocoDataConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataTargets.cmake")
3 changes: 1 addition & 2 deletions JSON/cmake/PocoJSONConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
include("${CMAKE_CURRENT_LIST_DIR}/PocoJSONTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoJSONTargets.cmake")
3 changes: 1 addition & 2 deletions MongoDB/cmake/PocoMongoDBConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
find_dependency(PocoNet)
include("${CMAKE_CURRENT_LIST_DIR}/PocoMongoDBTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoMongoDBTargets.cmake")
3 changes: 1 addition & 2 deletions Net/cmake/PocoNetConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetTargets.cmake")
3 changes: 1 addition & 2 deletions NetSSL_OpenSSL/cmake/PocoNetSSLConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
find_dependency(PocoUtil)
find_dependency(PocoNet)
find_dependency(PocoCrypto)
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetSSLTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetSSLTargets.cmake")
3 changes: 1 addition & 2 deletions NetSSL_Win/cmake/PocoNetSSLWinConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
find_dependency(PocoUtil)
find_dependency(PocoNet)
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetSSLWinTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetSSLWinTargets.cmake")
3 changes: 1 addition & 2 deletions PDF/cmake/PocoPDFConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
include("${CMAKE_CURRENT_LIST_DIR}/PocoPDFTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoPDFTargets.cmake")
3 changes: 1 addition & 2 deletions SevenZip/cmake/PocoSevenZipConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
find_dependency(PocoXML)
find_dependency(PocoUtil)
include("${CMAKE_CURRENT_LIST_DIR}/PocoSevenZipTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoSevenZipTargets.cmake")
3 changes: 1 addition & 2 deletions Util/cmake/PocoUtilConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
find_dependency(PocoXML)
find_dependency(PocoJSON)
include("${CMAKE_CURRENT_LIST_DIR}/PocoUtilTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoUtilTargets.cmake")
3 changes: 1 addition & 2 deletions XML/cmake/PocoXMLConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
include("${CMAKE_CURRENT_LIST_DIR}/PocoXMLTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoXMLTargets.cmake")
3 changes: 1 addition & 2 deletions Zip/cmake/PocoZipConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
include(CMakeFindDependencyMacro)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
find_dependency(PocoFoundation)
find_dependency(PocoUtil)
find_dependency(PocoXML)
include("${CMAKE_CURRENT_LIST_DIR}/PocoZipTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/PocoZipTargets.cmake")
7 changes: 7 additions & 0 deletions cmake/PocoConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ 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}
Expand All @@ -39,6 +43,9 @@ foreach(module ${Poco_FIND_COMPONENTS})
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)
Expand Down

0 comments on commit 10425a9

Please sign in to comment.