FindMOSEK.cmake
Go to the documentation of this file.
1 ##############################################################################
2 # @file FindMOSEK.cmake
3 # @brief Find MOSEK (http://www.mosek.com) package.
4 #
5 # @par Input variables:
6 # <table border="0">
7 # <tr>
8 # @tp @b MOSEK_DIR @endtp
9 # <td>The MOSEK package files are searched under the specified root
10 # directory. If they are not found there, the default search paths
11 # are considered. This variable can also be set as environment variable.</td>
12 # </tr>
13 # <tr>
14 # @tp @b MOSEK_NO_OMP @endtp
15 # <td>Whether to use the link libraries build without OpenMP, i.e.,
16 # multi-threading, enabled. By default, the multi-threaded libraries
17 # are used.</td>
18 # </tr>
19 # <tr>
20 # @tp @b MOSEK_FIND_COMPONENTS @endtp
21 # <td>The @c COMPONENTS argument(s) of the find_package() command can
22 # be used to also look for optional MOSEK components.
23 # Valid component values are "mex", "jar", and "pypkg".</td>
24 # </tr>
25 # <tr>
26 # @tp @b MOSEK_TOOLS_SUFFIX @endtp
27 # <td>Platform specific path suffix for tools, i.e., "tools/platform/linux64x86"
28 # on 64-bit Linux systems. If not specified, this module determines the
29 # right suffix depending on the CMake system variables.</td>
30 # </tr>
31 # <tr>
32 # @tp @b MATLAB_RELEASE @endtp
33 # <td>Release of MATLAB installation. Set to the 'Release' return value of
34 # the "ver ('MATLAB')" command of MATLAB without brackets. If this
35 # variable is not set and the basis_get_matlab_release() command is
36 # available, it is invoked to determine the release version automatically.
37 # Otherwise, an error is raised if the "mex" component is searched.</td>
38 # </tr>
39 # <tr>
40 # @tp @b MEX_EXT @endtp
41 # <td>The extension of MEX-files. If this variable is not set and the
42 # basis_mexext() command is available, it is invoked to determine the
43 # extension automatically. Otherwise, the MEX extension defaults to "mexa64".</td>
44 # </tr>
45 # <tr>
46 # @tp @b PYTHON_VERSION_MAJOR @endtp
47 # <td>Major version of Python installation as determined by FindPythonInterp.cmake module.</td>
48 # </tr>
49 # </table>
50 #
51 # @par Output variables:
52 # <table border="0">
53 # <tr>
54 # @tp @b MOSEK_FOUND @endtp
55 # <td>Whether the package was found and the following CMake variables are valid.</td>
56 # </tr>
57 # <tr>
58 # @tp @b MOSEK_<component>_FOUND @endtp
59 # <td>Whether the component requested by @c MOSEK_FIND_COMPONENTS was found.</td>
60 # </tr>
61 # <tr>
62 # @tp @b MOSEK_INCLUDE_DIR @endtp
63 # <td>Package include directories.</td>
64 # </tr>
65 # <tr>
66 # @tp @b MOSEK_INCLUDES @endtp
67 # <td>Include directories including prerequisite libraries (non-cached).</td>
68 # </tr>
69 # <tr>
70 # @tp @b MOSEK_LIBRARY @endtp
71 # <td>Package libraries.</td>
72 # </tr>
73 # <tr>
74 # @tp @b MOSEK_LIBRARIES @endtp
75 # <td>Package libraries and prerequisite libraries (non-cached).</td>
76 # </tr>
77 # <tr>
78 # @tp @b MOSEK_mosekopt_MEX @endtp
79 # <td>Package mosekopt MEX-file.</td>
80 # </tr>
81 # <tr>
82 # @tp @b MOSEK_MEX_FILES @endtp
83 # <td>List of MEX-files (non-cached).</td>
84 # </tr>
85 # <tr>
86 # @tp @b MOSEK_mosek_JAR @endtp
87 # <td>Package mosek Java library (.jar file).</td>
88 # </tr>
89 # <tr>
90 # @tp @b MOSEK_CLASSPATH @endtp
91 # <td>List of Java package libraries and prerequisite libraries (non-cached).</td>
92 # </tr>
93 # <tr>
94 # @tp @b MOSEK_PYTHONPATH @endtp
95 # <td>Path to Python modules of this package.</td>
96 # </tr>
97 # </table>
98 #
99 # @ingroup CMakeFindModules
100 ##############################################################################
101 
102 #=============================================================================
103 # Copyright 2011-2012 University of Pennsylvania
104 # Copyright 2013-2016 Andreas Schuh <andreas.schuh.84@gmail.com>
105 #
106 # Distributed under the OSI-approved BSD License (the "License");
107 # see accompanying file Copyright.txt for details.
108 #
109 # This software is distributed WITHOUT ANY WARRANTY; without even the
110 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
111 # See the License for more information.
112 #=============================================================================
113 # (To distribute this file outside of CMake, substitute the full
114 # License text for the above reference.)
115 
116 # ----------------------------------------------------------------------------
117 # optional components to look for
118 set (_MOSEK_OPTIONAL_COMPONENTS mex jar pypkg)
119 foreach (CMP IN LISTS _MOSEK_OPTIONAL_COMPONENTS)
120  set (MOSEK_FIND_${CMP} FALSE)
121 endforeach ()
122 foreach (CMP IN LISTS MOSEK_FIND_COMPONENTS)
123  if (NOT CMP MATCHES "^(mex|jar|pypkg)$")
124  message (FATAL_ERROR "Invalid MOSEK component: ${CMP}")
125  endif ()
126  set (MOSEK_FIND_${CMP} TRUE)
127 endforeach ()
128 
129 # ----------------------------------------------------------------------------
130 # remember CMAKE_FIND_LIBRARY_SUFFIXES to be able to restore it
131 set (_MOSEK_CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_FIND_LIBRARY_SUFFIXES}")
132 
133 # ----------------------------------------------------------------------------
134 # versions - library suffixes
135 
136 # known MOSEK versions, all entries have to be specified in descending order!
139 
140 # get a full list of particular versions (<major>.<minor>) to look for
141 set (_MOSEK_FIND_VERSIONS)
142 if (MOSEK_FIND_VERSION)
143  if (MOSEK_FIND_VERSION MATCHES "^([0-9]+\\.[0-9]+)(\\.[0-9]+.*)?$")
144  set (_MOSEK_FIND_VERSION_MAJOR_MINOR "${CMAKE_MATCH_1}")
145  list (APPEND _MOSEK_FIND_VERSIONS ${_MOSEK_FIND_VERSION_MAJOR_MINOR})
146  if (NOT MOSEK_FIND_VERSION_EXACT)
147  string (REGEX REPLACE "^([0-9]+).*" "\\1" _MOSEK_FIND_VERSION_MAJOR "${CMAKE_MATCH_1}")
148  foreach (_MOSEK_VERSION IN LISTS _MOSEK${_MOSEK_FIND_VERSION_MAJOR}_VERSIONS)
149  if (NOT _MOSEK_VERSION VERSION_LESS _MOSEK_FIND_VERSION_MAJOR_MINOR)
150  list (APPEND _MOSEK_FIND_VERSIONS ${_MOSEK_VERSION})
151  endif()
152  endforeach()
153  unset (_MOSEK_FIND_VERSION_MAJOR)
154  endif ()
155  unset (_MOSEK_FIND_VERSION_MAJOR_MINOR)
156  else ()
157  if (APPLE)
158  list (APPEND _MOSEK_LIBRARY_SUFFIXES .dylib.${_MOSEK_FIND_VERSION_MAJOR_MINOR})
159  elseif (UNIX)
160  list (APPEND _MOSEK_LIBRARY_SUFFIXES .so.${_MOSEK_FIND_VERSION_MAJOR_MINOR})
161  endif ()
162  set (_MOSEK_FIND_OTHER_VERSIONS ${_MOSEK${MOSEK_FIND_VERSION}_VERSIONS})
163  endif ()
164 else ()
165  foreach (_MOSEK_VERSION_MAJOR IN LISTS _MOSEK_VERSIONS_MAJOR)
166  list (APPEND _MOSEK_FIND_VERSIONS ${_MOSEK${_MOSEK_VERSION_MAJOR}_VERSIONS})
167  endforeach ()
168 endif ()
169 
170 # ----------------------------------------------------------------------------
171 # initialize search
172 if (NOT MOSEK_DIR)
173  set (MOSEK_DIR "$ENV{MOSEK_DIR}" CACHE PATH "Installation prefix for MOSEK." FORCE)
174 endif ()
175 
176 # MATLAB components
177 if (MOSEK_FIND_mex)
178  # MATLAB version
179  if (NOT MATLAB_RELEASE)
181  basis_get_matlab_release (MATLAB_RELEASE)
182  if (NOT MATLAB_RELEASE)
183  message (FATAL_ERROR "Failed to determine release version of MATLAB installation."
184  " This information is required to be able to find the right MOSEK MEX-files."
185  " Alternatively, set MATLAB_RELEASE manually and try again.")
186  endif ()
187  else ()
188  message (FATAL_ERROR "MATLAB_RELEASE variable not set."
189  " This information is required to be able to find the right MOSEK MEX-files."
190  " Set MATLAB_RELEASE to the correct MATLAB release version, e.g., R2009b,"
191  " and try again.")
192  endif ()
193  endif ()
194  string (TOLOWER "${MATLAB_RELEASE}" MATLAB_RELEASE_L)
195  # search path for MOSEK MATLAB toolbox
196  if (NOT MOSEK_TOOLBOX_SUFFIX)
197  if (MOSEK_DIR)
198  file (
199  GLOB_RECURSE
200  MOSEK_TOOLBOX_SUFFIXES
201  RELATIVE "${MOSEK_DIR}"
202  "${MOSEK_DIR}/toolbox/*/*.mex*"
203  )
204  set (MOSEK_TOOLBOX_VERSIONS)
205  foreach (MOSEK_MEX_FILE IN LISTS MOSEK_TOOLBOX_SUFFIXES)
206  get_filename_component (MOSEK_TOOLBOX_SUFFIX "${MOSEK_MEX_FILE}" PATH)
207  get_filename_component (MOSEK_TOOLBOX_VERSION "${MOSEK_TOOLBOX_SUFFIX}" NAME)
208  list (APPEND MOSEK_TOOLBOX_VERSIONS "${MOSEK_TOOLBOX_VERSION}")
209  set (MOSEK_TOOLBOX_SUFFIX)
210  endforeach ()
211  list (SORT MOSEK_TOOLBOX_VERSIONS)
212  list (REVERSE MOSEK_TOOLBOX_VERSIONS)
213  string (REGEX MATCH "[0-9][0-9]*" MATLAB_RELEASE_YEAR "${MATLAB_RELEASE}")
214  foreach (MOSEK_TOOLBOX_VERSION IN LISTS MOSEK_TOOLBOX_VERSIONS)
215  if (MOSEK_TOOLBOX_VERSION MATCHES "[rR]([0-9][0-9]*)[ab]")
216  if (CMAKE_MATCH_1 EQUAL MATLAB_RELEASE_VERSION OR
217  CMAKE_MATCH_1 LESS MATLAB_RELEASE_VERSION)
218  set (MATLAB_TOOLBOX_SUFFIX "toolbox/${MOSEK_TOOLBOX_VERSION}")
219  break ()
220  endif ()
221  endif ()
222  endforeach ()
223  endif ()
224  if (NOT MOSEK_TOOLBOX_SUFFIX)
225  set (MOSEK_TOOLBOX_SUFFIX "toolbox/${MATLAB_RELEASE_L}")
226  endif ()
227  endif ()
228  # extension of MEX-files
229  if (NOT MEX_EXT)
230  if (COMMAND basis_mexext)
231  basis_mexext ()
232  else ()
233  set (MEX_EXT "mexa64")
234  endif ()
235  endif ()
236 endif ()
237 
238 # Python components
239 if (MOSEK_FIND_pypkg)
240  if (NOT PYTHON_VERSION_MAJOR)
241  message (FATAL_ERROR "Python interpreter not found or not added as dependency before MOSEK. "
242  "The information about the Python version is required to be able to find "
243  "the right MOSEK Python modules. Therefore, add the PythonInterp package "
244  "as dependency to BasisProjects.cmake before the entry of MOSEK. "
245  "The FindPythonInterp.cmake module will determine the version of the "
246  "Python installation. Alternatively, set PYTHON_VERSION_MAJOR manually.")
247  endif ()
248 endif ()
249 
250 # library name
251 set (MOSEK_LIBRARY_NAME "mosek")
252 if (MOSEK_NO_OMP)
253  set (MOSEK_LIBRARY_NAME "${MOSEK_LIBRARY_NAME}noomp")
254 endif ()
255 if (UNIX)
256  if (NOT CMAKE_SIZE_OF_VOID_P EQUAL 4)
257  set (MOSEK_LIBRARY_NAME "${MOSEK_LIBRARY_NAME}64")
258  endif ()
259 endif ()
260 
261 # append/set library version suffixes
262 if (WIN32)
263  if (_MOSEK_FIND_VERSIONS)
264  foreach (_MOSEK_VERSION IN LISTS _MOSEK_FIND_VERSIONS)
265  string (REPLACE "." "_" _MOSEK_VERSION "${_MOSEK_VERSION}")
266  list (APPEND MOSEK_LIBRARY_NAMES "${MOSEK_LIBRARY_NAME}${_MOSEK_VERSION}")
267  endforeach ()
268  else ()
269  set (MOSEK_LIBRARY_NAMES "${MOSEK_LIBRARY_NAME}")
270  endif ()
271 else ()
272  set (MOSEK_LIBRARY_NAMES "${MOSEK_LIBRARY_NAME}")
273  if (_MOSEK_FIND_VERSIONS)
274  set (CMAKE_FIND_LIBRARY_SUFFIXES)
275  foreach (_MOSEK_VERSION IN LISTS _MOSEK_FIND_VERSIONS)
276  if (APPLE)
277  list (APPEND CMAKE_FIND_LIBRARY_SUFFIXES .${_MOSEK_VERSION}.dylib)
278  else ()
279  list (APPEND CMAKE_FIND_LIBRARY_SUFFIXES .so.${_MOSEK_VERSION})
280  endif ()
281  endforeach ()
282  if (NOT MOSEK_FIND_VERSION)
283  if (APPLE)
284  list (APPEND CMAKE_FIND_LIBRARY_SUFFIXES .dylib)
285  else ()
286  list (APPEND CMAKE_FIND_LIBRARY_SUFFIXES .so)
287  endif ()
288  endif ()
289  endif ()
290 endif ()
291 
292 # search path for MOSEK tools
293 if (NOT MOSEK_TOOLS_SUFFIX)
294  set (MOSEK_TOOLS_SUFFIX "tools/platform/")
295  if (WIN32)
296  set (MOSEK_TOOLS_SUFFIX "${MOSEK_TOOLS_SUFFIX}win")
297  elseif (APPLE)
298  set (MOSEK_TOOLS_SUFFIX "${MOSEK_TOOLS_SUFFIX}osx")
299  else ()
300  set (MOSEK_TOOLS_SUFFIX "${MOSEK_TOOLS_SUFFIX}linux")
301  endif ()
302  if (CMAKE_SIZE_OF_VOID_P EQUAL 4)
303  set (MOSEK_TOOLS_SUFFIX "${MOSEK_TOOLS_SUFFIX}32")
304  else ()
305  set (MOSEK_TOOLS_SUFFIX "${MOSEK_TOOLS_SUFFIX}64")
306  endif ()
307  set (MOSEK_TOOLS_SUFFIX "${MOSEK_TOOLS_SUFFIX}x86")
308 endif ()
309 
310 unset (_MOSEK_FIND_VERSIONS)
311 
312 #-------------------------------------------------------------
313 # find include files and library
314 foreach (_MOSEK_I IN ITEMS 1 2) # try twice in case MOSEK_DIR
315  # was not set, but known in
316  # second iteration
317 
318  # find files
319  if (MOSEK_DIR)
320 
321  find_path (
322  MOSEK_INCLUDE_DIR
323  NAMES mosek.h
324  HINTS "${MOSEK_DIR}"
325  PATH_SUFFIXES "${MOSEK_TOOLS_SUFFIX}/h"
326  DOC "Include directory for MOSEK libraries."
327  NO_DEFAULT_PATH
328  )
329 
330  find_library (
331  MOSEK_LIBRARY
332  NAMES ${MOSEK_LIBRARY_NAMES}
333  HINTS "${MOSEK_DIR}"
334  PATH_SUFFIXES "${MOSEK_TOOLS_SUFFIX}/bin"
335  DOC "MOSEK link library."
336  NO_DEFAULT_PATH
337  )
338 
339  else ()
340 
341  find_path (
342  MOSEK_INCLUDE_DIR
343  NAMES mosek.h
344  HINTS ENV C_INCLUDE_PATH ENV CXX_INCLUDE_PATH
345  DOC "Include directory for MOSEK libraries."
346  )
347 
348  find_library (
349  MOSEK_LIBRARY
350  NAMES ${MOSEK_LIBRARY_NAMES}
351  HINTS ENV LD_LIBRARY_PATH
352  DOC "MOSEK link library."
353  )
354 
355  endif ()
356 
357  # derive MOSEK_DIR
358  if (NOT MOSEK_DIR)
359  if (COMMAND basis_sanitize_for_regex)
360  basis_sanitize_for_regex (_MOSEK_TOOLS_SUFFIX_RE "${MOSEK_TOOLS_SUFFIX}")
361  else ()
362  set (_MOSEK_TOOLS_SUFFIX_RE "${MOSEK_TOOLS_SUFFIX}")
363  endif ()
364  if (MOSEK_INCLUDE_DIR)
365  string (REGEX REPLACE "${_MOSEK_TOOLS_SUFFIX_RE}/.*$" "" _MOSEK_DIR "${MOSEK_INCLUDE_DIR}")
366  set (MOSEK_DIR "${_MOSEK_DIR}" CACHE PATH "Installation prefix for MOSEK." FORCE)
367  elseif (MOSEK_LIBRARY)
368  string (REGEX REPLACE "${_MOSEK_TOOLS_SUFFIX_RE}/.*$" "" _MOSEK_DIR "${MOSEK_LIBRARY}")
369  set (MOSEK_DIR "${_MOSEK_DIR}" CACHE PATH "Installation prefix for MOSEK." FORCE)
370  endif ()
371  unset (_MOSEK_TOOLS_SUFFIX_RE)
372  unset (_MOSEK_DIR)
373  endif ()
374 
375  # skip second iteration if both found already
376  if (MOSEL_INCLUDE_DIR AND MOSEK_LIBRARY)
377  break ()
378  endif ()
379 endforeach ()
380 
381 mark_as_advanced (MOSEK_INCLUDE_DIR)
382 mark_as_advanced (MOSEK_LIBRARY)
383 
384 # MATLAB components
385 if (MOSEK_FIND_mex)
386  if (MOSEK_DIR)
387 
388  find_file (
389  MOSEK_mosekopt_MEX
390  NAMES mosekopt.${MEX_EXT}
391  HINTS "${MOSEK_DIR}"
392  PATH_SUFFIXES "${MOSEK_TOOLBOX_SUFFIX}"
393  DOC "The mosekopt MEX-file of the MOSEK package."
394  NO_DEFAULT_PATH
395  )
396 
397  else ()
398 
399  find_file (
400  MOSEK_mosekopt_MEX
401  NAMES mosekopt.${MEX_EXT}
402  PATH_SUFFIXES "${MOSEK_TOOLBOX_SUFFIX}"
403  DOC "The mosekopt MEX-file of the MOSEK package."
404  )
405 
406  endif ()
407 
408  if (MOSEK_mosekopt_MEX)
409  set (MOSEK_MEX_FILES "${MOSEK_mosekopt_MEX}")
410  endif ()
411 
412  mark_as_advanced (MOSEK_mosekopt_MEX)
413 endif ()
414 
415 # Java components
416 if (MOSEK_FIND_jar)
417  if (MOSEK_DIR)
418 
419  find_file (
420  MOSEK_mosek_JAR
421  NAMES mosek.jar
422  HINTS "${MOSEK_DIR}"
423  PATH_SUFFIXES "${MOSEK_TOOLS_SUFFIX}/bin"
424  DOC "The Java library (.jar file) of the MOSEK package."
425  NO_DEFAULT_PATH
426  )
427 
428  else ()
429 
430  find_file (
431  MOSEK_mosek_JAR
432  NAMES mosek.jar
433  HINTS ENV CLASSPATH
434  DOC "The Java library (.jar file) of the MOSEK package."
435  )
436 
437  endif ()
438 
439  if (MOSEK_mosek_JAR)
440  set (MOSEK_CLASSPATH "${MOSEK_mosek_JAR}")
441  endif ()
442 
443  mark_as_advanced (MOSEK_mosek_JAR)
444 endif ()
445 
446 # Python components
447 if (MOSEK_FIND_pypkg)
448  if (MOSEK_DIR)
449 
450  find_path (
451  MOSEK_PYTHONPATH
452  NAMES "mosek/array.py"
453  HINTS ENV PYTHONPATH
454  DOC "Path to MOSEK Python module."
455  )
456 
457  else ()
458 
459  find_path (
460  MOSEK_PYTHONPATH
461  NAMES "mosek/array.py"
462  HINTS "${MOSEK_DIR}/${MOSEK_PATH_SUFFIX}/python/${PYTHON_VERSION_MAJOR}"
463  DOC "Path to MOSEK Python module."
464  NO_DEFAULT_PATH
465  )
466 
467  endif ()
468 
469  mark_as_advanced (MOSEK_PYTHONPATH)
470 endif ()
471 
472 # ----------------------------------------------------------------------------
473 # prerequisite libraries
474 set (MOSEK_INCLUDES "${MOSEK_INCLUDE_DIR}")
475 set (MOSEK_LIBRARIES "${MOSEK_LIBRARY}")
476 
477 # ----------------------------------------------------------------------------
478 # aliases / backwards compatibility
479 set (MOSEK_INCLUDE_DIRS "${MOSEK_INCLUDES}")
480 
481 # ----------------------------------------------------------------------------
482 # debugging
483 if (BASIS_DEBUG AND COMMAND basis_dump_variables)
484  basis_dump_variables ("${CMAKE_CURRENT_BINARY_DIR}/FindMOSEKVariables.cmake")
485 endif ()
486 
487 # ----------------------------------------------------------------------------
488 # handle the QUIETLY and REQUIRED arguments and set *_FOUND to TRUE
489 # if all listed variables are found or TRUE
490 include (FindPackageHandleStandardArgs)
491 
492 set (MOSEK_REQUIRED_VARS
493  MOSEK_DIR
494  MOSEK_INCLUDE_DIR
495  MOSEK_LIBRARY
496 )
497 
498 if (MOSEK_FIND_mex)
499  list (APPEND MOSEK_REQUIRED_VARS MOSEK_mosekopt_MEX)
500  if (MOSEK_mosekopt_MEX)
501  set (MOSEK_mex_FOUND TRUE)
502  else ()
503  set (MOSEK_mex_FOUND FALSE)
504  endif ()
505 endif ()
506 if (MOSEK_FIND_jar)
507  list (APPEND MOSEK_REQUIRED_VARS MOSEK_mosek_JAR)
508  if (MOSEK_mosek_JAR)
509  set (MOSEK_jar_FOUND TRUE)
510  else ()
511  set (MOSEK_jar_FOUND FALSE)
512  endif ()
513 endif ()
514 if (MOSEK_FIND_pypkg)
515  list (APPEND MOSEK_REQUIRED_VARS MOSEK_PYTHONPATH)
516  if (MOSEK_PYTHONPATH)
517  set (MOSEK_pypkg_FOUND TRUE)
518  else ()
519  set (MOSEK_pypkg_FOUND FALSE)
520  endif ()
521 endif ()
522 
523 find_package_handle_standard_args (
524  MOSEK
525 # MESSAGE
526  DEFAULT_MSG
527 # VARIABLES
528  ${MOSEK_REQUIRED_VARS}
529 )
530 
531 set (CMAKE_FIND_LIBRARY_SUFFIXES "${_MOSEK_CMAKE_FIND_LIBRARY_SUFFIXES}")
532 unset (_MOSEK_CMAKE_FIND_LIBRARY_SUFFIXES)
533 
534 foreach (CMP IN LISTS _MOSEK_OPTIONAL_COMPONENTS)
535  unset (MOSEK_FIND_${CMP})
536 endforeach ()
function basis_get_matlab_release(out ARGV1)
Get release version of MATLAB installation.
function is(in result, in expected, in name)
Test whether a given result is equal to the expected result.
cmake _MOSEK_CMAKE_FIND_LIBRARY_SUFFIXES
cmake _MOSEK_OPTIONAL_COMPONENTS
cmake _MOSEK6_VERSIONS
cmake _MOSEK_FIND_OTHER_VERSIONS
#define UNIX
Whether the sources are compiled on a Unix-based system.
Definition: config.h:60
cmake COMMAND
cmake _MOSEK_VERSIONS_MAJOR
cmake _MOSEK_FIND_VERSION_MAJOR_MINOR
cmake MOSEK_DIR
if(oldcoutbuf)