mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-04 21:00:17 -06:00
Merge topic 'FindMatlab-EXCLUDE_FROM_ALL'
11e0009b77 FindMatlab: EXCLUDE_FROM_ALL parameter to matlab_add_mex
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3474
This commit is contained in:
@@ -889,6 +889,7 @@ endfunction()
|
||||
[DOCUMENTATION file.txt]
|
||||
[LINK_TO target1 target2 ...]
|
||||
[R2017b | R2018a]
|
||||
[EXCLUDE_FROM_ALL]
|
||||
[...]
|
||||
)
|
||||
|
||||
@@ -918,6 +919,10 @@ endfunction()
|
||||
``MODULE`` or ``SHARED`` may be given to specify the type of library to be
|
||||
created. ``EXECUTABLE`` may be given to create an executable instead of
|
||||
a library. If no type is given explicitly, the type is ``SHARED``.
|
||||
``EXCLUDE_FROM_ALL``
|
||||
This option has the same meaning as for :prop_tgt:`EXCLUDE_FROM_ALL` and
|
||||
is forwarded to :command:`add_library` or :command:`add_executable`
|
||||
commands.
|
||||
|
||||
The documentation file is not processed and should be in the following
|
||||
format:
|
||||
@@ -944,7 +949,7 @@ function(matlab_add_mex)
|
||||
|
||||
endif()
|
||||
|
||||
set(options EXECUTABLE MODULE SHARED R2017b R2018a)
|
||||
set(options EXECUTABLE MODULE SHARED R2017b R2018a EXCLUDE_FROM_ALL)
|
||||
set(oneValueArgs NAME DOCUMENTATION OUTPUT_NAME)
|
||||
set(multiValueArgs LINK_TO SRC)
|
||||
|
||||
@@ -974,8 +979,14 @@ function(matlab_add_mex)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(_option_EXCLUDE_FROM_ALL)
|
||||
if(${prefix}_EXCLUDE_FROM_ALL)
|
||||
set(_option_EXCLUDE_FROM_ALL "EXCLUDE_FROM_ALL")
|
||||
endif()
|
||||
|
||||
if(${prefix}_EXECUTABLE)
|
||||
add_executable(${${prefix}_NAME}
|
||||
${_option_EXCLUDE_FROM_ALL}
|
||||
${${prefix}_SRC}
|
||||
${MEX_VERSION_FILE}
|
||||
${${prefix}_DOCUMENTATION}
|
||||
@@ -989,6 +1000,7 @@ function(matlab_add_mex)
|
||||
|
||||
add_library(${${prefix}_NAME}
|
||||
${type}
|
||||
${_option_EXCLUDE_FROM_ALL}
|
||||
${${prefix}_SRC}
|
||||
${MEX_VERSION_FILE}
|
||||
${${prefix}_DOCUMENTATION}
|
||||
|
||||
@@ -71,3 +71,15 @@ if(RUN_UNIT_TESTS)
|
||||
)
|
||||
set_tests_properties(${PROJECT_NAME}_matlabtest-4 PROPERTIES WILL_FAIL TRUE)
|
||||
endif()
|
||||
|
||||
|
||||
# checking correct flags passed
|
||||
# EXCLUDE_FROM_ALL appears after a multiargs (like SRC)
|
||||
matlab_add_mex(
|
||||
# target name
|
||||
NAME cmake_matlab_test_exclude_from_all
|
||||
# output name
|
||||
OUTPUT_NAME cmake_matlab_mex_dummy
|
||||
SRC ${CMAKE_CURRENT_SOURCE_DIR}/../matlab_wrapper_failure.cpp
|
||||
EXCLUDE_FROM_ALL
|
||||
)
|
||||
|
||||
13
Tests/FindMatlab/matlab_wrapper_failure.cpp
Normal file
13
Tests/FindMatlab/matlab_wrapper_failure.cpp
Normal file
@@ -0,0 +1,13 @@
|
||||
// This should not link, as the mex function is missing.
|
||||
// This is mostly for checking we are passing the right arguments to the
|
||||
// add_library
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "mex.h"
|
||||
|
||||
void mexFunctionXX(const int nlhs, mxArray* plhs[], const int nrhs,
|
||||
const mxArray* prhs[])
|
||||
{
|
||||
mexErrMsgTxt("Should not be running");
|
||||
}
|
||||
Reference in New Issue
Block a user