title: xcconfig: Different preprocessor macros for Debug/Release
body: <p>I have created and applied a simple .xcconfig file containing</p>
  
  <pre><code>GCC_PREPROCESSOR_DEFINITIONS[config=Debug] = FOODEBUG
  GCC_PREPROCESSOR_DEFINITIONS[config=Release] = FOORELEASE
  </code></pre>
  
  <p>and main.cpp containing</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  // This warning IS shown
  #if DEBUG
  #warning DEBUG is set to 1
  #endif
  
  // This warning IS NOT shown
  #ifdef FOODEBUG
  #warning FOODEBUG is set
  #endif
  
  // This warning IS NOT shown
  #ifdef FOORELEASE
  #warning FOORELEASE is set
  #endif
  
  int main(int argc, const char * argv[])
  {
      // insert code here...
      std::cout &lt;&lt; "Hello, World!\n";
      return 0;
  }
  </code></pre>
  
  <p>Now I'm wondering why in main.cpp, neither FOODEBUG nor FOORELEASE are defined ??!</p>
  
  <p>As expected, the build settings show the two lines of my .xcconfig file ("Any Architecture | Any SDK"), but they are not actually used.</p>
  
  <p><img src="https://i.stack.imgur.com/z7OP2.png" alt="Xcode screenshot"> </p>
  
  <p>How could I achieve that?</p>