Commit Graph

143 Commits

Author SHA1 Message Date
scivision bade9832e6 FindMatlab: R2024a version map 2024-03-21 10:13:59 -04:00
Brad King aba76cdaed Merge topic 'findmatlab-registry-lookup-without-versionxml' into release-3.29
e22c4dfea0 FindMatlab: Revert undocumented and now-unnecessary full version lookup

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9226
2024-02-08 09:42:12 -05:00
Hermann von Kleist e22c4dfea0 FindMatlab: Revert undocumented and now-unnecessary full version lookup
Partially revert commit dc9d9589e4 (FindMatlab:WIN32: return full Matlab
version when found via registry, 2023-09-14, v3.28.0-rc1~82^2~2).  It
changed `matlab_extract_all_installed_versions_from_registry` behavior
to query `VersionInfo.xml` for version information.  However, the
function documentation states that it only uses the registry.  It's also
not needed since commit c608adc236 (FindMatlab: Fix major.minor version
lookups in Windows Registry, 2024-01-11, v3.28.2~13^2~1), which added
the same lookup to `matlab_get_all_valid_matlab_roots_from_registry`.
2024-02-07 12:12:12 -05:00
Brad King 8e7960773f Merge topic 'find-matlab-docs-mcr-version-mapping'
29fece7ef3 FindMatlab: Document that version mappings do not apply to MCR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9184
2024-01-26 10:11:09 -05:00
Brad King f6c9da9154 Merge topic 'find-matlab-docs-mcr-version-mapping' into release-3.28
29fece7ef3 FindMatlab: Document that version mappings do not apply to MCR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9184
2024-01-26 10:11:08 -05:00
Brad King ebef793519 Merge topic 'find-matlab-fix-nonzero-patch-version'
b1e27b1b9d FindMatlab: Some versions use major.minor.patch in the registry

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9183
2024-01-26 10:10:02 -05:00
Hermann von Kleist 29fece7ef3 FindMatlab: Document that version mappings do not apply to MCR 2024-01-25 09:00:18 +01:00
Hermann von Kleist b1e27b1b9d FindMatlab: Some versions use major.minor.patch in the registry
Fixes #25631.
2024-01-25 08:54:01 +01:00
Brad King e855c7a4de Merge topic 'FindMatlab-docs'
b8665d44ba FindMatlab: Fix error message from function
44d2cf3ed4 FindMatlab: Document all registry paths for version lookup
363a7d4693 FindMatlab: matlab_get_release_name_from_version is a function now

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9175
2024-01-23 14:57:08 -05:00
Hermann von Kleist b8665d44ba FindMatlab: Fix error message from function 2024-01-22 09:29:57 -05:00
Hermann von Kleist 44d2cf3ed4 FindMatlab: Document all registry paths for version lookup 2024-01-22 09:29:09 -05:00
Hermann von Kleist 363a7d4693 FindMatlab: matlab_get_release_name_from_version is a function now 2024-01-22 09:28:04 -05:00
Brad King d5cc1da1ca Merge topic 'matlab-env'
6f7d87b40d FindMatlab: use NAMES for find_*
9e97893147 FindMatlab: set MATLAB_ARCH per process call

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9161
2024-01-19 11:02:56 -05:00
Hermann von Kleist 7060e2135c FindMatlab: Restore support for finding EXACT major.minor version
By comparing major.minor, the behavior approximately matches pre-3.28
behavior.

Fixes: #25605
2024-01-17 10:33:48 -05:00
Hermann von Kleist 88a1392270 FindMatlab: use correct registry view when extracting versions 2024-01-17 16:19:22 +01:00
scivision 6f7d87b40d FindMatlab: use NAMES for find_*
this improves readability especially for custom function
_Matlab_find_library
2024-01-16 22:39:13 -05:00
scivision 9e97893147 FindMatlab: set MATLAB_ARCH per process call
this is just a best practice refactor.
2024-01-16 22:34:01 -05:00
scivision 42fbe01eba FindMatlab: Accept long version in matlab_get_release_name_from_version
Make this work:

  matlab_get_release_name_from_version(${Matlab_VERSION})

which the user would expect.

While at it, simplify this function code.
2024-01-16 11:37:43 -05:00
scivision c608adc236 FindMatlab: Fix major.minor version lookups in Windows Registry
The registry key names use only the first two version components.
Previously we were using the full versions.

Fixes: #25582
2024-01-16 11:35:32 -05:00
Hermann von Kleist 694727bb45 FindMatlab: Restore support for versions without VersionInfo.xml
Report "unknown" in `_Matlab_VersionInfoXML` if file is missing.
Fix omitted MATLAB root with unknown version from XML.

Fixes: #25585
Fixes: #25586
2024-01-12 09:38:12 -05:00
Brad King 0f6e9d0658 FindMatlab: Fix processing of multiple versions from Windows Registry
Fix logic from commit fff5c1507e (FindMatlab: refactor: use registry
query instead of execute_process, 2023-09-14, v3.28.0-rc1~82^2~7)
to work when multiple versions are found in the registry.

Issue: #25497
2023-12-14 10:35:56 -05:00
Brad King ef64c118de FindMatlab: Fix regression on Windows Registry lookup failure
Fix logic from commit dc9d9589e4 (FindMatlab:WIN32: return full Matlab
version when found via registry, 2023-09-14, v3.28.0-rc1~82^2~2) to
avoid assuming that a registry entry always exists and is non-empty.

