Skip to content
Snippets Groups Projects
Select Git revision
  • 5472d74e479fe00cd4225e8923b1fff1460bee83
  • main default protected
  • Kelvinrr-patch-3
  • radius_update
  • revert-616-apollo_pan
  • vims
  • 0.10
  • Kelvinrr-patch-2
  • revert-563-minirf_fix
  • Kelvinrr-patch-1
  • 0.9
  • acpaquette-patch-3
  • acpaquette-patch-2
  • acpaquette-patch-1
  • spiceql
  • ci-coverage
  • 0.10.0
  • 0.9.1
  • 0.9.0
  • 0.8.7
  • 0.8.8
  • 0.8.6
  • 0.8.3
  • 0.8.4
  • 0.8.5
  • 0.8.2
  • 0.8.1
  • 0.8.0
  • 0.7.3
  • 0.7.2
  • 0.7.1
  • 0.7.0
  • 0.6.5
  • 0.6.4
  • 0.6.3
  • 0.6.2
36 results

CMakeLists.txt

Blame
  • CMakeLists.txt 1.92 KiB
    
    #===============================================================================
    #      The main build file for building ale using CMake.
    #===============================================================================
    # CMake initialization
    
    # Specify the required version of CMake.
    # cmake 3.10 required for ctest/gtest integration
    cmake_minimum_required(VERSION 3.10)
    project(ale VERSION 0.6.0 DESCRIPTION "Abstraction Library for Ephemerides ")
    
    # include what we need
    include(GNUInstallDirs)
    
    set(CMAKE_CXX_STANDARD 11)
    
    # Third Party Dependencies
    find_package(GSL    REQUIRED)
    find_package(Eigen3 3.3 REQUIRED NO_MODULE)
    find_package(Python REQUIRED COMPONENTS Development)
    find_package(nlohmann_json REQUIRED)
    
    # Library setup
    add_library(ale SHARED
                ${CMAKE_CURRENT_SOURCE_DIR}/src/ale.cpp)
    set_target_properties(ale PROPERTIES
        VERSION ${PROJECT_VERSION}
        SOVERSION 1)
    set(ALE_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/")
    
    target_include_directories(ale
                               PUBLIC
                               ${ALE_INCLUDE_DIRS})
    
    target_link_libraries(ale
                          PRIVATE
                          GSL::gsl
                          GSL::gslcblas
                          Eigen3::Eigen
                          Python::Python
                          nlohmann_json::nlohmann_json)
    
    # Optional build tests
    option (BUILD_TESTS "Build tests" ON)
    if(BUILD_TESTS)
        include(cmake/gtest.cmake)
        include(GoogleTest)
        include(CTest)
    
        find_package (Threads)
        enable_testing()
        add_subdirectory(tests/ctests)
    
        # Setup for code coverage
        # default to off
        set(COVERAGE OFF CACHE BOOL "Coverage")
        if(COVERAGE)
            target_compile_options(ale PRIVATE --coverage -O0)
            target_link_libraries(ale PRIVATE --coverage -O0)
        endif()
    endif()
    
    # Install commands
    install(TARGETS ale LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
    install(DIRECTORY ${ALE_INCLUDE_DIRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})