From 606b34b3a6eeac1bcd64c274b5407cc2cd6be2bd Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 4 Nov 2020 09:45:28 -0500 Subject: CMakeDetermineCompilerABI: Look for more INFO strings in test binary Explicitly use only the first occurrence of each matched INFO string since previously we only extracted the first two anyway. --- Modules/CMakeDetermineCompilerABI.cmake | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Modules/CMakeDetermineCompilerABI.cmake b/Modules/CMakeDetermineCompilerABI.cmake index 7e5b375..3fa99df 100644 --- a/Modules/CMakeDetermineCompilerABI.cmake +++ b/Modules/CMakeDetermineCompilerABI.cmake @@ -75,12 +75,14 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src) message(CHECK_PASS "done") file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log "Detecting ${lang} compiler ABI info compiled with the following output:\n${OUTPUT}\n\n") - file(STRINGS "${BIN}" ABI_STRINGS LIMIT_COUNT 2 REGEX "INFO:[A-Za-z0-9_]+\\[[^]]*\\]") + file(STRINGS "${BIN}" ABI_STRINGS LIMIT_COUNT 32 REGEX "INFO:[A-Za-z0-9_]+\\[[^]]*\\]") + set(ABI_SIZEOF_DPTR "NOTFOUND") + set(ABI_NAME "NOTFOUND") foreach(info ${ABI_STRINGS}) - if("${info}" MATCHES "INFO:sizeof_dptr\\[0*([^]]*)\\]") + if("${info}" MATCHES "INFO:sizeof_dptr\\[0*([^]]*)\\]" AND NOT ABI_SIZEOF_DPTR) set(ABI_SIZEOF_DPTR "${CMAKE_MATCH_1}") endif() - if("${info}" MATCHES "INFO:abi\\[([^]]*)\\]") + if("${info}" MATCHES "INFO:abi\\[([^]]*)\\]" AND NOT ABI_NAME) set(ABI_NAME "${CMAKE_MATCH_1}") endif() endforeach() -- cgit v0.12