# Include directories
include_directories(
  .
  ../../core
  ../../pptrace
  ${MPI_INCLUDE_PATH}
  ${MPI_Fortran_INCLUDE_PATH}
)

# Libraries diretory
link_directories(${CMAKE_BINARY_DIR}/lib/ ${CMAKE_BINARY_DIR}/extlib/lib/)

# Create : Libeztrace-convert-mpi.so
set(CMAKE_C_FLAGS "${C_FLAGS} -DUSE_MPI -DMPI_MODULE_NAME=mpi -DMPI_EVENT_ID=4")

add_definitions(${MPI_Fortran_COMPILE_FLAGS})

add_library(
  eztrace-convert-mpi
  SHARED
  eztrace_convert_mpi.c
  eztrace_convert_mpi_p2p.c
  eztrace_convert_mpi_coll.c
  eztrace_convert_mpi_pers.c
  eztrace_stats_mpi.c
)

target_link_libraries(
 eztrace-convert-mpi
 gtg
 ${INTERCEPT_LIB}
)

# Create : libeztrace-mpi.so
FILE(GLOB mpi_function_files mpi_funcs/*.c)

add_library(
  eztrace-mpi
  SHARED
  mpi.c
  mpi_fortran.c
  mpi_f.f90
  mpi3_f.f90
  ${mpi_function_files}
)


target_link_libraries(
  eztrace-mpi
  ${MPI_LIBRARIES}
  ${INTERCEPT_LIB}
 ${MPI_Fortran_LIBRARIES}
 eztrace
)

set_target_properties(eztrace-mpi PROPERTIES COMPILE_FLAGS "${MPI_COMPILE_FLAGS} -DLD_PRELOAD_NAME=\\\"${LD_PRELOAD_NAME}\\\" -DUSE_MPI3")

# Create : libeztrace-autostart-mpi.so
add_library(
  eztrace-autostart-mpi
  SHARED
  mpi.c
  mpi_fortran.c
  mpi_f.f90
  mpi3_f.f90
  ${mpi_function_files}
)


target_link_libraries(
  eztrace-autostart-mpi
  ${MPI_LIBRARIES}
  ${INTERCEPT_LIB}
  ${MPI_Fortran_LIBRARIES}
  eztrace
 )

set_target_properties(eztrace-autostart-mpi PROPERTIES COMPILE_FLAGS "-DEZTRACE_AUTOSTART ${MPI_COMPILE_FLAGS} -DLD_PRELOAD_NAME=\\\"${LD_PRELOAD_NAME}\\\" -DUSE_MPI3")
set_target_properties (eztrace-mpi eztrace-autostart-mpi PROPERTIES LINK_FLAGS "${MPI_LINK_FLAGS} -DUSE_MPI3")
install(TARGETS eztrace-convert-mpi eztrace-mpi eztrace-autostart-mpi LIBRARY DESTINATION lib)