From a7d1c4ec3f6e955262e3ae49e77430259e0bc12f Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 2 Jun 2016 14:32:07 -0400 Subject: [PATCH] CMakeDetermineCompilerId: Fix compiler id with square brackets in the path We use file(GLOB) to load the list of files produced by compiling the compiler identification source. Encode square brackets in the path to the directory so that they are not treated as special characters in the globbing expression. Otherwise we fail to find any files when the path contains square brackets and the compiler id is unknown. Reported-by: Esch Nigma --- Modules/CMakeDetermineCompilerId.cmake | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 465989de1..70ceaa6f8 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -365,14 +365,15 @@ ${CMAKE_${lang}_COMPILER_ID_OUTPUT} # Find the executable produced by the compiler, try all files in the # binary dir. + string(REGEX REPLACE "([][])" "[\\1]" _glob_id_dir "${CMAKE_${lang}_COMPILER_ID_DIR}") file(GLOB files RELATIVE ${CMAKE_${lang}_COMPILER_ID_DIR} # normal case - ${CMAKE_${lang}_COMPILER_ID_DIR}/* + ${_glob_id_dir}/* # com.apple.package-type.bundle.unit-test - ${CMAKE_${lang}_COMPILER_ID_DIR}/*.xctest/* + ${_glob_id_dir}/*.xctest/* ) list(REMOVE_ITEM files "${src}") set(COMPILER_${lang}_PRODUCED_FILES "")