mirror of
git://code.qt.io/qt/qt5.git
synced 2026-02-01 19:36:04 +08:00
CMake: Fix parsing of .gitmodules to be more robust
Fix empty lines in .gitmodules, rather than failing to configure with an error message that the line is malformed. Quote all relevant values, to avoid errors that string REGEX does not have enough arguments in cases when the parsed content is malformed. Remove some dead code. Change-Id: I300a76f82fe174290442c659ca2e84391db361a1 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
@@ -12,21 +12,23 @@ enable_testing()
|
||||
|
||||
set(qt_module_prop_prefix "__qt_prop_")
|
||||
function(extract_git_submodules out_module_list)
|
||||
set(modules "")
|
||||
set(current_module "")
|
||||
set(module_list "")
|
||||
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/.gitmodules" lines)
|
||||
foreach(line IN LISTS lines)
|
||||
string(REGEX REPLACE "^\\[submodule \"([^\"]+)\"\\]$" "\\1" module ${line})
|
||||
# Skip empty lines.
|
||||
if(NOT line)
|
||||
continue()
|
||||
endif()
|
||||
string(REGEX REPLACE "^\\[submodule \"([^\"]+)\"\\]$" "\\1" module "${line}")
|
||||
if (NOT module STREQUAL line)
|
||||
list(APPEND modules ${modules})
|
||||
set(current_module ${module})
|
||||
list(APPEND module_list ${module})
|
||||
set(current_module "${module}")
|
||||
list(APPEND module_list "${module}")
|
||||
else()
|
||||
string(REGEX REPLACE "^\t([^ =]+) *=.*$" "\\1" prop ${line})
|
||||
string(REGEX REPLACE "^\t([^ =]+) *=.*$" "\\1" prop "${line}")
|
||||
if (NOT prop STREQUAL line)
|
||||
string(REGEX REPLACE "^[^=]+= *" "" value ${line})
|
||||
string(REPLACE " " ";" value ${value})
|
||||
string(REGEX REPLACE "^[^=]+= *" "" value "${line}")
|
||||
string(REPLACE " " ";" value "${value}")
|
||||
set("${qt_module_prop_prefix}${current_module}_${prop}" "${value}" PARENT_SCOPE)
|
||||
else()
|
||||
message(FATAL_ERROR "Malformed line ${CMAKE_CURRENT_SOURCE_DIR}/.gitmodules: ${line}")
|
||||
|
||||
Reference in New Issue
Block a user