title: Why does this cmake initial cache file result in such strange errors?
body: <p>I have a file <code>/home/me/.config/Kitware/CMakeCache.txt</code> that contains some initial cache settings I'd like to use everywhere. I run <code>cmake -C /home/me/.config/Kitware/CMakeCache.txt</code> and it gives me a parse error on line 3 with this file:</p>
  
  <pre><code>set(CMAKE_CXX_FLAGS "-march=native -mtune=native" CACHE STRING "Flags used by the compiler during all build types.")
  
  set(CMAKE_CXX_FLAGS_DEBUG "-Og -ggdb" CACHE STRING "Flags used by the compiler during debug builds.")
  </code></pre>
  
  <p>This is the error I get:</p>
  
  <pre><code>CMake Error: Parse error in cache file /home/me/.config/Kitware/CMakeCache.txt on line 3. Offending entry: set(CMAKE_CXX_FLAGS_DEBUG "-Og -ggdb" CACHE STRING "Flags used by the compiler during debug builds.")
  </code></pre>
  
  <p>But, if I change the line (adding <code>=</code>) to:</p>
  
  <pre><code>set(CMAKE_CXX_FLAGS_DEBUG "=-Og -ggdb" CACHE STRING "Flags used by the compiler during debug builds.")
  </code></pre>
  
  <p>it works fine, but then the resulting cache file in my project has the option set to <code>=-Og -ggdb</code>. In fact, the <code>=</code> sign can appear anywhere in the entire <code>set</code> statement. But it results in different problems no matter where you put it.</p>
  
  <p>If I rename the file to <code>/home/me/.config/Kitware/default.cmake</code> (or anything else besides <code>CMakeCache.txt</code> it also works fine and doesn't require an <code>=</code> sign in the value for every option.</p>
  
  <p>This is very weird behavior, and I don't understand it. What's going on here?</p>