Skip to content
Snippets Groups Projects
CMakeLists.txt 1.97 KiB
Newer Older
  • Learn to ignore specific revisions
  • Ole Hansen's avatar
    Ole Hansen committed
    cmake_minimum_required(VERSION 3.5)
    
    project(hcana VERSION 0.90 LANGUAGES CXX)
    
    
    option(HCANA_BUILTIN_PODD "Use built-in Podd submodule (default: YES)" OFF)
    
    include(cmake/os.cmake)
    
    
    find_package(ROOT 6.0 REQUIRED CONFIG)
    include(${ROOT_USE_FILE})
    
    
    Whitney Armstrong's avatar
    Whitney Armstrong committed
    #https://github.com/fmtlib/fmt.git
    find_package(fmt REQUIRED)
    get_target_property(FMT_INCLUDE_DIR fmt::fmt INTERFACE_INCLUDE_DIRECTORIES)
    set(SPDLOG_FMT_EXTERNAL TRUE)
    #add_definitions(-DSPDLOG_FMT_EXTERNAL )
    find_package(spdlog REQUIRED)
    if(NOT spdlog_FOUND) 
      message("spdlog not found.")
      message(FATAL_ERROR "spdlog should be installed with analyzer if it is not available on the system.")
      #set(SPDLOG_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rd_party/spdlog/include)
    else()
      get_target_property(SPDLOG_INCLUDE_DIR spdlog::spdlog INTERFACE_INCLUDE_DIRECTORIES)
    endif()
    
    
    Ole Hansen's avatar
    Ole Hansen committed
    #----------------------------------------------------------------------------
    
    Ole Hansen's avatar
    Ole Hansen committed
    # Set up Podd and ROOT dependencies
    if(HCANA_BUILTIN_PODD)
      set(CMAKE_MODULE_PATH
        ${PROJECT_SOURCE_DIR}/podd/cmake/Modules
        ${CMAKE_MODULE_PATH}
        )
      include(PoddCMakeEnv)
    else()
      # Find Podd and register it as a dependency
      # This will also automatically set up ROOT
      find_package(Podd 1.6 REQUIRED)
      include(PoddCMakeEnv)
      config_add_dependency(Podd 1.6)
    endif()
    
    Ole Hansen's avatar
    Ole Hansen committed
    # Register ROOT dependency - it's in our public interface
    
    #config_add_dependency(ROOT 5.10)
    
    Ole Hansen's avatar
    Ole Hansen committed
    
    #----------------------------------------------------------------------------
    # Set up the compiler flags
    
    #set_compiler_flags("${ROOT_CXX_FLAGS}")
    #set_diagnostic_flags(WALL WEXTRA)
    #report_build_info()
    
    Ole Hansen's avatar
    Ole Hansen committed
    #----------------------------------------------------------------------------
    
    Ole Hansen's avatar
    Ole Hansen committed
    # Install in GNU-style directory layout
    include(GNUInstallDirs)
    set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/${MAIN_PROJECT_NAME_LC})
    
    Ole Hansen's avatar
    Ole Hansen committed
    
    #----------------------------------------------------------------------------
    
    Ole Hansen's avatar
    Ole Hansen committed
    # Directories in which we build things
    if(HCANA_BUILTIN_PODD)
      add_subdirectory(podd)
    endif()
    add_subdirectory(src)
    add_subdirectory(cmake)