add_library(eztrace-lib SHARED
  eztrace_core.c
  eztrace_otf2.c
  eztrace_internals.c
  eztrace_module.c
  include/eztrace-lib/eztrace.h
  include/eztrace-lib/eztrace_otf2.h
  include/eztrace-lib/eztrace_internals.h
  include/eztrace-lib/eztrace_module.h
  eztrace_pthread_core.c
)

target_include_directories(eztrace-lib
  PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDE_DIR}>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
)

target_compile_options(eztrace-lib
  PUBLIC
    -D_GNU_SOURCE
  PRIVATE
    -Wall
)

target_link_libraries(eztrace-lib
  PRIVATE
    ${OTF2_LIBRARY}
    atomic
  PUBLIC
    eztrace-core
    dl
    PRIVATE
    ${CMAKE_DL_LIBS}
    rt
    m
    )

install(TARGETS eztrace-lib EXPORT EZTraceLibTargets
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/eztrace-lib DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})


if (EZTRACE_ENABLE_MPI)
set(CMAKE_C_COMPILER ${MPICC})
set(CMAKE_Fortran_COMPILER ${MPIF90})
endif()

set(eztrace-mpi_core_SOURCES
  eztrace_mpi_core.c
  include/eztrace-lib/eztrace_mpi.h
  )

if(CMAKE_Fortran_COMPILER)
  # mpif.h may define a bunch of unused parameter which would generate lots of warnings
  set(eztrace-mpi_core_SOURCES ${eztrace-mpi_core_SOURCES}
    eztrace_mpi_core_f.f90  eztrace_mpi_core_fortran.c)
  
  set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wno-unused-parameter")
endif()


add_library(eztrace-mpi_core SHARED
  ${eztrace-mpi_core_SOURCES}
)
target_include_directories(eztrace-mpi_core
  PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDE_DIR}>
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
)

target_compile_options(eztrace-mpi_core
  PUBLIC
    -D_GNU_SOURCE
  PRIVATE
    -Wall 
)

target_link_libraries(eztrace-mpi_core
  PRIVATE
    ${OTF2_LIBRARY}
    atomic
  PUBLIC
    eztrace-core
    dl
    PRIVATE
    ${CMAKE_DL_LIBS}
    rt
    m
    )

install(TARGETS eztrace-mpi_core EXPORT EZTraceLibTargets
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/eztrace-lib DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})


