function(VarsFromFile filename) file(STRINGS ${filename} ConfigContents) foreach(NameAndValue ${ConfigContents}) # Strip leading spaces string(REGEX REPLACE "^[ ]+" "" NameAndValue ${NameAndValue}) # Find variable name string(REGEX MATCH "^[^=]+" Name ${NameAndValue}) # Find the value string(REPLACE "${Name}=" "" Value ${NameAndValue}) # Set the variable set(${Name} "${Value}" PARENT_SCOPE) endforeach() endfunction(VarsFromFile)