cmake_minimum_required(VERSION 2.8)
project(mcta)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${mcta_SOURCE_DIR}/bin)
set(CMAKE_MODULE_PATH ${mcta_SOURCE_DIR}/cmake)
set(BUILD_SHARED_LIBS OFF)

# set default build type
set(CMAKE_CONFIGURATION_TYPES "Debug;Release;Profile")
if(NOT CMAKE_BUILD_TYPE)
  set(CMAKE_BUILD_TYPE "Release" CACHE STRING
    "Choose the type of build, options are: Debug Release Profile." FORCE)
endif()

option(STATIC_LINKAGE "generate statically linked executables" OFF)

### compiler configuration
if(${CMAKE_COMPILER_IS_GNUCC})
  set(CMAKE_C_FLAGS_PROFILE "-O2 -pg")
  if(${CMAKE_COMPILER_IS_GNUCXX})
    if (${STATIC_LINKAGE})
      set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static")
    endif()
    set(CMAKE_CXX_FLAGS "-Wall -ansi -pedantic -Wextra -Wfloat-equal -Wundef -Wno-deprecated -Wno-sign-compare -std=c++11")
    set(CMAKE_CXX_FLAGS_PROFILE "-O2 -pg")
  endif()
endif()


### boost library
set(Boost_USE_MULTITHREADED OFF)

set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_STATIC_RUNTIME ON)

#set(Boost_USE_STATIC_LIBS ${STATIC_LINKAGE})
set(Boost_USE_MULTITHREADED OFF)
find_package(Boost 1.36 COMPONENTS program_options REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})

### uppaal libraries
add_subdirectory(external)

add_library(utap STATIC IMPORTED)
set_property(TARGET utap PROPERTY IMPORTED_LOCATION ${UTAP_LIBRARY})
set_property(TARGET utap PROPERTY DEPENDS libutap)
#add_dependencies(utap libutap)
include_directories(${UTAP_INCLUDE_DIR})

add_library(udbm STATIC IMPORTED)
set_property(TARGET udbm PROPERTY IMPORTED_LOCATION ${UDBM_LIBRARY})
set_property(TARGET udbm PROPERTY DEPENDS libudbm)
#add_dependencies(udbm libudbm)
include_directories(${UDBM_INCLUDE_DIR})

add_subdirectory(src)
set_property(TARGET search PROPERTY DEPENDS libudbm libutap)
