cmake_minimum_required(VERSION 3.16)
project(ioai_hdf5_native LANGUAGES CXX C)

option(IOAI_HDF5_HAVE_LIB "Link against HDF5" OFF)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_library(ioai_h5 STATIC
  src/ioai_h5.cpp
)

target_include_directories(ioai_h5 PUBLIC
  "${CMAKE_CURRENT_SOURCE_DIR}/include"
)

if(IOAI_HDF5_HAVE_LIB)
  find_package(HDF5 REQUIRED COMPONENTS C)
  target_link_libraries(ioai_h5 PUBLIC HDF5::HDF5)
  target_compile_definitions(ioai_h5 PUBLIC IOAI_HDF5_HAVE_LIB=1)
endif()

# Emscripten: consumers link this static lib and add their own emcc flags.
if(EMSCRIPTEN)
  target_compile_options(ioai_h5 PRIVATE
    $<$<CONFIG:Release>:-O3>
    $<$<CONFIG:RelWithDebInfo>:-O2>
  )
endif()
