prod/native/building/cmake/elastic_read_properties.cmake (22 lines of code) (raw):

function(elastic_read_properties PROPERTIES_FILENAME PROPERTIES_PREFIX) message(STATUS "Reading properties from: ${PROPERTIES_FILENAME}") file(STRINGS ${PROPERTIES_FILENAME} _ELASTIC_PROJECT_PROPERTIES) foreach(line IN LISTS _ELASTIC_PROJECT_PROPERTIES) if(line MATCHES "^([^=]+)=(.*)$") set(key "${CMAKE_MATCH_1}") set(value "${CMAKE_MATCH_2}") string(TOUPPER "${key}" key_upper) set(var_name "${PROPERTIES_PREFIX}${key_upper}") set(${var_name} "${value}" PARENT_SCOPE) message(STATUS "${var_name} = ${value}") endif() endforeach() endfunction() # convert bash-style array to list, like: (el el el) function(elastic_array_to_list INPUT_STRING OUTPUT_LIST) string(REPLACE "(" "" TEMP_STRING ${INPUT_STRING}) string(REPLACE ")" "" TEMP_STRING ${TEMP_STRING}) string(STRIP ${TEMP_STRING} TEMP_STRING) separate_arguments(TEMP_LIST NATIVE_COMMAND "${TEMP_STRING}") set(${OUTPUT_LIST} ${TEMP_LIST} PARENT_SCOPE) endfunction()