##############################################################################
#
# \file   CMakeLists.txt
# \brief  CMake file to build, configure, test, and install the implementation
#         of project DVBA.
# \author Andreas Schuh
# \date   01/03/11
#
# $Revision: 143 $
# $Id: CMakeLists.txt 143 2011-02-08 18:17:30Z schuha@UPHS.PENNHEALTH.PRV $
#
# <b>Last changed</b>
# $Author: schuha@UPHS.PENNHEALTH.PRV $
# $Date: 2011-02-08 13:17:30 -0500 (Tue, 08 Feb 2011) $
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# For copyright information see Copyright section of project
# ReadMe.html in the project's root directory.
#
# Contact: sbia-software@uphs.upenn.edu
#
##############################################################################

# ============================================================================
# common settings
# ============================================================================

# directory of local external libraries
set (PROJECT_EXTERNAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external")

# ============================================================================
# external packages
# ============================================================================

# Nifti
find_package (NiftiCLib REQUIRED)

if (NiftiCLib_FOUND)
  include_directories (NiftiCLib_INCLUDE_DIR)
endif ()

# Boost
set (Boost_FIND_REQUIRED       TRUE)
set (Boost_FIND_QUIETLY        TRUE)
set (Boost_USE_MULTITHREADED   TRUE)
set (Boost_USE_STATIC_LIBS     TRUE)
set (Boost_ADDITIONAL_VERSIONS "1.39" "1.39.0")

find_package (
  Boost
  COMPONENTS
    program_options
    unit_test_framework
    test_exec_monitor
)

if (Boost_FOUND)
  include_directories (${Boost_INCLUDE_DIR})
  link_directories    (${Boost_LIBRARY_DIRS})
endif ()

# ATLAS
find_package (ATLAS REQUIRED)

if (ATLAS_FOUND)
  include (${ATLAS_USE_FILE})
endif ()

# LAPACK
find_package (Lapack REQUIRED)

#if (Lapack_FOUND)
  include_directories (${CBLAS_INCLUDES})
#endif ()

# OpenCV
find_package (OpenCV REQUIRED)

if (OpenCV_FOUND)
  include_directories (${OpenCV_CV_INCLUDE_DIR})
endif ()

# MPI
find_package (MPI)

if (MPI_FOUND)
  option (ODVBA_ENABLE_MPI "Whether to enable MPI support" ON)

  if (ODVBA_ENABLE_MPI)
    include_directories (${MPI_INCLUDE_PATH})
  endif ()
else ()
  set (
    ODVBA_ENABLE_MPI OFF
    CACHE
      BOOL
      "MPI not available"
    FORCE
  )
endif ()

# ============================================================================
# subdirectories
# ============================================================================

add_subdirectory (source)
add_subdirectory (scripts)
add_subdirectory (tests)
