cmake_minimum_required(VERSION 2.8)

project(mumps C Fortran)

set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../../Libs)

include_directories(.)

add_definitions(-DAdd_ -Dpord -DMUMPS_ARITH=MUMPS_ARITH_d)

option(BUILD_SHARED "Build shared library" OFF)
option(USE_OPENMP "Use OpenMP" OFF)

if(CMAKE_C_COMPILER_ID MATCHES "GNU") # GNU GCC COMPILER
    if(USE_OPENMP)
        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
        set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fopenmp")
    endif()
elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC") # MSVC COMPILER
    set(CMAKE_C_FLAGS "/MP")
    if(USE_OPENMP)
        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /openmp")
        set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /Qopenmp")
    endif()
endif()

file(GLOB mumps_f "*.F")
file(GLOB mumps_c "*.c")

add_library(mumps_f_lib OBJECT ${mumps_f})
add_library(mumps_c_lib OBJECT ${mumps_c})
add_library(mumps STATIC $<TARGET_OBJECTS:mumps_f_lib> $<TARGET_OBJECTS:mumps_c_lib>)