diff --git a/dlib/matlab/CMakeLists.txt b/dlib/matlab/CMakeLists.txt index 6d99f4a8f..0bf33660f 100644 --- a/dlib/matlab/CMakeLists.txt +++ b/dlib/matlab/CMakeLists.txt @@ -1,5 +1,5 @@ -cmake_minimum_required(VERSION 2.8.4) +cmake_minimum_required(VERSION 2.8.11) PROJECT(mex_functions) diff --git a/dlib/matlab/cmake_mex_wrapper b/dlib/matlab/cmake_mex_wrapper index e0ea3e821..c5a9a9c5f 100644 --- a/dlib/matlab/cmake_mex_wrapper +++ b/dlib/matlab/cmake_mex_wrapper @@ -3,7 +3,7 @@ # that additional library dependencies can be added like this: add_mex_function(name lib1 dlib libetc). # That is, just add more libraries after the name and they will be build into the mex file. -cmake_minimum_required(VERSION 2.8.4) +cmake_minimum_required(VERSION 2.8.11) set(BUILDING_MATLAB_MEX_FILE true) set(CMAKE_POSITION_INDEPENDENT_CODE True) @@ -69,6 +69,7 @@ INCLUDE(InstallRequiredSystemLibraries) MACRO(add_mex_function name ) ADD_LIBRARY(${name} MODULE ${name}.cpp ) + target_compile_definitions(${name} PRIVATE -DMEX_FILENAME=${name}) if (UNIX) # Doing this prevents our mex function from exporting any symbols # other than mexFunction(). This sometimes doesn't matter but sometimes diff --git a/dlib/matlab/mex_wrapper.cpp b/dlib/matlab/mex_wrapper.cpp index 28c8062a0..e056a29cb 100644 --- a/dlib/matlab/mex_wrapper.cpp +++ b/dlib/matlab/mex_wrapper.cpp @@ -4897,7 +4897,7 @@ void mexFunction( int nlhs, mxArray *plhs[], string classname = trim(string(DEF2STR(MEX_CLASS_NAME)), " \t()"); std::vector methods = split(trim(string(DEF2STR(MEX_CLASS_METHODS)), " \t()"), " \t,"); - string mex_filename = "mex_"+classname; + string mex_filename = trim(string(DEF2STR(MEX_FILENAME))," \t()"); bool has_load_obj = false; size_t load_obj_idx = 0;