Skip to content
Snippets Groups Projects
CMakeLists.txt 1.01 KiB
Newer Older
  • Learn to ignore specific revisions
  • cmake_minimum_required(VERSION 3.19)
    
    数学の武士's avatar
    数学の武士 committed
    
    # 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)