Преглед изворни кода

CMakeRCInformation: Recognize 'windres' tools with '.' in name (#14865)

A 64-bit MinGW windres is named "i686-w64-mingw32.shared-windres".  The
get_filename_component NAME_WE mode may strip the ".shared-windres" part
and cause the result to no longer contain "windres".  Instead, match the
"windres" name in the full CMAKE_RC_COMPILER value first, and use the
get_filename_component code path only for other resource compilers.
Brad King пре 11 година
родитељ
комит
7147ed5ce4
1 измењених фајлова са 4 додато и 3 уклоњено
  1. 4 3
      Modules/CMakeRCInformation.cmake

+ 4 - 3
Modules/CMakeRCInformation.cmake

@@ -19,9 +19,10 @@
 
 # make sure we don't use CMAKE_BASE_NAME from somewhere else
 set(CMAKE_BASE_NAME)
-get_filename_component(CMAKE_BASE_NAME ${CMAKE_RC_COMPILER} NAME_WE)
-if("${CMAKE_BASE_NAME}" MATCHES "windres")
-  set(CMAKE_BASE_NAME "windres")
+if(CMAKE_RC_COMPILER MATCHES "windres[^/]*$")
+ set(CMAKE_BASE_NAME "windres")
+else()
+ get_filename_component(CMAKE_BASE_NAME ${CMAKE_RC_COMPILER} NAME_WE)
 endif()
 set(CMAKE_SYSTEM_AND_RC_COMPILER_INFO_FILE
   ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake)