title: Reuse build condition for multiple targets in binding.gyp
body: <p>Originally my binding file has only one target and that has been fine:</p>
  
  <pre><code>{
  'targets': [
      {
          'target_name': 'target1',
          'sources': [ 'source1.cc', 'source2.cc' ],
          'cflags_cc!': [ '-fno-rtti', '-fno-exceptions' ],
          'cflags!': [ '-fno-exceptions' ],
          'conditions': [
              #A very, very long condition
          ]
      },
  }
  </code></pre>
  
  <p>Now I need another target which is more or less the same, but build an executable file instead of link object. If I duplicate the original target, that will be OK, however I don't want to repeat the <code>condition</code> which is exactly the same. How could I do that?</p>
  
  <p>E.g. My ideal bindin.gyp would look somewhat like this:</p>
  
  <pre><code>{
  'conditions': [
      #A very, very long condition
  ]
  
  'targets': [
      {
          'target_name': 'target1',
          'sources': [ 'source1.cc', 'source2.cc' ],
          'cflags_cc!': [ '-fno-rtti', '-fno-exceptions' ],
          'cflags!': [ '-fno-exceptions' ],
          'conditions' : #Refer to the conditions stated above
      },
      {
          'target_name': 'target2',
          'type' : 'executable'
          'sources': [ 'source1.cc', 'source3.cc' ],
          'cflags_cc!': [ '-fno-rtti', '-fno-exceptions' ],
          'cflags!': [ '-fno-exceptions' ],
          'conditions' : #Refer to the conditions stated above
      },
  }
  </code></pre>
  
  <p>I tried using <code>variables</code> but node-gyp only allows variables of type string or list, while 'conditions' is an <a href="https://en.wikipedia.org/wiki/Associative_array" rel="nofollow">associative array</a></p>