diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..422f7f0a337942ed692918074eeb3b00321ec7aa --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,42 @@ +# +# 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) + +# 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) + +add_compile_options(-Werror) +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) \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..2a9e1c765a7658cb52dd6a80d6ee8bda96d32daf --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,33 @@ +SET(PROJECT_NAME ehp) + + +set(${PROJECT_NAME}_H + ehp_dwarf2.hpp + ehp_priv.hpp + scoop_replacement.hpp +) + +set(${PROJECT_NAME}_SRC + ehp.cpp +) + +add_library(${PROJECT_NAME} SHARED + ${${PROJECT_NAME}_H} + ${${PROJECT_NAME}_SRC} + ) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + +set(PUBLIC_HEADERS + ${CMAKE_SOURCE_DIR}/include/ehp.hpp + ) + +add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E remove_directory "${CMAKE_BINARY_DIR}/include") +add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_BINARY_DIR}/include") +add_custom_command( + TARGET ${PROJECT_NAME} POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy + ${PUBLIC_HEADERS} + "${CMAKE_BINARY_DIR}/include/")