meson.build 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. project('text-viewer', 'c',
  2. version: '0.1.0',
  3. meson_version: '>= 1.0.0',
  4. default_options: [ 'warning_level=2', 'werror=false', 'c_std=gnu11', ],
  5. )
  6. i18n = import('i18n')
  7. gnome = import('gnome')
  8. cc = meson.get_compiler('c')
  9. config_h = configuration_data()
  10. config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
  11. config_h.set_quoted('GETTEXT_PACKAGE', 'text-viewer')
  12. config_h.set_quoted('LOCALEDIR', get_option('prefix') / get_option('localedir'))
  13. configure_file(output: 'config.h', configuration: config_h)
  14. add_project_arguments(['-I' + meson.project_build_root()], language: 'c')
  15. project_c_args = []
  16. test_c_args = [
  17. '-Wcast-align',
  18. '-Wdeclaration-after-statement',
  19. '-Werror=address',
  20. '-Werror=array-bounds',
  21. '-Werror=empty-body',
  22. '-Werror=implicit',
  23. '-Werror=implicit-function-declaration',
  24. '-Werror=incompatible-pointer-types',
  25. '-Werror=init-self',
  26. '-Werror=int-conversion',
  27. '-Werror=int-to-pointer-cast',
  28. '-Werror=main',
  29. '-Werror=misleading-indentation',
  30. '-Werror=missing-braces',
  31. '-Werror=missing-include-dirs',
  32. '-Werror=nonnull',
  33. '-Werror=overflow',
  34. '-Werror=parenthesis',
  35. '-Werror=pointer-arith',
  36. '-Werror=pointer-to-int-cast',
  37. '-Werror=redundant-decls',
  38. '-Werror=return-type',
  39. '-Werror=sequence-point',
  40. '-Werror=shadow',
  41. '-Werror=strict-prototypes',
  42. '-Werror=trigraphs',
  43. '-Werror=undef',
  44. '-Werror=write-strings',
  45. '-Wformat-nonliteral',
  46. '-Wignored-qualifiers',
  47. '-Wimplicit-function-declaration',
  48. '-Wlogical-op',
  49. '-Wmissing-declarations',
  50. '-Wmissing-format-attribute',
  51. '-Wmissing-include-dirs',
  52. '-Wmissing-noreturn',
  53. '-Wnested-externs',
  54. '-Wno-cast-function-type',
  55. '-Wno-dangling-pointer',
  56. '-Wno-missing-field-initializers',
  57. '-Wno-sign-compare',
  58. '-Wno-unused-parameter',
  59. '-Wold-style-definition',
  60. '-Wpointer-arith',
  61. '-Wredundant-decls',
  62. '-Wstrict-prototypes',
  63. '-Wswitch-default',
  64. '-Wswitch-enum',
  65. '-Wundef',
  66. '-Wuninitialized',
  67. '-Wunused',
  68. '-fno-strict-aliasing',
  69. ['-Werror=format-security', '-Werror=format=2'],
  70. ]
  71. if get_option('buildtype') != 'plain'
  72. test_c_args += '-fstack-protector-strong'
  73. endif
  74. foreach arg: test_c_args
  75. if cc.has_multi_arguments(arg)
  76. project_c_args += arg
  77. endif
  78. endforeach
  79. add_project_arguments(project_c_args, language: 'c')
  80. subdir('data')
  81. subdir('src')
  82. subdir('po')
  83. gnome.post_install(
  84. glib_compile_schemas: true,
  85. gtk_update_icon_cache: true,
  86. update_desktop_database: true,
  87. )