Skip to content
Snippets Groups Projects
Select Git revision
  • 5677e740d3e52e90bbc02c6c69b6c027492dba44
  • master default protected
  • stopcriterion
  • localsearch
  • adaptative2023
  • mh-builder2
  • archive_mechanism
  • moca_i_som
  • nwfsp
  • NoWait-FSP
  • ThomasF
  • archive-mechanism
  • Clement_VRPTW
  • saedan
14 results

CMakeLists.txt

Blame
  • CMakeLists.txt 3.45 KiB
    cmake_minimum_required(VERSION 3.10)
    
    set(CMAKE_CXX_STANDARD 20)
    
    # SET (CMAKE_CXX_COMPILER "/usr/bin/clang++-15" CACHE STRING "C++ compiler" FORCE)
    set(CMAKE_C_COMPILER "gcc")
    set(CMAKE_CXX_COMPILER "g++")
    ######################################################################################
    # 1) Set your application properties up
    ######################################################################################
    
    # Define your project name
    project(MH_Builder)
    
    # Define language
    enable_language(C)
    enable_language(CXX)
    
    
    #set(CMAKE_C_COMPILER "/usr/bin/clang-15")
    #set(CMAKE_CXX_COMPILER "/usr/bin/clang++-15")
    
    # Set your compilation options ("-g" for debug)
    set(CMAKE_CXX_FLAGS "-std=c++20 -Wall -Wextra -DWITHOUT_NUMPY")
    
    add_compile_options(-Wno-overloaded-virtual)
    
    # For debug/release specific flags
    set(CMAKE_CXX_FLAGS_RELEASE "-O3")
    set(CMAKE_CXX_FLAGS_DEBUG "-O3 -g --coverage -fprofile-arcs -ftest-coverage -lgcov")
    
    # For test coverage
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
    
    # Uncomment to build in debug mode (default: release mode)
    set(CMAKE_BUILD_TYPE Debug)
    
    
    ######################################################################################
    # 2) Setup standard paths
    ######################################################################################
    
    # Include sources from /src
    include_directories(${CMAKE_SOURCE_DIR}/src)
    
    # Add external hypervolume library
    add_subdirectory(external/hypervolume)
    
    # Add /src-bin for binary compilation
    # --> Requires a CMakeList.txt file in /src-bin
    add_subdirectory(src-bin)
    add_subdirectory(src-bin/mpl)
    
    # set location of generated executables
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
    
    # Add /src for libraries compilation
    # --> Requires a CMakeList.txt file in /src
    add_subdirectory(src)
    
    
    
    ######################################################################################
    # 3) Google Test
    ######################################################################################
    
    include(FetchContent)
    FetchContent_Declare(
            googletest
            GIT_REPOSITORY https://github.com/google/googletest.git