diff options
-rw-r--r-- | Modules/FindFreetype.cmake | 98 | ||||
-rw-r--r-- | Modules/FindMatlab.cmake | 21 |
2 files changed, 16 insertions, 103 deletions
diff --git a/Modules/FindFreetype.cmake b/Modules/FindFreetype.cmake index 7352769..82885cb 100644 --- a/Modules/FindFreetype.cmake +++ b/Modules/FindFreetype.cmake @@ -65,104 +65,6 @@ directory of a Freetype installation. # I'm going to attempt to cut out the middleman and hope # everything still works. -set(_Freetype_args) -if (Freetype_FIND_VERSION) - list(APPEND _Freetype_args - "${Freetype_FIND_VERSION}") - if (Freetype_FIND_VERSION_EXACT) - list(APPEND _Freetype_args - EXACT) - endif () -endif () -set(_Freetype_component_req) -set(_Freetype_component_opt) -foreach (_Freetype_component IN LISTS Freetype_FIND_COMPONENTS) - if (Freetype_FIND_REQUIRE_${_Freetype_component}) - list(APPEND _Freetype_component_req - "${_Freetype_component}") - else () - list(APPEND _Freetype_component_opt - "${_Freetype_component}") - endif () -endforeach () -unset(_Freetype_component) -if (_Freetype_component_req) - list(APPEND _Freetype_args - COMPONENTS "${_Freetype_component_req}") -endif () -unset(_Freetype_component_req) -if (_Freetype_component_opt) - list(APPEND _Freetype_args - OPTIONAL_COMPONENTS "${_Freetype_component_opt}") -endif () -unset(_Freetype_component_opt) -# Always find with QUIET to avoid noise when it is not found. -find_package(freetype CONFIG QUIET ${_Freetype_args}) -unset(_Freetype_args) -if (freetype_FOUND) - if (NOT TARGET Freetype::Freetype) - add_library(Freetype::Freetype IMPORTED INTERFACE) - set_target_properties(Freetype::Freetype PROPERTIES - INTERFACE_LINK_LIBRARIES freetype) - endif () - get_property(FREETYPE_INCLUDE_DIRS TARGET freetype PROPERTY INTERFACE_INCLUDE_DIRECTORIES) - get_property(FREETYPE_LIBRARIES TARGET freetype PROPERTY INTERFACE_LINK_LIBRARIES) - get_property(_Freetype_location TARGET freetype PROPERTY IMPORTED_IMPLIB) - if (NOT _Freetype_location) - get_property(_Freetype_location_release TARGET freetype PROPERTY IMPORTED_IMPLIB_RELEASE) - if (NOT _Freetype_location_release) - get_property(_Freetype_location_release TARGET freetype PROPERTY IMPORTED_IMPLIB_RELWITHDEBINFO) - endif () - get_property(_Freetype_location_debug TARGET freetype PROPERTY IMPORTED_IMPLIB_DEBUG) - if (_Freetype_location_release AND _Freetype_location_debug) - set(_Freetype_location - optimized "${_Freetype_location_release}" - debug "${_Freetype_location_debug}") - elseif (_Freetype_location_release) - set(_Freetype_location "${_Freetype_location_release}") - elseif (_Freetype_location_debug) - set(_Freetype_location "${_Freetype_location_debug}") - else () - get_property(_Freetype_location_release TARGET freetype PROPERTY LOCATION_RELEASE) - if (NOT _Freetype_location_release) - get_property(_Freetype_location_release TARGET freetype PROPERTY LOCATION_RELWITHDEBINFO) - endif () - get_property(_Freetype_location_debug TARGET freetype PROPERTY LOCATION_DEBUG) - if (_Freetype_location_release AND _Freetype_location_debug) - set(_Freetype_location - optimized "${_Freetype_location_release}" - debug "${_Freetype_location_debug}") - elseif (_Freetype_location_release) - set(_Freetype_location "${_Freetype_location_release}") - elseif (_Freetype_location_debug) - set(_Freetype_location "${_Freetype_location_debug}") - else () - get_property(_Freetype_location TARGET freetype PROPERTY LOCATION) - endif () - endif () - unset(_Freetype_location_release) - unset(_Freetype_location_debug) - endif () - list(INSERT FREETYPE_LIBRARIES 0 - "${_Freetype_location}") - unset(_Freetype_location) - set(Freetype_FOUND 1) - set(FREETYPE_FOUND 1) - set(FREETYPE_VERSION_STRING "${freetype_VERSION}") - foreach (_Freetype_component IN LISTS Freetype_FIND_COMPONENTS) - set(Freetype_${_Freetype_component}_FOUND "${freetype_${_Freetype_component}_FOUND}") - endforeach () - unset(_Freetype_component) - - include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) - find_package_handle_standard_args(Freetype - HANDLE_COMPONENTS - VERSION_VAR FREETYPE_VERSION_STRING - ) - - return () -endif () - set(FREETYPE_FIND_ARGS HINTS ENV FREETYPE_DIR diff --git a/Modules/FindMatlab.cmake b/Modules/FindMatlab.cmake index 987427f..18255b6 100644 --- a/Modules/FindMatlab.cmake +++ b/Modules/FindMatlab.cmake @@ -193,7 +193,7 @@ Provided commands ^^^^^^^^^^^^^^^^^ :command:`matlab_get_version_from_release_name` - returns the version from the release name + returns the version from the Matlab release name :command:`matlab_get_release_name_from_version` returns the release name from the Matlab version :command:`matlab_add_mex` @@ -346,6 +346,11 @@ file(MAKE_DIRECTORY "${_matlab_temporary_folder}") * Output: ``version`` is the version of Matlab (e.g. 23.2.0) Returns the version of Matlab from a release name + + .. note:: + + This command provides correct versions mappings for Matlab but not MCR. + #]=======================================================================] macro(matlab_get_version_from_release_name release_name version_name) @@ -373,6 +378,11 @@ endmacro() * Output: ``release_name`` is the release name (R2023b) Returns the release name from the version of Matlab + + .. note:: + + This command provides correct version mappings for Matlab but not MCR. + #]=======================================================================] function(matlab_get_release_name_from_version version release_name) @@ -471,10 +481,10 @@ function(matlab_extract_all_installed_versions_from_registry win64 matlab_versio ) if(_reg) - string(REGEX MATCHALL "([0-9]+\\.[0-9]+)" _versions_regex "${_reg}") + string(REGEX MATCHALL "([0-9]+(\\.[0-9]+)+)" _versions_regex "${_reg}") foreach(_match IN LISTS _versions_regex) - if(_match MATCHES "([0-9]+\\.[0-9]+)") + if(_match MATCHES "([0-9]+(\\.[0-9]+)+)") cmake_host_system_information(RESULT _reg QUERY WINDOWS_REGISTRY "HKLM/SOFTWARE/Mathworks/${_installation_type}/${CMAKE_MATCH_1}" VALUE "MATLABROOT" @@ -542,8 +552,9 @@ function(matlab_get_all_valid_matlab_roots_from_registry matlab_versions matlab_ # extract_matlab_versions_from_registry_brute_force or # matlab_extract_all_installed_versions_from_registry. - # only the major.minor version is used in Mathworks Windows Registry keys - list(TRANSFORM matlab_versions REPLACE "^([0-9]+\\.[0-9]+).*" "\\1") + # Mostly the major.minor version is used in Mathworks Windows Registry keys. + # If the patch is not zero, major.minor.patch is used. + list(TRANSFORM matlab_versions REPLACE "^([0-9]+\\.[0-9]+(\\.[1-9][0-9]*)?).*" "\\1") set(_matlab_roots_list ) # check for Matlab installations |