summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-01-14 13:55:36 (GMT)
committerKitware Robot <kwrobot@kitware.com>2020-01-14 13:55:57 (GMT)
commit789bbcddc0e7f63f356e717b8423abf35bfed9be (patch)
treeeb646500e01c8c427cec2911c5b851d43963813b
parente8462a105ec24492cf19d7ddf640b3bb63fa1111 (diff)
parentb704d58f41def99de41485af364d9c7ea46ed475 (diff)
downloadCMake-789bbcddc0e7f63f356e717b8423abf35bfed9be.zip
CMake-789bbcddc0e7f63f356e717b8423abf35bfed9be.tar.gz
CMake-789bbcddc0e7f63f356e717b8423abf35bfed9be.tar.bz2
Merge topic 'FindMatlab-only-CXX' into release-3.16
b704d58f41 FindMatlab: in matlab_add_mex use the correct version file Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Patrik Huber <patrikhuber@gmail.com> Merge-request: !4206
-rw-r--r--Modules/FindMatlab.cmake17
1 files changed, 13 insertions, 4 deletions
diff --git a/Modules/FindMatlab.cmake b/Modules/FindMatlab.cmake
index c8cae2e..ca56dd5 100644
--- a/Modules/FindMatlab.cmake
+++ b/Modules/FindMatlab.cmake
@@ -974,10 +974,19 @@ function(matlab_add_mex)
endif()
if(NOT Matlab_VERSION_STRING VERSION_LESS "9.1") # For 9.1 (R2016b) and newer, add version source file
- # TODO: check the file extensions in ${${prefix}_SRC} to see if they're C or C++ files
- # Currently, the C and C++ versions of the version files are identical, so this doesn't matter.
- set(MEX_VERSION_FILE "${Matlab_ROOT_DIR}/extern/version/c_mexapi_version.c")
- #set(MEX_VERSION_FILE "${Matlab_ROOT_DIR}/extern/version/cpp_mexapi_version.cpp")
+ # Add the correct version file depending on which languages are enabled in the project
+ if(CMAKE_C_COMPILER_LOADED)
+ # If C is enabled, use the .c file as it will work fine also with C++
+ set(MEX_VERSION_FILE "${Matlab_ROOT_DIR}/extern/version/c_mexapi_version.c")
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ # If C is not enabled, check if CXX is enabled and use the .cpp file
+ # to avoid that the .c file is silently ignored
+ set(MEX_VERSION_FILE "${Matlab_ROOT_DIR}/extern/version/cpp_mexapi_version.cpp")
+ else()
+ # If neither C or CXX is enabled, warn because we cannot add the source.
+ # TODO: add support for fortran mex files
+ message(WARNING "[MATLAB] matlab_add_mex requires that at least C or CXX are enabled languages")
+ endif()
endif()
if(NOT Matlab_VERSION_STRING VERSION_LESS "9.4") # For 9.4 (R2018a) and newer, add API macro