Skip to content

Commit 10425a9

Browse files
committed
Do not overwrite CMAKE_PREFIX_PATH in component config files.
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.
1 parent 319e2d8 commit 10425a9

17 files changed

+23
-32
lines changed
+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
4-
include("${CMAKE_CURRENT_LIST_DIR}/PocoCppParserTargets.cmake")
3+
include("${CMAKE_CURRENT_LIST_DIR}/PocoCppParserTargets.cmake")

Crypto/cmake/PocoCryptoConfig.cmake

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
4-
include("${CMAKE_CURRENT_LIST_DIR}/PocoCryptoTargets.cmake")
3+
include("${CMAKE_CURRENT_LIST_DIR}/PocoCryptoTargets.cmake")
+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
43
find_dependency(PocoData)
5-
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataMySQLTargets.cmake")
4+
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataMySQLTargets.cmake")
+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
43
find_dependency(PocoData)
5-
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataODBCTargets.cmake")
4+
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataODBCTargets.cmake")
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
43
find_dependency(PocoData)
5-
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataSQLiteTargets.cmake")
4+
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataSQLiteTargets.cmake")

Data/cmake/PocoDataConfig.cmake

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
4-
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataTargets.cmake")
3+
include("${CMAKE_CURRENT_LIST_DIR}/PocoDataTargets.cmake")

JSON/cmake/PocoJSONConfig.cmake

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
4-
include("${CMAKE_CURRENT_LIST_DIR}/PocoJSONTargets.cmake")
3+
include("${CMAKE_CURRENT_LIST_DIR}/PocoJSONTargets.cmake")

MongoDB/cmake/PocoMongoDBConfig.cmake

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
43
find_dependency(PocoNet)
5-
include("${CMAKE_CURRENT_LIST_DIR}/PocoMongoDBTargets.cmake")
4+
include("${CMAKE_CURRENT_LIST_DIR}/PocoMongoDBTargets.cmake")

Net/cmake/PocoNetConfig.cmake

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
4-
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetTargets.cmake")
3+
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetTargets.cmake")
+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
43
find_dependency(PocoUtil)
54
find_dependency(PocoNet)
65
find_dependency(PocoCrypto)
7-
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetSSLTargets.cmake")
6+
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetSSLTargets.cmake")
+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
43
find_dependency(PocoUtil)
54
find_dependency(PocoNet)
6-
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetSSLWinTargets.cmake")
5+
include("${CMAKE_CURRENT_LIST_DIR}/PocoNetSSLWinTargets.cmake")

PDF/cmake/PocoPDFConfig.cmake

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
4-
include("${CMAKE_CURRENT_LIST_DIR}/PocoPDFTargets.cmake")
3+
include("${CMAKE_CURRENT_LIST_DIR}/PocoPDFTargets.cmake")
+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
43
find_dependency(PocoXML)
54
find_dependency(PocoUtil)
6-
include("${CMAKE_CURRENT_LIST_DIR}/PocoSevenZipTargets.cmake")
5+
include("${CMAKE_CURRENT_LIST_DIR}/PocoSevenZipTargets.cmake")

Util/cmake/PocoUtilConfig.cmake

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
43
find_dependency(PocoXML)
54
find_dependency(PocoJSON)
6-
include("${CMAKE_CURRENT_LIST_DIR}/PocoUtilTargets.cmake")
5+
include("${CMAKE_CURRENT_LIST_DIR}/PocoUtilTargets.cmake")

XML/cmake/PocoXMLConfig.cmake

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
4-
include("${CMAKE_CURRENT_LIST_DIR}/PocoXMLTargets.cmake")
3+
include("${CMAKE_CURRENT_LIST_DIR}/PocoXMLTargets.cmake")

Zip/cmake/PocoZipConfig.cmake

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
include(CMakeFindDependencyMacro)
2-
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
32
find_dependency(PocoFoundation)
43
find_dependency(PocoUtil)
54
find_dependency(PocoXML)
6-
include("${CMAKE_CURRENT_LIST_DIR}/PocoZipTargets.cmake")
5+
include("${CMAKE_CURRENT_LIST_DIR}/PocoZipTargets.cmake")

cmake/PocoConfig.cmake.in

+7
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ get_filename_component(_Poco_install_prefix "${CMAKE_CURRENT_LIST_DIR}" ABSOLUTE
2121

2222
set(_Poco_NOTFOUND_MESSAGE)
2323

24+
# Let components find each other, but don't overwrite CMAKE_PREFIX_PATH
25+
set(_Poco_CMAKE_PREFIX_PATH_old ${CMAKE_PREFIX_PATH})
26+
set(CMAKE_PREFIX_PATH ${_Poco_install_prefix})
27+
2428
foreach(module ${Poco_FIND_COMPONENTS})
2529
find_package(Poco${module}
2630
${_Poco_FIND_PARTS_QUIET}
@@ -39,6 +43,9 @@ foreach(module ${Poco_FIND_COMPONENTS})
3943
list(APPEND Poco_LIBRARIES "Poco::${module}")
4044
endforeach()
4145

46+
# Restore the original CMAKE_PREFIX_PATH value
47+
set(CMAKE_PREFIX_PATH ${_Poco_CMAKE_PREFIX_PATH_old})
48+
4249
if (_Poco_NOTFOUND_MESSAGE)
4350
set(Poco_NOT_FOUND_MESSAGE "${_Poco_NOTFOUND_MESSAGE}")
4451
set(Poco_FOUND False)

0 commit comments

Comments
 (0)