cmake_minimum_required(VERSION 3.0)

project(UKRmol+)

enable_language(Fortran)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")

set(CMAKE_Fortran_MODULE_DIRECTORY "mod")

# ------------------------------------------------------------------------------------------------
# libukplus_global library

add_library(libukplus_global
    "algorithms.f90"
    "containers.f90"
    "global_data.f90"
    "precisn.f90"
    "swmol3_data.f90"
    "version_control.F90"
)

set_target_properties(libukplus_global PROPERTIES
    OUTPUT_NAME ukplus_global
)

if(UKRMOL_GIT_AUTH)
    set_property(SOURCE "version_control.F90" APPEND PROPERTY COMPILE_DEFINITIONS "GIT_AUTH=${UKRMOL_GIT_AUTH}")
endif()

if(UKRMOL_GIT_HASH)
    set_property(SOURCE "version_control.F90" APPEND PROPERTY COMPILE_DEFINITIONS "GIT_HASH=${UKRMOL_GIT_HASH}")
endif()

if(UKRMOL_GIT_DATE)
    set_property(SOURCE "version_control.F90" APPEND PROPERTY COMPILE_DEFINITIONS "GIT_DATE=${UKRMOL_GIT_DATE}")
endif()

install(TARGETS libukplus_global
        RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin"
        ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/lib"
        LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_Fortran_MODULE_DIRECTORY}/"
        DESTINATION "${CMAKE_INSTALL_PREFIX}/include/global")
