Changeset c6856ffe in OpenModelica


Ignore:
Timestamp:
2020-10-21T14:04:15+02:00 (3 years ago)
Author:
Mahder Gebremedhin <mahder.gebremedhin@…>
Children:
a44b408
Parents:
df6240e
git-author:
Mahder Gebremedhin <mahder.gebremedhin@…> (07/12/20 20:34:30)
git-committer:
Mahder Gebremedhin <mahder.gebremedhin@…> (10/21/20 14:04:15)
Message:

[cmake] Add OMParser to compilation.

  • Uses two macros for generating the C files from the antlr sources. One is used for antlr files that depend on base_modelica_lexer. The other is used for only Modelica.g right now.
Location:
OMCompiler
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • OMCompiler/CMakeLists.txt

    rdf6240e rc6856ffe  
    1616omc_add_subdirectory(SimulationRuntime)
    1717omc_add_subdirectory(Compiler)
    18 # omc_add_subdirectory(Parser)
     18omc_add_subdirectory(Parser)
    1919
    2020
  • OMCompiler/Parser/CMakeLists.txt

    rdf6240e rc6856ffe  
    3030endfunction(ADD_ANTLR_GRAMMAR_TARGET)
    3131
    32 function(ADD_ANTLR_LEXER_TARGET input_file output_dir)
     32
     33macro(ADD_ANTLR_BASE_LEXER_TARGET input_file output_dir src_list)
    3334
    3435  get_filename_component(file_name_no_ext ${input_file} NAME_WE)
    3536  set(output_file_path_no_ext ${output_dir}/${file_name_no_ext})
     37  set(output_file_base_path_no_ext ${output_dir}/${file_name_no_ext}_BaseModelica_Lexer)
    3638
    3739  add_custom_command(
    38     DEPENDS ${input_file}
     40    DEPENDS ${input_file} ${CMAKE_CURRENT_SOURCE_DIR}/BaseModelica_Lexer.g
    3941    SOURCE ${input_file}
    4042    COMMAND ${Java_JAVA_EXECUTABLE}
     
    4345          -o ${output_dir}
    4446          ${input_file}
    45     COMMENT "Generating ${output_file_path_no_ext}.c/h for ANTLR file ${input_file}."
     47    COMMENT "Generating ${output_file_path_no_ext}.c/h and ${output_file_base_path_no_ext}.c/h for ANTLR file ${input_file}."
    4648    OUTPUT ${output_file_path_no_ext}.c
    4749    OUTPUT ${output_file_path_no_ext}.h
     50    OUTPUT ${output_file_base_path_no_ext}.c
     51    OUTPUT ${output_file_base_path_no_ext}.h
    4852  )
    4953  set_source_files_properties(${output_file_path_no_ext}.c GENERATED)
    5054  set_source_files_properties(${output_file_path_no_ext}.h GENERATED)
     55  set_source_files_properties(${output_file_base_path_no_ext}.c GENERATED)
     56  set_source_files_properties(${output_file_base_path_no_ext}.h GENERATED)
     57
     58  set(LAST_ANTLR_BASE_LEXER_TARGET_OUTPUTS ${output_file_path_no_ext}.c ${output_file_base_path_no_ext}.c)
     59  # message(STATUS ${LAST_ANTLR_BASE_LEXER_TARGET_OUTPUTS})
     60
    5161  message(STATUS "added antrl target ${output_file_path_no_ext}")
    52 endfunction(ADD_ANTLR_LEXER_TARGET)
     62endmacro(ADD_ANTLR_BASE_LEXER_TARGET)
     63
     64
     65set(OM_PARSE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/Parser_omc.c)
    5366
    5467
     
    5669file(MAKE_DIRECTORY ${GNERATED_DIRECTORY})
    5770
    58 # ADD_ANTLR_GRAMMAR_TARGET(${CMAKE_CURRENT_SOURCE_DIR}/Modelica.g ${GNERATED_DIRECTORY})
    59 # set(OM_PARSE_SOURCES ${OM_PARSE_SOURCES} ${GNERATED_DIRECTORY}/ModelicaParser.c)
     71ADD_ANTLR_BASE_LEXER_TARGET(${CMAKE_CURRENT_SOURCE_DIR}/Modelica_3_Lexer.g ${GNERATED_DIRECTORY} OM_PARSE_SOURCES)
     72set(OM_PARSE_SOURCES ${OM_PARSE_SOURCES} ${LAST_ANTLR_BASE_LEXER_TARGET_OUTPUTS})
    6073
    61 ADD_ANTLR_LEXER_TARGET(${CMAKE_CURRENT_SOURCE_DIR}/Modelica_3_Lexer.g ${GNERATED_DIRECTORY})
     74ADD_ANTLR_BASE_LEXER_TARGET(${CMAKE_CURRENT_SOURCE_DIR}/ParModelica_Lexer.g ${GNERATED_DIRECTORY} ${OM_PARSE_SOURCES})
     75set(OM_PARSE_SOURCES ${OM_PARSE_SOURCES} ${LAST_ANTLR_BASE_LEXER_TARGET_OUTPUTS})
     76
     77ADD_ANTLR_BASE_LEXER_TARGET(${CMAKE_CURRENT_SOURCE_DIR}/MetaModelica_Lexer.g ${GNERATED_DIRECTORY} ${OM_PARSE_SOURCES})
     78set(OM_PARSE_SOURCES ${OM_PARSE_SOURCES} ${LAST_ANTLR_BASE_LEXER_TARGET_OUTPUTS})
     79
     80ADD_ANTLR_GRAMMAR_TARGET(${CMAKE_CURRENT_SOURCE_DIR}/Modelica.g ${GNERATED_DIRECTORY})
     81set(OM_PARSE_SOURCES ${OM_PARSE_SOURCES} ${GNERATED_DIRECTORY}/ModelicaParser.c)
     82
     83message(STATUS ${OM_PARSE_SOURCES})
    6284
    6385
    64 # set(OM_PARSE_SOURCES ${OM_PARSE_SOURCES} ${GNERATED_DIRECTORY}/*.c)
    65 file(GLOB OM_PARSE_SOURCES ${GNERATED_DIRECTORY}/*.c)
    66 
    67 
    68 add_library(omparse SHARED ${OM_PARSE_SOURCES})
     86######################### add libomparser ###########################
     87add_library(omparse STATIC ${OM_PARSE_SOURCES})
    6988target_link_libraries(omparse PUBLIC omantlr3)
    7089target_link_libraries(omparse PUBLIC OpenModelicaRuntimeC)
     
    7998target_include_directories(omparse PUBLIC ${SimulationRuntimeC_SOURCE_DIR}) #for openmodelica.h :/
    8099target_include_directories(omparse PUBLIC ${OMCompiler_SOURCE_DIR}) #for revision.h, openmodelica.h :/
     100######################### end libomparser ###########################
     101
     102
     103######################### add libomparser-boot ###########################
     104add_library(omparse-boot STATIC ${OM_PARSE_SOURCES})
     105target_link_libraries(omparse-boot PUBLIC omantlr3)
     106target_link_libraries(omparse-boot PUBLIC OpenModelicaRuntimeC)
     107
     108# Define OMC_BOOTSTRAPPING for the boot lib.
     109target_compile_definitions(omparse-boot PRIVATE OMC_BOOTSTRAPPING)
     110
     111# # to find the generated antlr headers
     112# # SYSTEM to disable warnings on the generated code.
     113# target_include_directories(omparse SYSTEM PRIVATE ${GNERATED_DIRECTORY})
     114target_include_directories(omparse-boot PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
     115
     116target_include_directories(omparse-boot PUBLIC ${OMCompiler_SOURCE_DIR}/Compiler) #for OpenModelicaBootstrappingHeader.h :/
     117target_include_directories(omparse-boot PUBLIC ${OMCompiler_SOURCE_DIR}/Compiler/runtime) #for systemimpl.h :/
     118target_include_directories(omparse-boot PUBLIC ${SimulationRuntimeC_SOURCE_DIR}) #for openmodelica.h :/
     119target_include_directories(omparse-boot PUBLIC ${OMCompiler_SOURCE_DIR}) #for revision.h
     120######################### end libomparser-boot ###########################
  • OMCompiler/Parser/Parser_omc.c

    r818a8f24 rc6856ffe  
    3434#endif
    3535
    36 #include "meta_modelica.h"
     36#include "meta/meta_modelica.h"
    3737#include "parse.c"
    3838
  • OMCompiler/Parser/parse.c

    r818a8f24 rc6856ffe  
    4646#include "errorext.h"
    4747#include "systemimpl.h"
    48 #include "omc_file.h"
     48#include "util/omc_file.h"
    4949
    5050pthread_once_t parser_once_create_key = PTHREAD_ONCE_INIT;
Note: See TracChangeset for help on using the changeset viewer.