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)