PROJECT(LIPSIA)

# address warnings by cmake 2.6
cmake_minimum_required(VERSION 2.6)
if(COMMAND cmake_policy)
  cmake_policy(SET CMP0003 NEW)
  cmake_policy(SET CMP0002 NEW)
endif(COMMAND cmake_policy)

IF(NOT UNIX)
  MESSAGE(FATAL_ERROR
    "The lipsia project only supports unix platforms, at the moment."
    )
ENDIF(NOT UNIX)

# add path for new modules
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
	"${CMAKE_SOURCE_DIR}/cmake/Modules")

# configure install destinations
SET(LIPSIA_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin")
# move private libs into separate directory (only relevant for shared libs)
SET(LIPSIA_INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib/lipsia")
# target directory of the docs
SET(LIPSIA_INSTALL_DOC_DIR "${CMAKE_INSTALL_PREFIX}/share/doc/lipsia")

# add option to build shared libraries. The default is OFF.
# Building the three local libs as private shared libs, would reduce
# the memory footprint of LIPSIA especially on multi-user machines
# (even size of binaries would shrink by 30%).
# However, that does not seem to be possible since libvlh relies on symbols
# (e.g. 'pr') that are shared by all applications using the lib, which
# probably break the desired behavior. Maybe this could be changed?
#OPTION(BUILD_SHARED_LIBS "Toggle building shared libraries")

# look for VIA
FIND_PACKAGE(VIA REQUIRED)

# look for Qt3
FIND_PACKAGE(Qt3 REQUIRED)

# look for DCMTK
FIND_PACKAGE(DCMTK REQUIRED)

# look for nifticlib
FIND_PACKAGE(NIFTI REQUIRED)

# look for GSL
FIND_PACKAGE(GSL REQUIRED)

# look for fftw3
FIND_PACKAGE(FFTW3 REQUIRED)

# look for OpenGL
FIND_PACKAGE(OpenGL REQUIRED)

# look for ZLIB
FIND_PACKAGE(ZLIB REQUIRED)

# CPack support
# INCLUDE(CPack)

#
# Install global pieces
#

# add include directories
INCLUDE_DIRECTORIES(${VIA_INCLUDE_DIR}
  ${VIAIO_INCLUDE_DIR}
  ${DCMTK_INCLUDE_DIR}
  ${NIFTI_INCLUDE_DIR}
	${GSL_INCLUDE_DIR}
	)

INSTALL(DIRECTORY doc/html
  DESTINATION ${LIPSIA_INSTALL_DOC_DIR})

install(PROGRAMS lipsia-help DESTINATION ${LIPSIA_INSTALL_BIN_DIR})

# subprojects
ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/src)

