[cmake-developers] [CMake 0015717]: If first FindBoost component is mpi, it cannot find other components

Mantis Bug Tracker mantis at public.kitware.com
Fri Aug 28 12:00:07 EDT 2015


The following issue has been SUBMITTED. 
====================================================================== 
http://www.cmake.org/Bug/view.php?id=15717 
====================================================================== 
Reported By:                Orion Poplawski
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   15717
Category:                   Modules
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2015-08-28 12:00 EDT
Last Modified:              2015-08-28 12:00 EDT
====================================================================== 
Summary:                    If first FindBoost component is mpi, it cannot find
other components
Description: 
FindBoost assumes that the first component found is where all components will be
found:

macro(_Boost_FIND_LIBRARY var build_type)

  find_library(${var} ${ARGN})

  if(${var})
    # If this is the first library found then save
Boost_LIBRARY_DIR_[RELEASE,DEBUG].
    if(NOT Boost_LIBRARY_DIR_${build_type})
      get_filename_component(_dir "${${var}}" PATH)
      set(Boost_LIBRARY_DIR_${build_type} "${_dir}" CACHE PATH "Boost library
directory ${build_type}" FORCE)
    endif()

This breaks on Fedora if the first component is mpi, mpi_python, or
graph_parallel because these are located in the mpi specific location (e.g.
/usr/lib64/mpich/lib) while the others are in the regular location.

See also https://bugzilla.redhat.com/show_bug.cgi?id=1257899

Steps to Reproduce: 
On Fedora, install boost-mpich-devel and mpich-devel

module load mpi/mpich-x86_64

CMakeLists.txt:
cmake_minimum_required(VERSION 3.0)
set(BOOST_MIN_VERSION 1.41)
FIND_PACKAGE(MPI)
FIND_PACKAGE(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS mpi serialization)

====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2015-08-28 12:00 Orion PoplawskiNew Issue                                    
======================================================================



More information about the cmake-developers mailing list