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

Reply via email to