Newer
Older
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# Add compiler flags
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -std=c++14")
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}")
# add source folder
include_directories(src)
add_subdirectory(src)
# add tests
# enable_testing()
# add_subdirectory(tests)