Benjamin Roy wrote: > Hello, > > I used to build Matlab Mex files using this kind of CMake files, the > build was working Both on linux and Windows (only with visual studio, > because gnumex is no longer support for MinGW and Matlab R2008): > > # SET MEX files extension > IF(UNIX) > IF(APPLE) > IF(CMAKE_OSX_ARCHITECTURES MATCHES i386) > SET(MEX_EXTENSION mexmaci) > ELSE(CMAKE_OSX_ARCHITECTURES MATCHES i386) > SET(MEX_EXTENSION mexmac) > ENDIF(CMAKE_OSX_ARCHITECTURES MATCHES i386) > INCLUDE(FindMatlab) > FIND_PROGRAM(MEX_COMPILER mex) > ELSE(APPLE) > SET(MEX_EXTENSION mexglx) > INCLUDE(FindMatlab) > FIND_PROGRAM(MEX_COMPILER mex) > ENDIF(APPLE) > ELSE(UNIX) > IF(WIN32) > IF( CMAKE_CXX_COMPILER STREQUAL "cl") > SET(MEX_EXTENSION mexw32) > INCLUDE(FindMatlab) > FIND_PROGRAM(MEX_COMPILER mex) > MESSAGE("Please set mex compiler with Visual Studio using Matlab command > line and mex -setup command") > ELSE( CMAKE_CXX_COMPILER STREQUAL "cl") > MESSAGE("Matlab Mex files are only supported by MS Visual Studio") > ENDIF( CMAKE_CXX_COMPILER STREQUAL "cl") > ENDIF(WIN32) > ENDIF(UNIX) > > IF(MEX_COMPILER) > > ADD_CUSTOM_TARGET(bookread_exp_matlab ALL echo > DEPENDS > ${MPTK_BINARY_DIR}/src/matlab/experimental/bookread_exp.${MEX_EXTENSION} > ) > > > ADD_CUSTOM_COMMAND( > TARGET bookread_exp_matlab > COMMAND ${MEX_COMPILER} > ARGS -O -DHAVE_FFTW3 -I${MATLAB_INCLUDE_DIR} -I${MPTK_BINARY_DIR} > -I${MPTK_SOURCE_DIR}/src/tinyxml/ -I/usr/include/ -I${MPTK_SOURCE_DIR} > -I${MPTK_SOURCE_DIR}/src/libdsp_windows/ > -I${MPTK_SOURCE_DIR}/src/libmptk/ > -I${MPTK_SOURCE_DIR}/src/matlab/experimental/classes/ > -I${MPTK_SOURCE_DIR}/src/plugin/base/ > -I${MPTK_SOURCE_DIR}/src/plugin/contrib/lam/ -I${FFTW3_INCLUDE_DIR} > -I${MPTK_BINARY_DIR}/src/libmptk/ > ${MPTK_SOURCE_DIR}/src/matlab/experimental/bookread_exp.cpp > ${MPTK_SOURCE_DIR}/src/matlab/experimental/classes/mxBook.cpp > -L${MPTK_BINARY_DIR}/lib -lmptk > COMMENT "MEX" > ) > > ENDIF(MEX_COMPILER) > > It was working fine till version 2.6.0. But now I ve got a make error: > make[2]: *** No rule to make target `src/matlab/bookread.mexglx', needed > by `src/matlab/CMakeFiles/bookread_matlab'. Stop. > make[1]: *** [src/matlab/CMakeFiles/bookread_matlab.dir/all] Error 2 > make: *** [all] Error 2 > > Did i miss something basic ? And why such differences in make files > generated by CMake 2.6.0 and CMake 2.4.8 ?
I can't even get the above example to work in 2.4. It looks like this is a subdirectory of a larger build system. Can you reproduce this problem in a self-contained example please? If I replace the line TARGET bookread_exp_matlab with OUTPUT ${MPTK_BINARY_DIR}/src/matlab/experimental/bookread_exp.${MEX_EXTENSION} then it works in both 2.4 and 2.6. -Brad _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake