[cmake-developers] [CMake 0015702]: FindBoost ignores Boost_NO_SYSTEM_PATH in debug builds

Mantis Bug Tracker mantis at public.kitware.com
Mon Aug 17 10:17:07 EDT 2015


The following issue has been SUBMITTED. 
====================================================================== 
http://www.cmake.org/Bug/view.php?id=15702 
====================================================================== 
Reported By:                John Harris
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   15702
Category:                   Modules
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2015-08-17 10:17 EDT
Last Modified:              2015-08-17 10:17 EDT
====================================================================== 
Summary:                    FindBoost ignores Boost_NO_SYSTEM_PATH in debug
builds
Description: 
It seems the FindBoost module in Clion 1.1's new cmake ignores the
Boost_NO_SYSTEM_PATHS for a Debug build, selecting /usr/lib64 instead of the
correct library path, resulting in link errors.

I had to do this to make the Debug configuration work:

Work around FindBoost locating debug libs in the /usr/lib64 instead of the
custom installation
SET(Boost_LIBRARY_DIR_DEBUG $ENV{HOME}/usr/local/boost/lib CACHE PATH "Forced
boost lib dir for debug" FORCE)
SET(Boost_PROGRAM_OPTIONS_LIBRARY_DEBUG
$ENV{HOME}/usr/local/boost/lib/libboost_program_options-gcc49-mt-1_56.so CACHE
FILEPATH "Forced boost program_options lib dir for debug" FORCE)


Here is the cmake output showing the incorrect Boost_LIBRARY_DIR_DEBUG

[ /home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:549
] _boost_TEST_VERSIONS = 1.56.0;1.56
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:551 ]
Boost_USE_MULTITHREADED = ON
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:553 ]
Boost_USE_STATIC_LIBS = 
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:555 ]
Boost_USE_STATIC_RUNTIME = 
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:557 ]
Boost_ADDITIONAL_VERSIONS = 
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:559 ]
Boost_NO_SYSTEM_PATHS = ON
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:611 ]
Declared as CMake or Environmental Variables:
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:613 ]
BOOST_ROOT = /home/jharris/usr/local/boost
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:615 ]
BOOST_INCLUDEDIR = 
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:617 ]
BOOST_LIBRARYDIR = 
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:619 ]
_boost_TEST_VERSIONS = 1.56.0;1.56
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:712 ]
location of version.hpp:
/home/jharris/usr/local/boost/include/boost-1_56/boost/version.hpp
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:736 ]
version.hpp reveals boost 1.56.0
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:822 ]
guessed _boost_COMPILER = -gcc49
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:832 ]
_boost_MULTITHREADED = -mt
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:875 ]
_boost_RELEASE_ABI_TAG = -
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:877 ]
_boost_DEBUG_ABI_TAG = -d
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:931 ]
_boost_LIBRARY_SEARCH_DIRS_RELEASE =
/home/jharris/usr/local/boost/lib;NO_DEFAULT_PATH;NO_CMAKE_FIND_ROOT_PATH_boost_LIBRARY_SEARCH_DIRS_DEBUG
= /usr/lib64;NO_DEFAULT_PATH;NO_CMAKE_FIND_ROOT_PATH
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:1043 ]
Searching for PROGRAM_OPTIONS_LIBRARY_RELEASE:
boost_program_options-gcc49-mt-1_56;boost_program_options-gcc49-mt;boost_program_options-mt-1_56;boost_program_options-mt;boost_program_options
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:343 ]
Boost_LIBRARY_DIR_RELEASE = /home/jharris/usr/local/boost/lib
_boost_LIBRARY_SEARCH_DIRS_RELEASE =
/home/jharris/usr/local/boost/lib;NO_DEFAULT_PATH;NO_CMAKE_FIND_ROOT_PATH
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:1085 ]
Searching for PROGRAM_OPTIONS_LIBRARY_DEBUG:
boost_program_options-gcc49-mt-d-1_56;boost_program_options-gcc49-mt-d;boost_program_options-mt-d-1_56;boost_program_options-mt-d;boost_program_options-mt;boost_program_options
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:343 ]
Boost_LIBRARY_DIR_DEBUG = /usr/lib64 _boost_LIBRARY_SEARCH_DIRS_DEBUG =
/usr/lib64;NO_DEFAULT_PATH;NO_CMAKE_FIND_ROOT_PATH
– [
/home/jharris/clion-1.1/bin/cmake/share/cmake-3.3/Modules/FindBoost.cmake:1151 ]
Boost_FOUND = 1
– Boost version: 1.56.0
– Found the following Boost libraries:

Steps to Reproduce: 
Try to link a boost program using a custom installation of Boost in your home
directory with a different, incompatible one installed by default in the Linux
OS filesystem.

Additional Information: 
This worked fine until I updated to this version with the latest CLion.
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2015-08-17 10:17 John Harris    New Issue                                    
======================================================================



More information about the cmake-developers mailing list