1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-07-22 18:57:39 +02:00
trexio/CMakeLists.txt

77 lines
1.6 KiB
CMake
Raw Normal View History

2021-11-13 19:01:21 +01:00
cmake_minimum_required(VERSION 3.16)
2021-11-13 19:49:02 +01:00
# =========== SETUP THE PROJECT =============
2021-11-13 19:01:21 +01:00
project(Trexio
VERSION 2.0.0
DESCRIPTION "TREX I/O library"
LANGUAGES C Fortran
)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
2021-11-13 19:49:02 +01:00
# ============= CONFIGURE HDF5 ==============
2021-11-13 19:01:21 +01:00
option(ENABLE_HDF5 "Enable HDF5 support" ON)
if(ENABLE_HDF5)
2021-11-13 19:49:02 +01:00
find_package(HDF5 REQUIRED COMPONENTS C HL)
2021-11-13 19:01:21 +01:00
if(HDF5_FOUND)
message(STATUS "HDF5 version :: ${HDF5_VERSION}")
message(STATUS "HDF5 include dir :: ${HDF5_INCLUDE_DIRS}")
message(STATUS "HDF5 libraries :: ${HDF5_C_LIBRARIES}")
else()
# Download and install HDF5 library using FetchContent
# ...
endif()
endif()
2021-11-13 19:49:02 +01:00
# ========= DEFINE TREXIO C LIBRARY =========
2021-11-13 19:01:21 +01:00
#IF DO_SHARED
add_library(trexio SHARED
src/trexio.c
src/trexio_hdf5.c
src/trexio_text.c
)
#ELIF DO_STATIC
#ENDIF
set_target_properties(trexio PROPERTIES
VERSION ${PROJECT_VERSION}
PUBLIC_HEADER include/trexio.h
)
2021-11-13 19:49:02 +01:00
target_include_directories(trexio PRIVATE src)
include_directories(include)
2021-11-13 19:01:21 +01:00
if(ENABLE_HDF5)
2021-11-13 19:49:02 +01:00
target_include_directories(trexio PRIVATE ${HDF5_C_INCLUDE_DIRS})
target_link_libraries(trexio PRIVATE ${HDF5_C_HL_LIBRARIES} ${HDF5_C_LIBRARIES})
2021-11-13 19:01:21 +01:00
endif()
2021-11-13 19:49:02 +01:00
# ================= TESTING =================
enable_testing()
add_executable(io_all tests/io_all.c)
target_link_libraries(io_all PRIVATE trexio)
add_test(
NAME io_all
COMMAND $<TARGET_FILE:io_all>
)
# ============= INSTALL TREXIO ==============
2021-11-13 19:01:21 +01:00
include(GNUInstallDirs)
install(TARGETS trexio
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
2021-11-13 19:49:02 +01:00
# ===========================================
2021-11-13 19:01:21 +01:00