Select Git revision
CMakeLists.txt
-
Caron Olivier authoredCaron Olivier authored
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