[cmake-developers] [CMake 0012058]: FindBoost.cmake uses environment variables to override the command line
Mantis Bug Tracker
mantis at public.kitware.com
Thu Apr 7 20:54:32 EDT 2011
The following issue has been SUBMITTED.
======================================================================
http://public.kitware.com/Bug/view.php?id=12058
======================================================================
Reported By: Steve Goldhaber
Assigned To:
======================================================================
Project: CMake
Issue ID: 12058
Category: Modules
Reproducibility: always
Severity: minor
Priority: normal
Status: new
======================================================================
Date Submitted: 2011-04-07 20:54 EDT
Last Modified: 2011-04-07 20:54 EDT
======================================================================
Summary: FindBoost.cmake uses environment variables to
override the command line
Description:
The variables, BOOST_INCLUDEDIR and BOOST_LIBRARYDIR are set if they have values
in the environment, even if they were specified on the command line. This is
opposite of usual behavior (even BOOST_ROOT checks for a command line value
first).
Steps to Reproduce:
Set BOOST_INCLUDEDIR and/or BOOST_LIBRARYDIR as environment variables. Run cmake
on a CMakeLists.txt file containing a find_package(Boost ...) command and check
the values which were used (Setting Boost_DEBUG on helps).
Additional Information:
## This is the offending code (starts at line 522):
# If BOOST_INCLUDEDIR was defined in the environment, use it.
if( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" )
set(BOOST_INCLUDEDIR $ENV{BOOST_INCLUDEDIR})
endif()
# If BOOST_LIBRARYDIR was defined in the environment, use it.
if( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" )
set(BOOST_LIBRARYDIR $ENV{BOOST_LIBRARYDIR})
endif()
##I think it should be:
# If BOOST_INCLUDEDIR was defined in the environment but not on the command
line, use it.
if( NOT BOOST_INCLUDEDIR AND NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" )
set(BOOST_INCLUDEDIR $ENV{BOOST_INCLUDEDIR})
endif()
# If BOOST_LIBRARYDIR was defined in the environment but not on the command
line, use it.
if( NOT BOOST_LIBRARYDIR AND NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" )
set(BOOST_LIBRARYDIR $ENV{BOOST_LIBRARYDIR})
endif()
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2011-04-07 20:54 Steve GoldhaberNew Issue
======================================================================
More information about the cmake-developers
mailing list