[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