
stamp_config_enums = custom_target('stamp-pikaconfigenums.h',
  input : [
    files(
      'pikaconfigenums.h'
    ),
  ],
  output: [ 'stamp-pikaconfigenums.h', ],
  command: [
    mkenums_wrap, perl,
    meson.project_source_root(), meson.current_source_dir(),
    meson.current_build_dir(),
    'pikaconfig',
    '#include <gio/gio.h>\n' +
    '#include "libpikabase/pikabase.h"\n',
    '#include "libpika/libpika-intl.h"',
    libpika_mkenums_dtails
  ],
  build_by_default: true
)

libpikaconfig_sources_introspectable = files(
  'pikacolorconfig.c',
  'pikaconfig-array.c',
  'pikaconfig-deserialize.c',
  'pikaconfig-error.c',
  'pikaconfig-iface.c',
  'pikaconfig-params.c',
  'pikaconfig-path.c',
  'pikaconfig-register.c',
  'pikaconfig-serialize.c',
  'pikaconfig-utils.c',
  'pikaconfigwriter.c',
  'pikascanner.c',
)

libpikaconfig_sources = [
  libpikaconfig_sources_introspectable,

  'pikaconfigenums.c',
  stamp_config_enums
]

libpikaconfig_headers_introspectable = files(
  'pikacolorconfig.h',
  'pikaconfig-array.h',
  'pikaconfig-deserialize.h',
  'pikaconfig-error.h',
  'pikaconfig-iface.h',
  'pikaconfig-params.h',
  'pikaconfig-path.h',
  'pikaconfig-register.h',
  'pikaconfig-serialize.h',
  'pikaconfig-utils.h',
  'pikaconfigenums.h',
  'pikaconfigtypes.h',
  'pikaconfigwriter.h',
  'pikascanner.h',
)

libpikaconfig_headers = [
  libpikaconfig_headers_introspectable,
  'pikaconfig.h',
]

libpikaconfig_introspectable = [
  libpikaconfig_headers_introspectable,
  libpikaconfig_sources_introspectable,
]

libpikaconfig = library('pikaconfig-' + pika_api_version,
  libpikaconfig_sources,
  include_directories: rootInclude,
  dependencies: [
    cairo, gdk_pixbuf, gegl, gio, gio_specific,
  ],
  c_args: [ '-DG_LOG_DOMAIN="LibPikaConfig"', '-DPIKA_CONFIG_COMPILATION', ],
  link_with: [
    libpikabase,
    libpikacolor,
    libpikamath,
  ],
  vs_module_defs: 'pikaconfig.def',
  install: true,
  version: so_version,
)

install_headers(
  libpikaconfig_headers,
  subdir: pika_api_name / 'libpikaconfig',
)
