libkmsxx_sources = files([
    'src/atomicreq.cpp',
    'src/blob.cpp',
    'src/card.cpp',
    'src/connector.cpp',
    'src/crtc.cpp',
    'src/dmabufframebuffer.cpp',
    'src/drmobject.cpp',
    'src/drmpropobject.cpp',
    'src/dumbframebuffer.cpp',
    'src/encoder.cpp',
    'src/extframebuffer.cpp',
    'src/framebuffer.cpp',
    'src/helpers.cpp',
    'src/mode_cvt.cpp',
    'src/modedb_cea.cpp',
    'src/modedb.cpp',
    'src/modedb_dmt.cpp',
    'src/pixelformats.cpp',
    'src/plane.cpp',
    'src/property.cpp',
    'src/videomode.cpp',
])

public_headers = [
    'inc/kms++/dmabufframebuffer.h',
    'inc/kms++/atomicreq.h',
    'inc/kms++/property.h',
    'inc/kms++/plane.h',
    'inc/kms++/kms++.h',
    'inc/kms++/connector.h',
    'inc/kms++/card.h',
    'inc/kms++/modedb.h',
    'inc/kms++/pagefliphandler.h',
    'inc/kms++/encoder.h',
    'inc/kms++/decls.h',
    'inc/kms++/videomode.h',
    'inc/kms++/drmobject.h',
    'inc/kms++/pixelformats.h',
    'inc/kms++/crtc.h',
    'inc/kms++/framebuffer.h',
    'inc/kms++/extframebuffer.h',
    'inc/kms++/pipeline.h',
    'inc/kms++/drmpropobject.h',
    'inc/kms++/mode_cvt.h',
    'inc/kms++/blob.h',
    'inc/kms++/dumbframebuffer.h',
]

public_headers_omap = [
    'inc/kms++/omap/omapframebuffer.h',
    'inc/kms++/omap/omapkms++.h',
    'inc/kms++/omap/omapcard.h',
]

private_includes = include_directories('src', 'inc')
public_includes = include_directories('inc')

libdrm_dep = dependency('libdrm')

if libdrmomap_dep.found()
    libkmsxx_sources += files([
        'src/omap/omapcard.cpp',
        'src/omap/omapframebuffer.cpp',
    ])
endif

libkmsxx_deps = [ libdrm_dep, libfmt_dep, libdrmomap_dep ]

libkmsxx = library('kms++',
                   libkmsxx_sources,
                   install : true,
                   include_directories : private_includes,
                   dependencies : libkmsxx_deps)


libkmsxx_dep = declare_dependency(include_directories : public_includes,
                                  link_with : libkmsxx)

install_headers(public_headers, subdir : 'kms++')

if libdrmomap_dep.found()
    install_headers(public_headers_omap, subdir : 'kms++/omap')
endif

pkg = import('pkgconfig')
pkg.generate(libkmsxx)
