diff options
Diffstat (limited to 'cmake/mbgl.cmake')
-rw-r--r-- | cmake/mbgl.cmake | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/cmake/mbgl.cmake b/cmake/mbgl.cmake index 8e6f11c823..96ce393da2 100644 --- a/cmake/mbgl.cmake +++ b/cmake/mbgl.cmake @@ -121,12 +121,14 @@ endfunction() function(load_sources_list VAR FILELIST) set(_FILES) - file(STRINGS "${FILELIST}" _LINES) - foreach(_LINE IN LISTS _LINES) - string(STRIP "${_LINE}" _LINE) - string(REGEX MATCH "^([^;#]+)" _FILE "${_LINE}") - if (_FILE) - list(APPEND _FILES "${_FILE}") + file(READ "${FILELIST}" _LINES) + # Note: this isn't really parsing JSON, but it's good enough for our purposes. + set(_REGEX "(^|\n) *(\"([^\"]+)\" *: *)?\"([^\"]+)\",?(\n|$)") + string(REGEX MATCHALL "${_REGEX}" _MATCHES "${_LINES}") + foreach(_MATCH IN LISTS _MATCHES) + string(REGEX MATCH "${_REGEX}" _FILE "${_MATCH}") + if (_FILE AND NOT CMAKE_MATCH_3 STREQUAL "//") + list(APPEND _FILES "${CMAKE_SOURCE_DIR}/${CMAKE_MATCH_4}") endif() endforeach() set(${VAR} "${_FILES}" PARENT_SCOPE) |