Here is my solution.

if (DEFINED BOOST_ROOT)
  message (" Using argument BOOST_ROOT ${BOOST_ROOT}")
elseif (DEFINED ENV{BOOST_ROOT})
  message (" Using env var BOOST_ROOT $ENV{BOOST_ROOT}")
  set (BOOST_ROOT $ENV{BOOST_ROOT})
else ()
  message (" Looking in CPATH for include/boost/")
  if (DEFINED ENV{CPATH})
    string (REPLACE ":" ";" cpathList $ENV{CPATH})
    foreach (dir ${cpathList})
      if (EXISTS ${dir}/boost)
        message (" BOOST_ROOT found in CPATH ${dir}/..")
        set (BOOST_ROOT ${dir}/..)
        break ()
      endif ()
    endforeach ()
  endif ()
endif ()


> On 2015-06-01, at 7:43 PM, Dave Yost <[email protected]> wrote:
> 
> Also, from what I can make of
>    CMake.app/Contents/share/cmake-3.2/Modules/FindBoost.cmake
> findBoost looks in
>    /sw/local/
> which is a path from the old, old Fink package system for OS X. findBoost 
> should also look in
>    /usr/local   (Homebrew and long unix tradition)
>    /opt/local   (MacPorts)
>    /opt/           (linux and others)
> 
>> On 2015-06-01, at 7:18 PM, Dave Yost <[email protected] <mailto:[email protected]>> 
>> wrote:
>> 
>> 
>>> On 2015-06-01, at 2:28 PM, Dave Yost <[email protected] <mailto:[email protected]>> 
>>> wrote:
>>> 
>>> The boost I want is not in a normal location, but:
>>> Boost's include dir is first in my CPATH.
>>> Boost's lib dir is first in my LD_LIBRARY_PATH.
>>> 
>>> Why doesn't cmake 3.2.2 find it?
>>> 
>>> I'm not being picky about the version.
>> 
>> In other words, why should I have to set BOOST_ROOT? It should be obvious 
>> where a boost is, even obvious where the one I want is. What am I missing?
>> 
>> 0 Mon 19:13:25 yost DaveBook ~/p/c++/cmake/findboost/build
>> 243 Z% cat ../CMakeLists.txt
>> cmake_minimum_required (VERSION 3.2.2 FATAL_ERROR)
>> 
>> project(findBoost CXX)
>> 
>> find_package (Boost 
>>               COMPONENTS program_options
>>               REQUIRED)
>> 
>> if (NOT Boost_FOUND)
>>   message (FATAL_ERROR "Could not find boost! ${BOOST_VERSION}")
>> endif ()
>> 
>> message ("  Boost_LIBRARY_DIR_DEBUG is ${Boost_LIBRARY_DIR_DEBUG}")
>> 0 Mon 19:13:34 yost DaveBook ~/p/c++/cmake/findboost/build
>> 244 Z% cmake --version                            
>> cmake version 3.2.20150504-ga4a12
>> 
>> CMake suite maintained and supported by Kitware (kitware.com/cmake 
>> <http://kitware.com/cmake>).
>> 0 Mon 19:13:45 yost DaveBook ~/p/c++/cmake/findboost/build
>> 245 Z% ls -l /usr/local/boost/1.55.0..llvm/include
>> total 0
>> drwxrwxr-x  221 yost  admin  7514 Mar  8 22:19 boost
>> 0 Mon 19:13:51 yost DaveBook ~/p/c++/cmake/findboost/build
>> 246 Z% CPATH=/usr/local/boost/1.55.0..llvm/include
>> 0 Mon 19:13:53 yost DaveBook ~/p/c++/cmake/findboost/build
>> 247 Z% ls -l /usr/local/boost/1.55.0..llvm/lib/libboost_program_options.*
>> -rw-rw-r--  1 yost  admin  938312 Mar  8 22:19 
>> /usr/local/boost/1.55.0..llvm/lib/libboost_program_options.a
>> -rwxrwxr-x  1 yost  admin  444236 Mar  8 22:18 
>> /usr/local/boost/1.55.0..llvm/lib/libboost_program_options.dylib
>> 0 Mon 19:14:18 yost DaveBook ~/p/c++/cmake/findboost/build
>> 248 Z% LD_LIBRARY_PATH=/usr/local/boost/1.55.0..llvm/lib 
>> 0 Mon 19:14:22 yost DaveBook ~/p/c++/cmake/findboost/build
>> 249 Z% DYLD_LIBRARY_PATH=/usr/local/boost/1.55.0..llvm/lib
>> 0 Mon 19:14:25 yost DaveBook ~/p/c++/cmake/findboost/build
>> 250 Z% cmake ..                                           
>> CMake Error at 
>> /Applications/CMake.app/Contents/share/cmake-3.2/Modules/FindBoost.cmake:1243
>>  (message):
>>   Unable to find the requested Boost libraries.
>> 
>>   Unable to find the Boost header files.  Please set BOOST_ROOT to the root
>>   directory containing Boost or BOOST_INCLUDEDIR to the directory containing
>>   Boost's headers.
>> Call Stack (most recent call first):
>>   CMakeLists.txt:5 (find_package)
>> 
>> 
>> CMake Error at CMakeLists.txt:10 (message):
>>   Could not find boost!
>> 
>> 
>> -- Configuring incomplete, errors occurred!
>> See also 
>> "/Users/yost/p/c++/cmake/findboost/build/CMakeFiles/CMakeOutput.log".
>> 1 Mon 19:14:46 yost DaveBook ~/p/c++/cmake/findboost/build
>> 251 Z% 
>> 
> 

-- 

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:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to