[
    { ref: "iwyu-qt.imp" },
    
    # Mapper uses -DQT_USE_QSTRINGBUILDER 
    { include: [ "<QStringBuilder>", "public", "<QString>", "public" ] },
    
    { symbol: [ "abs", "private", "<cmath>", "public" ] },
    { symbol: [ "M_PI", "private", "<QtMath>", "public" ] },
    
    { include: [ "\"util/qasconst.h\"", "private", "\"util/backports.h\"", "public" ] },
    { include: [ "\"util/qoverload.h\"", "private", "\"util/backports.h\"", "public" ] },
    
    { include: [ "<qtsingleapplication.h>", "private", "<QtSingleApplication>", "public" ] },
    
    # GDAL
    { include: [ "<gdal_version.h>", "private", "<gdal.h>", "public" ] },
    { include: [ "<ogr_core.h>", "private", "<ogr_api.h>", "public" ] },
    { include: [ "<cpl_port.h>", "private", "<gdal.h>", "public" ] },
    { include: [ "<cpl_error.h>", "private", "<gdal.h>", "public" ] },
    { include: [ "<cpl_progress.h>", "private", "<gdal.h>", "public" ] },
    { include: [ "<cpl_virtualmem.h>", "private", "<gdal.h>", "public" ] },
    
    # ?
    { include: [ "<bits/exception.h>", "private", "<exception>", "public" ] },
    { include: [ "<bits/refwrap.h>", "private", "<functional>", "public" ] },
    { include: [ "<bits/shared_ptr.h>", "private", "<memory>", "public" ] },
    { include: [ "<bits/std_abs.h>", "private", "<cmath>", "public" ] },
    { include: [ "<bits/std_function.h>", "private", "<functional>", "public" ] },
    { include: [ "<ext/alloc_traits.h>", "private", "<memory>", "public" ] },
    { include: [ "<math.h>", "public", "<cmath>", "public" ] },
    { include: [ "<stdlib.h>", "public", "<cstdlib>", "public" ] },
    
    # libstdc++ debugging headers, for use with -D_GLIBCXX_DEBUG
    { include: [ "<debug/map.h>", "private", "<map>", "public" ] },
    # Seems to confuse iwyu: { include: [ "<debug/safe_iterator.h>", "private", "<iterator>", "public" ] },
    { include: [ "<debug/safe_sequence.h>", "private", "<iterator>", "public" ] },
    { include: [ "<debug/set.h>", "private", "<set>", "public" ] },
    { include: [ "<debug/unordered_map>", "private", "<unordered_map>", "public" ] },
    { include: [ "<debug/unordered_set>", "private", "<unordered_set>", "public" ] },
    { include: [ "<debug/vector>", "private", "<vector>", "public" ] },

]
