diff --git a/modules/matlab/CMakeLists.txt b/modules/matlab/CMakeLists.txt index 3713b56c1..f15fa983b 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 c37b9ee1c..b07b43d3a 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 44b77c776..2b317a678 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 2979cf63d..000000000 --- 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 79dee7670..ddde7f50e 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