func (m *Mapping) Set(key, value string) {
	m.vs[len(m.vs)-1][key] = value
}
Set sets a key to a particular value in the current scope.
Setting a key to the empty string is equivalent to deleting it, in accordance with CMake semantics.
package bindings
import "log"
type Mapping struct {
	vs    []map[string]string
	cache map[string]string
}
func New() *Mapping {
	m := &Mapping{cache: make(map[string]string)}
	m.Push()
	return m
}
func (m *Mapping) Push() {
	m.vs = append(m.vs, make(map[string]string))
}
func (m *Mapping) Pop() {
	m.vs = m.vs[0 : len(m.vs)-1]
}
func (m *Mapping) Depth() int {
	return len(m.vs) - 1
}