# ---------------------------------------------------------------
# Programmer(s): Cody J. Balos @ LLNL
# ---------------------------------------------------------------
# SUNDIALS Copyright Start
# Copyright (c) 2002-2020, Lawrence Livermore National Security
# and Southern Methodist University.
# All rights reserved.
#
# See the top-level LICENSE and NOTICE files for details.
#
# SPDX-License-Identifier: BSD-3-Clause
# SUNDIALS Copyright End
# ---------------------------------------------------------------
# CMakeLists.txt file for the F2003 parallel NVECTOR object library
# ---------------------------------------------------------------

set(nvecparallel_SOURCES fnvector_parallel_mod.f90 fnvector_parallel_mod.c)

if(MPI_C_COMPILER)
  # use MPI wrapper as the compiler
  set(CMAKE_C_COMPILER ${MPI_C_COMPILER})
else()
  # add MPI_INCLUDE_PATH to include directories
  include_directories(${MPI_INCLUDE_PATH})
endif()

if(MPI_Fortran_COMPILER)
  # use MPI wrapper as the compiler
  set(CMAKE_Fortran_COMPILER ${MPI_Fortran_COMPILER})
else()
  # add MPI_INCLUDE_PATH to include directories
  include_directories(${MPI_INCLUDE_PATH})
endif()

if(SUNDIALS_BUILD_STATIC_LIBS)
  sundials_add_f2003_interface_library(sundials_fnvecparallel_mod_static STATIC_OBJECT
                                       ${nvecparallel_SOURCES})
  add_dependencies(sundials_fnvecparallel_mod_static_obj sundials_fgeneric_static_obj)
  set_target_properties(sundials_fnvecparallel_mod_static PROPERTIES
                        OUTPUT_NAME sundials_fnvecparallel_mod
                        CLEAN_DIRECT_OUTPUT 1)
  install(TARGETS sundials_fnvecparallel_mod_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif(SUNDIALS_BUILD_STATIC_LIBS)

if(SUNDIALS_BUILD_SHARED_LIBS)
  sundials_add_f2003_interface_library(sundials_fnvecparallel_mod_shared SHARED_OBJECT
                                       ${nvecparallel_SOURCES})
  add_dependencies(sundials_fnvecparallel_mod_shared_obj sundials_fgeneric_shared_obj)
  set_target_properties(sundials_fnvecparallel_mod_shared PROPERTIES
                        OUTPUT_NAME sundials_fnvecparallel_mod
                        CLEAN_DIRECT_OUTPUT 1
                        VERSION ${nveclib_VERSION}
                        SOVERSION ${nveclib_SOVERSION})
  install(TARGETS sundials_fnvecparallel_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif(SUNDIALS_BUILD_SHARED_LIBS)

message(STATUS "Added NVECTOR_PARALLEL F2003 interface")
