PROJECT(SniperKernel)
cmake_minimum_required(VERSION 2.6)

# Build Type
IF(NOT CMAKE_BUILD_TYPE)
  SET(CMAKE_BUILD_TYPE "DEBUG") # RELEASE, RELWITHDEBINFO MINSIZEREL
ENDIF()

# Find Package
FIND_PACKAGE(Boost)
FIND_PACKAGE(PythonLibs)
IF(Boost_FOUND AND PYTHONLIBS_FOUND)
  INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS} ${PYTHON_INCLUDE_PATH})
  SET(Boost_USE_STATIC_LIBS OFF)
  SET(Boost_USE_MULTITHREADED ON)
  SET(Boost_USE_STATIC_RUNTIME OFF)
  FIND_PACKAGE(Boost  COMPONENTS python REQUIRED) 
ELSEIF(NOT Boost_FOUND)
  MESSAGE(FATAL_ERROR "Unable to find Boost. Did you set BOOST_ROOT?")
ELSEIF(NOT PYTHONLIBS_FOUND)
  MESSAGE(FATAL_ERROR "Unable to find Python. Did you set PYTHONPATH?")
ENDIF()


# Compile Flag
IF(CMAKE_COMPILER_IS_GNUCXX)
  ADD_DEFINITIONS("-Wall")
ELSE()
  MESSAGE(FATAL_ERROR "CMakeLists.txt has not been tested/written for your compiler.")
ENDIF()

# Search Source Files
#${PROJECT_SOURCE_DIR}=="/home/yanll/workarea/sniper/SniperKernel"
include_directories(${PROJECT_SOURCE_DIR})
include_directories(${PROJECT_SOURCE_DIR}/src)
file(GLOB_RECURSE CPPLIB_SRC_LIST "src/*.cc")
file(GLOB_RECURSE PYBLIB_SRC_LIST "src/binding/*.cc")
MESSAGE(STATUS CPPLIB = ${CPPLIB_SRC_LIST}  )
MESSAGE(STATUS PYBLIB = ${PYBLIB_SRC_LIST}  )

# Compile Library for CPP
add_library(SniperKernel SHARED ${CPPLIB_SRC_LIST})
target_link_libraries(SniperKernel ${Boost_LIBRARIES}) 

# Compile Library for Python
ADD_LIBRARY(SniperPython SHARED ${PYBLIB_SRC_LIST})
TARGET_LINK_LIBRARIES(SniperPython  ${Boost_LIBRARIES})
TARGET_LINK_LIBRARIES(SniperPython  SniperKernel)

# Output Path and Install Area
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)

INSTALL(TARGETS SniperKernel LIBRARY DESTINATION ${PROJECT_SOURCE_DIR}/../SniperInstall/lib)#/home/yanll/workarea/sniper/SniperInstall/lib )
INSTALL(TARGETS SniperPython LIBRARY DESTINATION ${PROJECT_SOURCE_DIR}/../SniperInstall/pylib )
INSTALL(DIRECTORY SniperKernel DESTINATION ${PROJECT_SOURCE_DIR}/../SniperInstall/include PATTERN ".svn" EXCLUDE)
INSTALL(DIRECTORY python/Sniper DESTINATION ${PROJECT_SOURCE_DIR}/../SniperInstall/pylib)
