From 6b88a21be84af100d6e4aa06e899d3c9149d12e6 Mon Sep 17 00:00:00 2001 From: hbristow Date: Wed, 26 Jun 2013 17:39:08 -0700 Subject: [PATCH] added handling of constants equaling constants. e.g. FMT_DEFAULT = FMT_MATLAB --- modules/matlab/CMakeLists.txt | 4 ++++ modules/matlab/generator/filters.py | 7 +++++++ modules/matlab/generator/gen_matlab.py | 3 ++- modules/matlab/generator/gen_matlab_caller.py | 14 -------------- .../matlab/generator/templates/template_map_base.m | 4 ++++ 5 files changed, 17 insertions(+), 15 deletions(-) delete mode 100644 modules/matlab/generator/gen_matlab_caller.py diff --git a/modules/matlab/CMakeLists.txt b/modules/matlab/CMakeLists.txt index 3713b56c12..f15fa983b9 100644 --- a/modules/matlab/CMakeLists.txt +++ b/modules/matlab/CMakeLists.txt @@ -194,3 +194,7 @@ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/+cv/private/ DESTINATION ${CMAKE_INSTALL_PREFIX}/matlab/+cv/private FILES_MATCHING PATTERN "*.${MATLAB_MEXEXT}" ) +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ + DESTINATION ${CMAKE_INSTALL_PREFIX}/matlab + FILES_MATCHING PATTERN "cv.m" +) diff --git a/modules/matlab/generator/filters.py b/modules/matlab/generator/filters.py index c37b9ee1c1..b07b43d3a8 100644 --- a/modules/matlab/generator/filters.py +++ b/modules/matlab/generator/filters.py @@ -43,6 +43,13 @@ def noutputs(args): '''Counts the number of output arguments in the input list''' return len(outputs(args)) +def convertibleToInt(string): + try: + int(string) + return True + except ValueError: + return False + def capitalizeFirst(text): return text[0].upper() + text[1:] diff --git a/modules/matlab/generator/gen_matlab.py b/modules/matlab/generator/gen_matlab.py index 44b77c7768..2b317a6782 100644 --- a/modules/matlab/generator/gen_matlab.py +++ b/modules/matlab/generator/gen_matlab.py @@ -20,6 +20,7 @@ class MatlabWrapperGenerator(object): jtemplate = Environment(loader=PackageLoader('templates', ''), trim_blocks=True, lstrip_blocks=True) # add the custom filters + jtemplate.filters['convertibleToInt'] = convertibleToInt jtemplate.filters['toUpperCamelCase'] = toUpperCamelCase jtemplate.filters['toLowerCamelCase'] = toLowerCamelCase jtemplate.filters['toUnderCase'] = toUnderCase @@ -79,7 +80,7 @@ class MatlabWrapperGenerator(object): populatedm = tconstm.render(constants=const) with open(output_map_dir+'/map.cpp', 'wb') as f: f.write(populatedc) - with open(output_map_dir+'/map.m', 'wb') as f: + with open(output_dir+'/cv.m', 'wb') as f: f.write(populatedm) diff --git a/modules/matlab/generator/gen_matlab_caller.py b/modules/matlab/generator/gen_matlab_caller.py deleted file mode 100644 index 2979cf63d7..0000000000 --- a/modules/matlab/generator/gen_matlab_caller.py +++ /dev/null @@ -1,14 +0,0 @@ -#/usr/bin/env python - -# add the hdr_parser to the path -import sys -sys.path.append(sys.argv[1]) - -# get the IO from the command line arguments -input_files = sys.argv[2:-1] -output_dir = sys.argv[-1] - -# create the generator -from gen_matlab import MatlabWrapperGenerator -mwg = MatlabWrapperGenerator() -mwg.gen(input_files, output_dir) diff --git a/modules/matlab/generator/templates/template_map_base.m b/modules/matlab/generator/templates/template_map_base.m index 79dee7670c..ddde7f50e6 100644 --- a/modules/matlab/generator/templates/template_map_base.m +++ b/modules/matlab/generator/templates/template_map_base.m @@ -23,7 +23,11 @@ classdef cv properties (Constant = true) {% for key, val in constants.items() %} + {% if val|convertibleToInt %} {{key}} = {{val}}; + {% else %} + {{key}} = {{constants[val]}}; + {% endif %} {% endfor %} end end