summaryrefslogtreecommitdiff
path: root/cmake/mbgl.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/mbgl.cmake')
-rw-r--r--cmake/mbgl.cmake14
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)