cmake_minimum_required (VERSION 2.6.2) project (cereal) option(SKIP_PORTABILITY_TEST "Skip portability tests" OFF) if(NOT CMAKE_VERSION VERSION_LESS 3.0) # installing cereal requires INTERFACE lib option(JUST_INSTALL_CEREAL "Don't do anything besides installing the library" OFF) endif() if(NOT MSVC) set(CMAKE_CXX_FLAGS "-Wall -Werror -g -Wextra -Wshadow -pedantic ${CMAKE_CXX_FLAGS}") if(CMAKE_VERSION VERSION_LESS 3.1) set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") else() if(NOT DEFINED CMAKE_CXX_STANDARD OR CMAKE_CXX_STANDARD STREQUAL "98") set(CMAKE_CXX_STANDARD 11) endif() set(CMAKE_CXX_STANDARD_REQUIRED ON) endif() endif() if(NOT CMAKE_VERSION VERSION_LESS 3.0) add_library(cereal INTERFACE) target_include_directories(cereal INTERFACE $ $ ) install(TARGETS cereal EXPORT cereal DESTINATION lib) # ignored install(EXPORT cereal FILE cereal-config.cmake DESTINATION share/cmake/cereal) install(DIRECTORY include/cereal DESTINATION include) endif() if(JUST_INSTALL_CEREAL) return() endif() include_directories(./include) # find_package(Boost COMPONENTS serialization unit_test_framework) # if(Boost_FOUND) # include_directories(SYSTEM ${Boost_INCLUDE_DIRS}) # enable_testing() # add_subdirectory(unittests) # endif(Boost_FOUND) # add_subdirectory(sandbox) # find_package(Doxygen) # if(DOXYGEN_FOUND) # configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen.in" "${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg" @ONLY) # add_custom_target(doc # COMMAND ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg" # WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" # COMMENT "Generating API documentation with Doxygen" VERBATIM # ) # configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/updatedoc.in" "${CMAKE_CURRENT_BINARY_DIR}/updatedoc.sh" @ONLY) # add_custom_target(update-doc # COMMAND "${CMAKE_CURRENT_BINARY_DIR}/updatedoc.sh" # DEPENDS doc # COMMENT "Copying documentation to gh-pages branch" VERBATIM # ) # endif(DOXYGEN_FOUND)