cmake_minimum_required(VERSION 3.19)

# option(INCLUDE_CXX  "CXX build in mode"    OFF)

project(Pars)

enable_language(Fortran)
enable_language(C)
enable_language(CXX)
set(CMAKE_CXX_STANDARD 11)

set(SOURCES_CXX 
    call_parser.cpp
    cfg-cmd.cpp  
    cfg-value.cpp  
    cfg-vec.cpp   
    config-parser.cpp  
    lexeme.cpp 
    lexeme-list.cpp    
    io-guts.cpp
    lexeme-parser.cpp
)
set(HEADERS_CXX 
    call_parser.h
    cfg-cmd.h
    cfg-value.h
    cfg-vec.h
    config-parser.h
    lexeme.h  
    lexeme-list.h
    scm-mem.h  
    scm-sys.h
    io-guts.h
    mem-buffer.h
    lexeme-parser.h
)

set(SOURCES_C
    call_parser.c
)

set(SOURCES_F
    call_parser.F90
)

set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/modules)

set(SOURCES_CXX ${SOURCES_CXX} ${SOURCES_C})
set(HEADERS_CXX ${HEADERS_CXX})

add_library(parser_CXX STATIC ${HEADERS_CXX} ${SOURCES_CXX})
add_library(parser_F STATIC   ${SOURCES_F})
set_property(TARGET parser_F PROPERTY LINKER_LANGUAGE Fortran)
target_link_libraries(parser_F parser_CXX)