cmake_minimum_required (VERSION 2.6)


macro(use_cxx11)
  if (CMAKE_VERSION VERSION_LESS "3.1")
      # Assume we are in the lab with an ANCIENT version of g++
      set (CMAKE_CXX_FLAGS "--std=gnu++0x ${CMAKE_C_FLAGS}")
  else ()
    set (CMAKE_CXX_STANDARD 11)
  endif ()
endmacro(use_cxx11)

use_cxx11()

project (hist-exec)

#SET(CMAKE_CXX_STANDARD 11)

#find_package (cairo)
#if (cairo_FOUND)
#  include_directories(${BZIP_INCLUDE_DIRS})
#  target_link_libraries (helloworld ${BZIP2_LIBRARIES})
#endif (cairo_FOUND)

#set(CAIRO_INCLUDE_DIRS "/opt/local/include")
#set(CAIRO_LIBRARY_DIRS "/opt/local/lib")
#set(CAIRO_LIBRARIES cairo)

#Set the custom CMake module directory where our include/lib finders are

IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
  SET(CMAKE_INSTALL_PREFIX
    "/opt/local" CACHE PATH "macports install prefix" FORCE
    )
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)

SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")

SET(CAIRO_DIR ${CMAKE_MODULE_PATH})

FIND_PACKAGE(CAIRO REQUIRED)

IF(CAIRO_FOUND)
  MESSAGE("CAIRO Library Found OK")
  MESSAGE("${CAIRO_INCLUDE_DIR} INCD")
  MESSAGE("${CAIRO_LIBRARY} LIB")
ELSE(CAIRO_FOUND)
  MESSAGE(FATAL_ERROR "Cairo: NOT FOUND")
ENDIF(CAIRO_FOUND)

## see: http://www.cmake.org/cmake/help/v3.0/module/FindBoost.html#module:FindBoost
#FIND_PACKAGE(Boost REQUIRED COMPONENTS thread-mt system-mt)
#IF (Boost_FOUND)
#  MESSAGE("Boost Library Found OK")
#  MESSAGE("${Boost_INCLUDE_DIR} INCD")
#  MESSAGE("${Boost_THREAD-MT_LIBRARY} L1")
#  MESSAGE("${Boost_SYSTEM-MT_LIBRARY} L2")
#ELSE(Boost_FOUND)
#  MESSAGE(FATAL_ERROR "Boost: NOT FOUND")
#ENDIF (Boost_FOUND)

# see: http://www.cmake.org/cmake/help/v3.0/module/FindX11.html#module:FindX11
FIND_PACKAGE(X11 REQUIRED)
IF (X11_FOUND)
  MESSAGE("X11 Library Found OK")
  MESSAGE("${X11_INCLUDE_DIR} INCD")
  MESSAGE("${X11_X11_LIB} LIB")
  MESSAGE("${X11_LIBRARIES} LIBS")
ELSE(X11_FOUND)
  MESSAGE(FATAL_ERROR "X11: NOT FOUND")
ENDIF (X11_FOUND)

find_package (Threads)

add_executable(hist-exec AllanachPalette.c++ Axis.c++ Background.c++ Bin.c++ BoundMonitor.c++ CairoPaintable.c++ Colour.c++ ColourScale.c++ Configuration.c++ Data.c++ GreyscalePalette.c++ Hist.c++ Hist1D.c++ Hist2D.c++ ProfileHist.c++ InterpolatedPalette.c++ LinearlyRemappedPalette.c++ LogScaleHelper.c++ NonInvalidatingSequence.c++ OurXWindow.c++ Paintable1DHistogram.c++ Paintable1DRatioHistogram.c++ PaintableProfileHistogram.c++ Paintable2DHistogram.c++ PaintableAxes.c++ PaintableLegend.c++ PaintableTitle.c++ RainbowPalette.c++ Redrawer.c++ Scene.c++ Stats.c++ Stats2D.c++ Synch.c++ TfmAxisText.c++ TfmHist2D.c++ TfmProfileHist.c++ TfmHistBox.c++ TheBuffer.c++ ThePalette.c++ UserPalette.c++ XWindow.c++ main.c++ newHistArgs.c++)

include_directories(${CAIRO_INCLUDE_DIR} ${X11_INCLUDE_DIR} ${Boost_INCLUDE_DIR})
target_link_libraries(hist-exec ${CAIRO_LIBRARY} ${X11_LIBRARIES} ${Boost_THREAD-MT_LIBRARY} ${Boost_SYSTEM-MT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} )

# add the install targets

#install (TARGETS MathFunctions DESTINATION bin)
#install (FILES MathFunctions.h DESTINATION include)
#install (FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h"        
#           DESTINATION include)
INSTALL (PROGRAMS hist-script DESTINATION bin RENAME hist )
INSTALL (PROGRAMS hist-script DESTINATION bin RENAME hist2D )
INSTALL (PROGRAMS hist-script DESTINATION bin RENAME histWeighted )
INSTALL (PROGRAMS hist-script DESTINATION bin RENAME hist2DWeighted )
install (TARGETS  hist-exec      DESTINATION bin)

