Hi Mario,
Very sorry, I should have looked more closely! CMAKE_MODULE_PATH is for
libraries that install their own CMake scripts. You are correct, Zlib only
installs a pkg-config script. However, FindZLIB.cmake doesn’t appear to use
that at all (aka I don’t believe you need to be setting PKG_CONFIG_PATH). You
should be able to get away with setting ZLIB_ROOT. So for you I think it would
look like
cmake .. -DZLIB_ROOT=/data/thirdparty
FindZLIB.cmake will proceed to look for ZLIB_ROOT/include/zlib.h and look in
ZLIB_ROOT/lib for the library.
The XXX_ROOT is typically available for any built-in CMake FindXXX.cmake
modules (see hint at bottom:
https://cmake.org/cmake/help/v3.0/module/FindZLIB.html
<https://cmake.org/cmake/help/v3.0/module/FindZLIB.html> ). These
FindXXX.cmake modules are for this exact scenario: there is a library that many
users want access to that does not install cmake scripts (typically because the
library uses a different build system such as autotools).
- - - - -
If you are still having trouble, this is what I used to test this. I didn’t
actually write code that uses it, but I suspect if you remove setting of
CMAKE_PREFIX_PATH (I think that’s where your conflict originates from) and just
specify ZLIB_ROOT your problem will be solved (I hope!).
With a very crude CMakeLists.txt:
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project("find_zlib")
find_package(ZLIB)
if (ZLIB_FOUND)
message(FATAL_ERROR "Found Zlib:\n- ZLIB_INCLUDE_DIRS:
${ZLIB_INCLUDE_DIRS}\n- ZLIB_LIBRARIES: ${ZLIB_LIBRARIES}")
else()
message(FATAL_ERROR "Did not find Zlib :/")
endif()
Without setting ZLIB_ROOT:
$ cmake ..
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.8")
CMake Error at CMakeLists.txt:6 (message):
Found Zlib:
- ZLIB_INCLUDE_DIRS: /usr/include
- ZLIB_LIBRARIES: /usr/lib/libz.dylib
That’s the default Zlib that comes with OS X. However, if I specify ZLIB_ROOT:
$ cmake .. -DZLIB_ROOT=/usr/local/Cellar/zlib/1.2.11/
-- Found ZLIB: /usr/local/Cellar/zlib/1.2.11/lib/libz.dylib (found version
"1.2.11")
CMake Error at CMakeLists.txt:6 (message):
Found Zlib:
- ZLIB_INCLUDE_DIRS: /usr/local/Cellar/zlib/1.2.11/include
- ZLIB_LIBRARIES: /usr/local/Cellar/zlib/1.2.11/lib/libz.dylib
Let us know if it works or if you still need help!
-Stephen
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake