if conf.get('HAVE_GLIB', 0) == 0
  message('You need to have glib support enabled to run test/api tests')
  subdir_done()
endif

tests = [
  'test-aat-layout.c',
  'test-baseline.c',
  'test-blob.c',
  'test-buffer.c',
  'test-c.c',
  'test-collect-unicodes.c',
  'test-cplusplus.cc',
  'test-common.c',
  'test-draw.c',
  'test-font.c',
  'test-font-scale.c',
  'test-map.c',
  'test-object.c',
  'test-ot-alternates.c',
  'test-ot-collect-glyphs.c',
  'test-ot-color.c',
  'test-ot-face.c',
  'test-ot-glyphname.c',
  'test-ot-layout.c',
  'test-ot-ligature-carets.c',
  'test-ot-name.c',
  'test-ot-meta.c',
  'test-ot-metrics.c',
  'test-ot-tag.c',
  'test-ot-extents-cff.c',
  'test-ot-metrics-tt-var.c',
  'test-set.c',
  'test-shape.c',
  'test-style.c',
  'test-subset.c',
  'test-subset-cmap.c',
  'test-subset-drop-tables.c',
  'test-subset-glyf.c',
  'test-subset-hdmx.c',
  'test-subset-hmtx.c',
  'test-subset-nameids.c',
  'test-subset-os2.c',
  'test-subset-post.c',
  'test-subset-vmtx.c',
  'test-subset-cff1.c',
  'test-subset-cff2.c',
  'test-subset-gvar.c',
  'test-subset-hvar.c',
  'test-subset-vvar.c',
  'test-subset-sbix.c',
  'test-subset-gpos.c',
  'test-subset-colr.c',
  'test-subset-cbdt.c',
  'test-unicode.c',
  'test-var-coords.c',
  'test-version.c',
]

if conf.get('HAVE_FREETYPE', 0) == 1
  tests += 'test-ot-math.c'
endif

if conf.get('HAVE_FREETYPE', 0) == 1 and conf.get('HAVE_PTHREAD', 0) == 1
  tests += 'test-multithread.c'
endif

# Default test running environment
env = environment()
env.set('MALLOC_CHECK_', '2')
env.set('G_DEBUG', 'gc-friendly')
env.set('G_SLICE', 'always-malloc')
env.set('G_TEST_SRCDIR', meson.current_source_dir())
env.set('G_TEST_BUILDDIR', meson.current_build_dir())

foreach source : tests
  test_name = source.split('.')[0]

  deps = [glib_dep, freetype_dep, thread_dep, libharfbuzz_dep, libharfbuzz_icu_dep]
  suite = ['api']
  if test_name.contains('-subset')
    deps += libharfbuzz_subset_dep
    suite += 'subset'
  endif

  test(test_name, executable(test_name, source,
    include_directories: [incconfig],
    dependencies: deps,
    install: false,
  ), env: env, suite: suite)
endforeach
