Skip to content
Snippets Groups Projects
CMakeLists.txt 1.44 KiB
Newer Older
Antonio Flores Montoya's avatar
Antonio Flores Montoya committed
#
# 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)
   add_definitions(-DUSE_ELFIO=1)
   include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third-party/elfio-code/)
 else()
   add_definitions(-DUSE_ELFIO=0)
Antonio Flores Montoya's avatar
Antonio Flores Montoya committed
# 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)

Brian Fairservice's avatar
Brian Fairservice committed
if (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
  add_compile_options(/WX)
else()
  add_compile_options(-Werror)
endif()

Antonio Flores Montoya's avatar
Antonio Flores Montoya committed
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\"
            )
        "
    )
export(PACKAGE ehp)