Newer
Older
#
# Cmake Configuration
#
# Need 3.9 to support CXX_STANDARD=17
CMAKE_MINIMUM_REQUIRED(VERSION 3.9.0)
PROJECT(ehp)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
option(USE_ELFIO "Use the elfio library to parse elf files" OFF)
if(USE_ELFIO)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third-party/elfio-code/)
else()
add_definitions(-DUSE_ELFIO=0)
# Use C++17
set(CMAKE_CXX_STANDARD 17)
# Error if it's not available
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Base include path for ehp
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
if (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
add_compile_options(/WX)
else()
add_compile_options(-Werror)
endif()
add_compile_options(-fPIC)
add_subdirectory(src)
# ---------------------------------------------------------------------------
# Export config for use by other CMake projects
# ---------------------------------------------------------------------------
export(TARGETS ehp FILE "${CMAKE_CURRENT_BINARY_DIR}/ehpTargets.cmake")
file(
WRITE "${CMAKE_CURRENT_BINARY_DIR}/ehpConfig.cmake"
"
include(\"\$\{CMAKE_CURRENT_LIST_DIR\}/ehpTargets.cmake\")
set_property(
TARGET ehp
APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES \"${CMAKE_BINARY_DIR}/include\"
)
"
)