diff --git a/CMakeLists.txt b/CMakeLists.txt index c4f589c..e35fe4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 3.16) +# =========== SETUP THE PROJECT ============= + project(Trexio VERSION 2.0.0 DESCRIPTION "TREX I/O library" @@ -9,10 +11,12 @@ project(Trexio set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) +# ============= CONFIGURE HDF5 ============== + option(ENABLE_HDF5 "Enable HDF5 support" ON) if(ENABLE_HDF5) - find_package(HDF5 REQUIRED) + find_package(HDF5 REQUIRED COMPONENTS C HL) if(HDF5_FOUND) message(STATUS "HDF5 version :: ${HDF5_VERSION}") message(STATUS "HDF5 include dir :: ${HDF5_INCLUDE_DIRS}") @@ -23,6 +27,8 @@ if(ENABLE_HDF5) endif() endif() +# ========= DEFINE TREXIO C LIBRARY ========= + #IF DO_SHARED add_library(trexio SHARED src/trexio.c @@ -38,16 +44,27 @@ set_target_properties(trexio PROPERTIES PUBLIC_HEADER include/trexio.h ) -target_include_directories(trexio PRIVATE - include - src - ) +target_include_directories(trexio PRIVATE src) + +include_directories(include) if(ENABLE_HDF5) - target_include_directories(trexio PRIVATE ${HDF5_C_INCLUDE_DIRS}) - target_link_libraries(trexio PRIVATE ${HDF5_C_LIBRARIES}) + target_include_directories(trexio PRIVATE ${HDF5_C_INCLUDE_DIRS}) + target_link_libraries(trexio PRIVATE ${HDF5_C_HL_LIBRARIES} ${HDF5_C_LIBRARIES}) endif() +# ================= TESTING ================= + +enable_testing() + +add_executable(io_all tests/io_all.c) +target_link_libraries(io_all PRIVATE trexio) +add_test( + NAME io_all + COMMAND $ +) + +# ============= INSTALL TREXIO ============== include(GNUInstallDirs) install(TARGETS trexio @@ -55,4 +72,5 @@ install(TARGETS trexio PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) +# ===========================================