diff --git a/NodeJS.cmake b/NodeJS.cmake index 676e4e0..df3b513 100644 --- a/NodeJS.cmake +++ b/NodeJS.cmake @@ -134,9 +134,9 @@ function(nodejs_init) endif() # Regex patterns used by the init function for component extraction - set(HEADERS_MATCH "^([A-Fa-f0-9]+)[ \t]+([^-]+)-(headers|v?[0-9.]+)-(headers|v?[0-9.]+)([.]tar[.]gz)$") - set(LIB32_MATCH "(^[0-9A-Fa-f]+)[\t ]+(win-x86)?(/)?([^/]*)(.lib)$") - set(LIB64_MATCH "(^[0-9A-Fa-f]+)[\t ]+(win-)?(x64/)(.*)(.lib)$") + set(HEADERS_MATCH "^([A-Fa-f0-9]+)[ \t]+(([^-]+)-(.+)-headers\.tar\.gz)$") + set(LIB32_MATCH "(^[0-9A-Fa-f]+)[ \t]+(win-x86/([^/]*\.lib))$") + set(LIB64_MATCH "(^[0-9A-Fa-f]+)[ \t]+(win-x64/(.*\.lib))$") # Parse function arguments cmake_parse_arguments(nodejs_init @@ -295,15 +295,9 @@ function(nodejs_init) endif() string(REGEX MATCH ${HEADERS_MATCH} HEADERS_CHECKSUM ${HEADERS_CHECKSUM}) set(HEADERS_CHECKSUM ${CMAKE_MATCH_1}) - set(NAME ${CMAKE_MATCH_2}) - if(CMAKE_MATCH_3 STREQUAL "headers") - set(VERSION ${CMAKE_MATCH_4}) - else() - set(VERSION ${CMAKE_MATCH_3}) - endif() - set(HEADERS_ARCHIVE - ${CMAKE_MATCH_2}-${CMAKE_MATCH_3}-${CMAKE_MATCH_4}${CMAKE_MATCH_5} - ) + set(NAME ${CMAKE_MATCH_3}) + set(VERSION ${CMAKE_MATCH_4}) + set(HEADERS_ARCHIVE ${CMAKE_MATCH_2}) # Make sure that the root directory exists, and that the checksum # file has been moved over from temp if(DEFINED ROOT) @@ -313,7 +307,7 @@ function(nodejs_init) if(DEFINED OLD_ROOT AND NOT ROOT STREQUAL "${OLD_ROOT}") file(REMOVE ${TEMP}/CHECKSUM) file(REMOVE ${ROOT}/CHECKSUM) - message(FATAL_ERROR "Version/Name mismatch") + message(FATAL_ERROR "Version/Name mismatch - ${OLD_ROOT} vs ${ROOT}") endif() file(MAKE_DIRECTORY ${ROOT}) if(EXISTS ${TEMP}/CHECKSUM) @@ -424,8 +418,8 @@ function(nodejs_init) string(REGEX MATCH ${LIB32_MATCH} LIB32_CHECKSUM ${LIB32_CHECKSUM}) set(LIB32_CHECKSUM ${CMAKE_MATCH_1}) set(LIB32_PATH win-x86) - set(LIB32_NAME ${CMAKE_MATCH_4}${CMAKE_MATCH_5}) - set(LIB32_TARGET ${CMAKE_MATCH_2}${CMAKE_MATCH_3}${LIB32_NAME}) + set(LIB32_NAME ${CMAKE_MATCH_3}) + set(LIB32_TARGET ${CMAKE_MATCH_2}) if(NOT EXISTS ${ROOT}/${LIB32_PATH}) file(REMOVE_RECURSE ${TEMP}/${LIB32_PATH}) download_file( @@ -462,8 +456,8 @@ function(nodejs_init) string(REGEX MATCH ${LIB64_MATCH} LIB64_CHECKSUM ${LIB64_CHECKSUM}) set(LIB64_CHECKSUM ${CMAKE_MATCH_1}) set(LIB64_PATH win-x64) - set(LIB64_NAME ${CMAKE_MATCH_4}${CMAKE_MATCH_5}) - set(LIB64_TARGET ${CMAKE_MATCH_2}${CMAKE_MATCH_3}${LIB64_NAME}) + set(LIB64_NAME ${CMAKE_MATCH_3}) + set(LIB64_TARGET ${CMAKE_MATCH_2}) if(NOT EXISTS ${ROOT}/${LIB64_PATH}) file(REMOVE_RECURSE ${TEMP}/${LIB64_PATH}) download_file(