<div dir="ltr">It turns out I missed some important information.  I am cross compiling, and my toolchain file sets CMAKE_FIND_ROOT_PATH_MODE_INCLUDE to ONLY. If I change ONLY to BOTH, CMake succesfully locates the Boost headers.<div><br></div><div>I'm not sure if this is the correct solution though.  Why would setting this to ONLY prevent CMake from searching outside CMAKE_FIND_ROOT_PATH?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 7, 2015 at 1:44 PM, Zac Bergquist <span dir="ltr"><<a href="mailto:zbergquist99@gmail.com" target="_blank">zbergquist99@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I'm stuck on what seems like a rather simple problem.<div><br></div><div>I've got this in my CMakeLists.txt</div><div><br></div><div>    set(BOOST_INCLUDEDIR ${CMAKE_CURRENT_LIST_DIR}/boost_1_59_0)</div><div>    set(Boost_DEBUG 1)</div><div>    find_package(Boost 1.59.0 EXACT REQUIRED)</div><div><br></div><div>The boost_1_59_0 I'm pointing it to contains the Boost source straight from the 1.59.0 release.</div><div><br></div><div>I've tried both CMake 3.3.1 and 3.4.1.  When I run CMake, I get the "Unable to find the Boost header files" error.  Here's some of the debug output:</div><div><br></div><div><div>-- [ FindBoost.cmake:551 ] _boost_TEST_VERSIONS = 1.59.0;1.59</div><div>-- [ FindBoost.cmake:553 ] Boost_USE_MULTITHREADED = TRUE</div><div>-- [ FindBoost.cmake:555 ] Boost_USE_STATIC_LIBS = </div><div>-- [ FindBoost.cmake:557 ] Boost_USE_STATIC_RUNTIME = </div><div>-- [ FindBoost.cmake:559 ] Boost_ADDITIONAL_VERSIONS = </div><div>-- [ FindBoost.cmake:561 ] Boost_NO_SYSTEM_PATHS = </div><div>-- [ FindBoost.cmake:613 ] Declared as CMake or Environmental Variables:</div><div>-- [ FindBoost.cmake:615 ]   BOOST_ROOT = </div><div>-- [ FindBoost.cmake:617 ]   BOOST_INCLUDEDIR = /home/user/thirdparty/boost_1_59_0</div><div>-- [ FindBoost.cmake:619 ]   BOOST_LIBRARYDIR = </div><div>-- [ FindBoost.cmake:621 ] _boost_TEST_VERSIONS = 1.59.0;1.59</div><div>-- [ FindBoost.cmake:690 ] Include debugging info:</div><div>-- [ FindBoost.cmake:692 ]   _boost_INCLUDE_SEARCH_DIRS = /home/user/thirdparty/boost_1_59_0;PATHS;C:/boost/include;C:/boost;/sw/local/include</div><div>-- [ FindBoost.cmake:694 ]   _boost_PATH_SUFFIXES = boost-1_59_0;boost_1_59_0;boost/boost-1_59_0;boost/boost_1_59_0;boost-1_59;boost_1_59;boost/boost-1_59;boost/boost_1_59</div></div><div><br></div><div>So I see that the FindBoost module picked up my BOOST_INCLUDEDIR hint.  I looked at the source for the FindBoost module, and it comes down to:</div><div><br></div><div>    find_path(NAMES boost/config.hpp ...).</div><div><br></div><div>The file exists exactly where CMake says it's looking.</div><div><br></div><div><div>    $ ls -l /home/user/thirdparty/boost_1_59_0/boost/config.hpp</div><div>    -r--r--r-- 1 user user 2188 Nov 30 16:20 /home/user/thirdparty/boost_1_59_0/boost/config.hpp</div></div><div><br></div><div>Yet CMake is still setting Boost_INCLUDE_DIR-NOTFOUND.  </div><div><br></div><div>I have tried removing boost_1_59_0 from my BOOST_INCLUDEDIR hint (since I saw that portion of the path in the suffixes, but it doesn't help).  The only way I am able to get CMake to locate the boost headers is to install them into a global location like /usr/local/include (which I'd like to avoid).</div><div><br></div></div>
</blockquote></div><br></div>