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