cmake_minimum_required(VERSION 2.6) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") project(sally CXX) enable_testing() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall") # If ENABLE_COVERAGE is defined, try to set coverage flags. if (ENABLE_COVERAGE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") endif() # Default is release with debug info if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) endif() # Add the target for the check add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) # Find the Boost libraries find_package(Boost 1.53.0 COMPONENTS program_options iostreams thread system REQUIRED) include_directories(${Boost_INCLUDE_DIRS}) # Come settings based on word size if (CMAKE_SIZEOF_VOID_P EQUAL 8) set(ANTLR_CONFIG_FLAG "--enable-64bit") else (CMAKE_SIZEOF_VOID_P EQUAL 8) set(ANTLR_CONFIG_FLAG "") endif (CMAKE_SIZEOF_VOID_P EQUAL 8) # Find the GMP number library if (SALLY_STATIC_BUILD) find_library(GMP_LIBRARY libgmp.a gmp) else() find_library(GMP_LIBRARY gmp) endif() if (GMP_LIBRARY) message(STATUS "GMP library: " ${GMP_LIBRARY}) else() message(FATAL_ERROR "Could not the GMP number library (sudo apt-get install libgmp-dev)") endif() # Find Yices SET(YICES2_HOME CACHE STRING "Yices2 installation directory") find_package(Yices2 2.3.0) if (YICES2_FOUND) add_definitions(-DWITH_YICES2) include_directories(${YICES2_INCLUDE_DIR}) endif() # Find MathSAT5 SET(MATHSAT5_HOME CACHE STRING "MathSAT5 installation directory") find_package(MathSAT5 5.3.3) if (MATHSAT5_FOUND) add_definitions(-DWITH_MATHSAT5) include_directories(${MATHSAT5_INCLUDE_DIR}) endif() # Make sure antlr C runtime is here include(ExternalProject) ExternalProject_Add( libantlr3c-3.4 URL "${sally_SOURCE_DIR}/antlr/libantlr3c-3.4.tar.gz" URL_MD5 08b1420129d5dccd0f4461cedf2a0d7d CONFIGURE_COMMAND <SOURCE_DIR>/configure ${ANTLR_CONFIG_FLAG} --enable-debuginfo --disable-antlrdebug --prefix=<INSTALL_DIR> BUILD_IN_SOURCE 1 ) ExternalProject_Get_Property(libantlr3c-3.4 INSTALL_DIR) set(ANTLR3C_INCLUDE_DIR "${INSTALL_DIR}/include") set(ANTLR3C_LIBRARY_DIR "${INSTALL_DIR}/lib") set(ANTLR3C_LIBRARY "antlr3c") link_directories(${ANTLR3C_LIBRARY_DIR}) # The antl3 binary set(ANTLR "${sally_SOURCE_DIR}/antlr/antlr3") # Add includes include_directories(${sally_SOURCE_DIR}/src ${ANTLR3C_INCLUDE_DIR}) # Configure the subdirectories add_subdirectory(src) # Add the test project add_subdirectory(test)