Now using python ArgumentParser to parse command line arguments in preparation for adding doc generation

pull/1384/head
hbristow 12 years ago
parent c5ffd1fdea
commit faeb0aa92a
  1. 14
      modules/matlab/CMakeLists.txt
  2. 23
      modules/matlab/generator/gen_matlab.py

@ -122,8 +122,11 @@ if (NOT MEX_WORKS)
message(STATUS "Trying to generate Matlab code") message(STATUS "Trying to generate Matlab code")
execute_process( execute_process(
COMMAND ${PYTHON_EXECUTABLE} COMMAND ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/generator/gen_matlab.py ${HDR_PARSER_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/generator/gen_matlab.py
${CMAKE_CURRENT_SOURCE_DIR}/test/test_generator.hpp ${CMAKE_BINARY_DIR}/junk --hdrparser ${HDR_PARSER_PATH}
--rstparser ${RST_PARSER_PATH}
--headers ${CMAKE_CURRENT_SOURCE_DIR}/test/test_generator.hpp
--outdir ${CMAKE_BINARY_DIR}/junk
ERROR_VARIABLE GEN_ERROR ERROR_VARIABLE GEN_ERROR
OUTPUT_QUIET OUTPUT_QUIET
) )
@ -179,8 +182,11 @@ file(REMOVE ${GENERATE_PROXY} ${COMPILE_PROXY})
add_custom_command( add_custom_command(
OUTPUT ${GENERATE_PROXY} OUTPUT ${GENERATE_PROXY}
COMMAND ${PYTHON_EXECUTABLE} COMMAND ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/generator/gen_matlab.py ${HDR_PARSER_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/generator/gen_matlab.py
${opencv_hdrs} ${CMAKE_CURRENT_BINARY_DIR} --hdrparser ${HDR_PARSER_PATH}
--rstparser ${RST_PARSER_PATH}
--headers ${opencv_hdrs}
--outdir ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E touch ${GENERATE_PROXY} COMMAND ${CMAKE_COMMAND} -E touch ${GENERATE_PROXY}
COMMENT "Generating Matlab source files" COMMENT "Generating Matlab source files"
) )

@ -95,20 +95,27 @@ class MatlabWrapperGenerator(object):
if __name__ == "__main__": if __name__ == "__main__":
# add the hdr_parser to the path # parse the input options
import sys, re, os, time import sys, re, os, time
sys.path.append(sys.argv[1]) from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('--hdrparser')
parser.add_argument('--rstparser')
parser.add_argument('--headers', nargs='+')
parser.add_argument('--outdir')
args = parser.parse_args()
# add the hdr_parser and rst_parser modules to the path
sys.path.append(args.hdrparser)
sys.path.append(args.rstparser)
from string import Template from string import Template
from hdr_parser import CppHeaderParser from hdr_parser import CppHeaderParser
from parse_tree import ParseTree, todict, constants from parse_tree import ParseTree, todict, constants
from filters import * from filters import *
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
# get the IO from the command line arguments
input_files = sys.argv[2:-1]
output_dir = sys.argv[-1]
# create the generator # create the generator
mwg = MatlabWrapperGenerator() mwg = MatlabWrapperGenerator()
mwg.gen(input_files, output_dir) mwg.gen(args.headers, args.outdir)

Loading…
Cancel
Save