Skip to content
Snippets Groups Projects
CMakeLists.txt 1.68 KiB
Newer Older
  • Learn to ignore specific revisions
  • Hiba Ouni's avatar
    Hiba Ouni committed
    # set minimum cmake version
    
    cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
    
    Hiba Ouni's avatar
    Hiba Ouni committed
    
    # project name and language
    
    project(pmc-sog C CXX)
    
    
    set(CMAKE_CXX_STANDARD 14)
    
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    set(CMAKE_CXX_EXTENSIONS OFF)
    
    # Add compiler flags
    
    Hiba Ouni's avatar
    Hiba Ouni committed
    if(CMAKE_COMPILER_IS_GNUCC)
    
    
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -std=c++14")
    
    
    Hiba Ouni's avatar
    Hiba Ouni committed
    endif()
    
    # add pn parser
    set(PARSER_DIR "${CMAKE_SOURCE_DIR}/libraries/parser")
    message(STATUS "Building Petri Net parser ...")
    include_directories("${PARSER_DIR}/src")
    add_subdirectory(${PARSER_DIR})
    
    # add sylvan
    message(STATUS "Building Sylvan ...")
    set(SYLVAN_DIR "${CMAKE_SOURCE_DIR}/third-party/sylvan")
    include_directories(${SYLVAN_DIR})
    add_subdirectory(${SYLVAN_DIR})
    
    
    # build spot if it is not installed on the system
    find_library(SPOT_LIBRARY "spot")
    find_library(BDDX_LIBRARY "bddx")
    
    if(NOT SPOT_LIBRARY)
      include(ExternalProject)
    
      message(STATUS "Building Spot ...")
      set(SPOT_DIR "${CMAKE_BINARY_DIR}/third-party/spot")
    
      ExternalProject_Add(SpotLibrary
    
        URL                   http://www.lrde.epita.fr/dload/spot/spot-2.9.tar.gz
    
        DOWNLOAD_NO_PROGRESS  YES
        CONFIGURE_COMMAND     ./configure --disable-doxygen --disable-python --enable-silent-rules --silent --prefix=<INSTALL_DIR>
        BUILD_COMMAND         make -j
        BUILD_IN_SOURCE       1
    
      )
    
      include_directories("${SPOT_DIR}/include")
    else ()
    
     message(STATUS "Found spot: ${SPOT_LIBRARY}")
     message(STATUS "Found bddx: ${BDDX_LIBRARY}")
    
     find_path(SPOT_INCLUDE_PATH "spot")
     include_directories("${SPOT_INCLUDE_PATH}")
    
    endif()
    
    Hiba Ouni's avatar
    Hiba Ouni committed
    # add source folder
    include_directories(src)
    add_subdirectory(src)
    
    # add tests
    # enable_testing()
    # add_subdirectory(tests)
    
    Hiba Ouni's avatar
    Hiba Ouni committed