cmake_minimum_required(VERSION 2.6)
enable_testing()
project(mockpp)

#############################################################

# Making releases:
#   MOCKPP_MINOR_VERSION += 1; ==> Major changes
#   MOCKPP_PATCH_VERSION += 1; ==> Minor changes

#   MOCKPP_MICRO_VERSION += 1;
#   MOCKPP_INTERFACE_AGE += 1;MOCKPP_USE_CXXTEST
#   MOCKPP_BINARY_AGE    += 1;
# if any functions have been added, set MOCKPP_INTERFACE_AGE to 0.
# if backwards compatibility has been broken, set MOCKPP_BINARY_AGE and MOCKPP_INTERFACE_AGE to 0.

SET(MOCKPP_MAJOR_VERSION  1)
SET(MOCKPP_MINOR_VERSION 16)
SET(MOCKPP_PATCH_VERSION  5)

SET(MOCKPP_MICRO_VERSION 44)
SET(MOCKPP_INTERFACE_AGE  0)
SET(MOCKPP_BINARY_AGE     8)

SET(MOCKPP_VERSION ${MOCKPP_MAJOR_VERSION}.${MOCKPP_MINOR_VERSION}.${MOCKPP_PATCH_VERSION})

#SET(CMAKE_VERBOSE_MAKEFILE true)

SET(SUBLIBMODEL STATIC)

SET(MOCKPP_USE_CXXTEST 1)
INCLUDE(CTest)

#############################################################

add_custom_target(check COMMAND ${CMAKE_TEST_COMMAND})

#add_executable(testprog EXCLUDE_FROM_ALL ...)
#add_test(<testprog> testprog)
#add_dependencies(check testprog)

#############################################################

SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} )
INCLUDE_DIRECTORIES(
  ${CMAKE_CURRENT_BINARY_DIR}     # first for local config!
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_SOURCE_DIR}/3party
  ${CMAKE_CURRENT_SOURCE_DIR}/3party/cxxtest
)


ADD_SUBDIRECTORY( 3party )
ADD_SUBDIRECTORY( mockpp )
ADD_SUBDIRECTORY( generator )

#############################################################

# set the compiler flags
#SET(CMAKE_BUILD_TYPE debug)
#SET(CMAKE_CXX_FLAGS "-Wall")
#SET(CMAKE_CXX_COMPILER g++)

INCLUDE (CheckIncludeFileCXX)
INCLUDE (CheckIncludeFiles)
CHECK_INCLUDE_FILE_CXX (limits HAVE_LIMITS)
CHECK_INCLUDE_FILES (limits.h HAVE_LIMITS_H)
CHECK_INCLUDE_FILES (values.h HAVE_VALUES_H)
CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H)
CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mockpp_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/mockpp/mockpp_config.h)

#############################################################

INCLUDE (CheckFunctionExists)
CHECK_FUNCTION_EXISTS(wcscmp HAVE_WCSCMP)

#INCLUDE (CheckSymbolExists)
#CHECK_SYMBOL_EXISTS(symbol headers variable)

#INCLUDE (CheckLibraryExists)
#CHECK_LIBRARY_EXISTS(library function location variable)

#INCLUDE (CheckPrototypeExists)
#CHECK_PROTOTYPE_EXISTS(function headers variable)

#INCLUDE (CheckCXXSourceCompiles)
#INCLUDE (CheckCSourceCompiles)
#CHECK_CXX_SOURCE_COMPILES("source++\n222" variable1)
#CHECK_C_SOURCE_COMPILES("source" variable2)

#############################################################

INSTALL_FILES(  FILES  mockpp.pc )

#############################################################
