Blame meson.build

Packit bedeea
project('nautilus-sendto', 'c',
Packit bedeea
        version: '3.8.6',
Packit bedeea
        default_options: [
Packit bedeea
          'buildtype=debugoptimized',
Packit bedeea
          'warning_level=1',
Packit bedeea
        ],
Packit bedeea
        meson_version : '>= 0.40.1',
Packit bedeea
        license: 'GPLv2.0+')
Packit bedeea
Packit bedeea
i18n = import('i18n')
Packit bedeea
Packit bedeea
# Requirements
Packit bedeea
gio_req     = '>= 2.25.9'
Packit bedeea
Packit bedeea
# Dependencies
Packit bedeea
gio_dep = dependency('gio-2.0', version : gio_req)
Packit bedeea
Packit bedeea
nautilus_sendto_deps = [gio_dep]
Packit bedeea
Packit bedeea
# directories
Packit bedeea
localedir = join_paths(get_option('prefix'), get_option('datadir'), 'locale')
Packit bedeea
nst_prefix = get_option('prefix')
Packit bedeea
nst_bindir = join_paths(nst_prefix, get_option('bindir'))
Packit bedeea
nst_datadir = join_paths(nst_prefix, get_option('datadir'))
Packit bedeea
nst_mandir = join_paths(nst_prefix, get_option('mandir'))
Packit bedeea
Packit bedeea
# Config.h
Packit bedeea
config_h = configuration_data()
Packit bedeea
config_h.set_quoted('GETTEXT_PACKAGE', meson.project_name())
Packit bedeea
config_h.set_quoted('PACKAGE_NAME', meson.project_name())
Packit bedeea
config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
Packit bedeea
config_h.set_quoted('LOCALEDIR', localedir)
Packit bedeea
Packit bedeea
configure_file(
Packit bedeea
  output: 'config.h',
Packit bedeea
  configuration: config_h
Packit bedeea
)
Packit bedeea
Packit bedeea
config_inc = include_directories('.')
Packit bedeea
Packit bedeea
# project-wide cflags
Packit bedeea
add_project_arguments('-D_GNU_SOURCE', language: 'c')
Packit bedeea
Packit bedeea
# common warning flags
Packit bedeea
cc = meson.get_compiler('c')
Packit bedeea
Packit bedeea
# Compiler flags
Packit bedeea
if cc.get_id() == 'msvc'
Packit bedeea
  # Compiler options taken from msvc_recommended_pragmas.h
Packit bedeea
  # in GLib, based on _Win32_Programming_ by Rector and Newcomer
Packit bedeea
  test_cflags = [
Packit bedeea
    '-we4002', # too many actual parameters for macro
Packit bedeea
    '-we4003', # not enough actual parameters for macro
Packit bedeea
    '-w14010', # single-line comment contains line-continuation character
Packit bedeea
    '-we4013', # 'function' undefined; assuming extern returning int
Packit bedeea
    '-w14016', # no function return type; using int as default
Packit bedeea
    '-we4020', # too many actual parameters
Packit bedeea
    '-we4021', # too few actual parameters
Packit bedeea
    '-we4027', # function declared without formal parameter list
Packit bedeea
    '-we4029', # declared formal parameter list different from definition
Packit bedeea
    '-we4033', # 'function' must return a value
Packit bedeea
    '-we4035', # 'function' : no return value
Packit bedeea
    '-we4045', # array bounds overflow
Packit bedeea
    '-we4047', # different levels of indirection
Packit bedeea
    '-we4049', # terminating line number emission
Packit bedeea
    '-we4053', # an expression of type void was used as an operand
Packit bedeea
    '-we4071', # no function prototype given
Packit bedeea
    '-we4819', # the file contains a character that cannot be represented in the current code page
Packit bedeea
  ]
Packit bedeea
elif cc.get_id() == 'gcc' or cc.get_id() == 'clang'
Packit bedeea
  test_cflags = [
Packit bedeea
    '-fno-strict-aliasing',
Packit bedeea
    '-Wpointer-arith',
Packit bedeea
    '-Wmissing-declarations',
Packit bedeea
    '-Wimplicit-function-declaration',
Packit bedeea
    '-Wformat=2',
Packit bedeea
    '-Wformat-nonliteral',
Packit bedeea
    '-Wformat-security',
Packit bedeea
    '-Wstrict-prototypes',
Packit bedeea
    '-Wmissing-prototypes',
Packit bedeea
    '-Wnested-externs',
Packit bedeea
    '-Wold-style-definition',
Packit bedeea
    '-Wundef',
Packit bedeea
    '-Wunused',
Packit bedeea
    '-Wcast-align',
Packit bedeea
    '-Wmissing-noreturn',
Packit bedeea
    '-Wmissing-format-attribute',
Packit bedeea
    '-Wmissing-include-dirs',
Packit bedeea
    '-Wlogical-op',
Packit bedeea
    '-Wno-uninitialized',
Packit bedeea
    '-Wno-shadow',
Packit bedeea
    '-Wno-int-conversion',
Packit bedeea
    '-Wno-discarded-qualifiers',
Packit bedeea
    '-Werror=redundant-decls',
Packit bedeea
    '-Werror=implicit',
Packit bedeea
    '-Werror=nonnull',
Packit bedeea
    '-Werror=init-self',
Packit bedeea
    '-Werror=main',
Packit bedeea
    '-Werror=missing-braces',
Packit bedeea
    '-Werror=sequence-point',
Packit bedeea
    '-Werror=return-type',
Packit bedeea
    '-Werror=trigraphs',
Packit bedeea
    '-Werror=array-bounds',
Packit bedeea
    '-Werror=write-strings',
Packit bedeea
    '-Werror=address',
Packit bedeea
    '-Werror=int-to-pointer-cast',
Packit bedeea
    '-Werror=pointer-to-int-cast',
Packit bedeea
    '-Werror=empty-body',
Packit bedeea
    '-Werror=write-strings',
Packit bedeea
  ]
Packit bedeea
else
Packit bedeea
  test_cflags = []
Packit bedeea
endif
Packit bedeea
Packit bedeea
extra_warning_cflags = []
Packit bedeea
foreach cflag: test_cflags
Packit bedeea
  if cc.has_argument(cflag)
Packit bedeea
    extra_warning_cflags += [ cflag ]
Packit bedeea
  endif
Packit bedeea
endforeach
Packit bedeea
Packit bedeea
# man page
Packit bedeea
Packit bedeea
install_data(
Packit bedeea
  'nautilus-sendto.1',
Packit bedeea
  install_dir: join_paths(nst_mandir, 'man1')
Packit bedeea
)
Packit bedeea
Packit bedeea
# subdirs
Packit bedeea
Packit bedeea
subdir('src')
Packit bedeea
subdir('po')
Packit bedeea
Packit bedeea
# config.h
Packit bedeea
configure_file(output: 'config.h', configuration: config_h)