Fixes: #25497
2023-12-14 08:12:13 -05:00
scivision 39881de3f6 FindMatlab:macOS: return full version when found by path guess 2023-09-18 15:50:48 -04:00
scivision 35bcb9116c FindMatlab:lint: set(... CACHE INTERNAL) implies FORCE 2023-09-18 15:23:21 -04:00
scivision dc9d9589e4 FindMatlab:WIN32: return full Matlab version when found via registry
rework internal XML reading function for better code reuse and
namespace isolation
2023-09-18 15:23:21 -04:00
scivision abbfdd3b3a FindMatlab: improve version regex
the matlab_versions_mapping always has at least major.minor
2023-09-18 15:23:21 -04:00
scivision ff20d993f3 FindMatlab: doc: rename osx=>macOS 2023-09-18 15:09:51 -04:00
scivision d7b73f14c2 FindMatlab: retrieve full major.minor.patch.tweak 2023-09-18 15:09:49 -04:00
scivision 8b8135487f FindMatlab: refactor: remove unneeded syntax 2023-09-18 15:07:53 -04:00
scivision fff5c1507e FindMatlab: refactor: use registry query instead of execute_process
On Windows,
instead of executing "reg query" it's much simpler and more robust
to use cmake's built in registry query.

Remove unused variables. Significantly reduces amount of code in
function.
2023-09-18 15:07:52 -04:00
scivision cf7ea12a7e FindMatlab: Add R2023b=23.2
Matlab went to a new version numbering scheme with R2023b.
2023-09-15 09:03:32 -04:00
scivision 8ea398a7af FindMatlab: Prefer to use VersionInfo.xml to get version, fallback to run
Parsing the version file is much faster than running Matlab.
It also improves reliability as Matlab silently quits or hangs
in some misconfigured environments.

For old Matlab, falls back to running Matlab.

also refactor file(STRINGS => file(READ as whole file was read anyway

Fixes: #25209
2023-09-09 22:23:05 -04:00
scivision 7d7fe9981c FindMatlab: use if(IS_DIRECTORY) for directories instead of EXISTS 2023-08-27 18:27:39 -04:00
scivision cf554750dd FindMatlab: no if(NOT EXIST) guard needed for file(MAKE_DIRECTORY) 2023-08-27 18:25:55 -04:00
Brad King 04b0d5c862 codespell: Fix typos 2023-05-22 16:51:15 -04:00
Brad King 6aa58ebaba Merge topic 'FindMatlab-R2023a'
58ab34d88a FindMatlab: add version/release map for R2023a

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8334
2023-03-17 07:46:54 -04:00
scivision 58ab34d88a FindMatlab: add version/release map for R2023a 2023-03-16 11:08:05 -04:00
scivision 1932ae0284 FindMatlab: refactor: use string(APPEND 2023-03-07 15:34:36 -05:00
scivision c4cacdc7eb FindMatlab: use modern foreach()
remove unused superseded commented code
2023-03-07 15:34:35 -05:00
scivision af05544c49 FindMatlab: document function input/output 2023-03-07 15:34:35 -05:00
scivision 257a3e870e FindMatlab: add Matlab_VERSION and document.
fixes #24569
2023-03-07 15:32:56 -05:00
Brad King be4dcdf100 Merge topic 'FindMatlab-macos-rosetta'
1bc9b0f256 FindMatlab: accommodate Matlab running under Rosetta
8dcd14bb87 FindMatlab: simplify mexext find logic

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8063
2023-01-13 08:57:43 -05:00
scivision 1bc9b0f256 FindMatlab: accommodate Matlab running under Rosetta
fixes #24312
2023-01-12 09:47:09 -05:00
scivision 8dcd14bb87 FindMatlab: simplify mexext find logic
This eliminates an explicit for() loop
2023-01-12 08:41:13 -05:00
Jorrit Olthuis 6683c20f22 FindMatlab: Add SYSTEM include flag for matlab_add_mex
Add the `SYSTEM` flag for include directories provided by MATLAB, as the
the pragmas used are not compatible with GCC and generate a warning.

Fixes: #24166
2023-01-11 15:26:19 -05:00
Brad King 689eb0c306 Merge topic 'matlab-r2022b'
edbdfba3f5 FindMatlab: add R2022b 9.13 version map

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7683
2022-09-19 10:19:12 -04:00
Michael Hirsch edbdfba3f5 FindMatlab: add R2022b 9.13 version map 2022-09-16 10:29:19 -04:00
Brad King 671509ff27 Merge topic 'FindMatlab-macos-arm64'
f0edac914a FindMatlab: Add MEX binary file suffix for Apple Silicon native Matlab

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7673
2022-09-15 09:05:53 -04:00
Michael Hirsch f0edac914a FindMatlab: Add MEX binary file suffix for Apple Silicon native Matlab
The Matlab MEX binary file suffix is distinct for Apple Silicon.
2022-09-14 14:05:35 -04:00
Michael Hirsch 72dd680609 FindMatlab: follow CMP0074 <PackageName>_ROOT search behavior 2022-09-01 10:48:13 -04:00