SET(ElmerIceUtils_SRC ProjUtils.F90 SSAMaterialModels.F90 ComputeFluxUtils.F90)

ADD_LIBRARY(ElmerIceUtils SHARED ${ElmerIceUtils_SRC})

IF(HAVE_PROJ)
  INCLUDE_DIRECTORIES(${PROJ_INCLUDE_DIR})
  INCLUDE_DIRECTORIES(${FORTRANGIS_INCLUDE_DIR})
  TARGET_LINK_LIBRARIES(ElmerIceUtils ${PROJ_LIBRARY})
  TARGET_LINK_LIBRARIES(ElmerIceUtils ${FORTRANGIS_LIBRARY})
ENDIF()

# Library object
GET_TARGET_PROPERTY(CURRENT_LINK_FLAGS ElmerIceUtils LINK_FLAGS)
GET_TARGET_PROPERTY(CURRENT_COMPILE_FLAGS ElmerIceUtils COMPILE_FLAGS)
IF(CURRENT_LINK_FLAGS)
  SET(CURR_LFLAGS "${CURRENT_LINK_FLAGS};${MPI_Fortran_LINK_FLAGS}")
ELSE()
  SET(CURR_LFLAGS "${MPI_Fortran_LINK_FLAGS}")
ENDIF()
IF(CURRENT_COMPILE_FLAGS)
  SET(CURR_CFLAGS "${CURRENT_COMPILE_FLAGS};${MPI_Fortran_COMPILE_FLAGS}")
ELSE()
  SET(CURR_CFLAGS "${MPI_Fortran_COMPILE_FLAGS}")
ENDIF()

SET_TARGET_PROPERTIES(ElmerIceUtils PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(ElmerIceUtils PROPERTIES LINK_FLAGS "${CURR_LFLAGS}")
SET_TARGET_PROPERTIES(ElmerIceUtils PROPERTIES COMPILE_FLAGS "${CURR_CFLAGS}")
SET_TARGET_PROPERTIES(ElmerIceUtils PROPERTIES LINKER_LANGUAGE Fortran)
IF(NOT(WIN32))
    SET_TARGET_PROPERTIES(ElmerIceUtils PROPERTIES
                          INSTALL_RPATH "${ELMERSOLVER_RPATH_STRING};${ELMER_SOLVER_HOME}/lib/")
    SET_TARGET_PROPERTIES(ElmerIceUtils PROPERTIES
                          INSTALL_RPATH_USE_LINK_PATH TRUE)
ENDIF()

TARGET_LINK_LIBRARIES(ElmerIceUtils elmersolver)

INSTALL(TARGETS ElmerIceUtils LIBRARY DESTINATION "share/elmersolver/lib"
            RUNTIME DESTINATION "share/elmersolver/lib")
