[gnome-todo] project: Performance improvements for meson build port



commit 7b304e96a1f9e1d6bcba77f5d3b61f640e23e769
Author: Iñigo Martínez <inigomartinez gmail com>
Date:   Tue Jul 4 11:39:40 2017 +0200

    project: Performance improvements for meson build port
    
    - Fixed CFLAGS and avoid their duplication.
    - Fixed default flag application to the project on non debug builds.
    - Removed unneeded meson build file from reference.
    - Removed unneeded source directories from gtkdoc generation.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=783589

 doc/meson.build                |    1 -
 doc/reference/meson.build      |    5 +----
 meson.build                    |   33 ++++++++++++++++++---------------
 plugins/background/meson.build |    2 +-
 plugins/todo-txt/meson.build   |    5 +----
 plugins/todoist/meson.build    |    5 +----
 src/meson.build                |   30 ++++++++++++++++--------------
 7 files changed, 38 insertions(+), 43 deletions(-)
---
diff --git a/doc/reference/meson.build b/doc/reference/meson.build
index dc4b13e..bdc5bed 100644
--- a/doc/reference/meson.build
+++ b/doc/reference/meson.build
@@ -55,10 +55,7 @@ doc_path = join_paths(gnome_todo_datadir, 'gtk-doc', 'html', meson.project_name(
 gnome.gtkdoc(
   meson.project_name(),
   main_sgml: meson.project_name() + '-docs.sgml',
-  src_dir: [
-    join_paths(meson.source_root(), 'src'),
-    join_paths(meson.build_root(), 'src')
-  ],
+  src_dir: src_inc,
   dependencies: libgtd_dep,
   scan_args: [
     '--rebuild-types',
diff --git a/meson.build b/meson.build
index 9355f40..2ce10ac 100644
--- a/meson.build
+++ b/meson.build
@@ -82,28 +82,31 @@ common_flags = ['-DHAVE_CONFIG_H']
 buildtype = get_option('buildtype')
 if buildtype == 'debug' or buildtype == 'debugoptimized'
   test_cflags = [
-    '-ffast-math',
-    '-fstrict-aliasing',
+    '-fno-strict-aliasing',
     '-Wcast-align',
-    '-Werror=implicit',
-    '-Werror=init-self',
-    '-Werror=main',
-    '-Werror=missing-braces',
-    '-Werror=return-type',
-    '-Werror=array-bounds',
-    '-Werror=write-strings',
+    '-Wdeclaration-after-statement',
     '-Wformat=2',
-    '-Wlogical-op',
+    '-Winit-self',
+    '-Winline',
     '-Wmissing-declarations',
     '-Wmissing-format-attribute',
+    '-Wmissing-include-dirs',
     '-Wmissing-noreturn',
     '-Wmissing-prototypes',
     '-Wnested-externs',
-    '-Wno-unused-local-typedefs',
+    '-Wno-error=unused-parameter',
+    '-Wno-error=missing-field-initializers',
+    '-Wno-missing-field-initializers',
+    '-Wno-unused-parameter',
     '-Wold-style-definition',
+    '-Wpacked',
     '-Wredundant-decls',
     '-Wshadow',
-    '-Wstrict-prototypes'
+    '-Wstrict-prototypes',
+    '-Wswitch-enum',
+    '-Wundef',
+    '-Wunused-but-set-variable',
+    '-Wwrite-strings'
   ]
 
   foreach cflag: test_cflags
@@ -111,10 +114,10 @@ if buildtype == 'debug' or buildtype == 'debugoptimized'
       common_flags += [cflag]
     endif
   endforeach
-
-  add_project_arguments(common_flags, language: 'c')
 endif
 
+add_project_arguments(common_flags, language: 'c')
+
 glib_dep = dependency('glib-2.0', version: '>= 2.43.4')
 gtk_dep = dependency('gtk+-3.0', version: '>= 3.22.0')
 
@@ -152,7 +155,7 @@ subdir('data')
 subdir('po')
 
 if get_option('enable-gtk-doc')
-  subdir('doc')
+  subdir('doc/reference')
 endif
 
 meson.add_install_script('meson_post_install.py')
diff --git a/plugins/background/meson.build b/plugins/background/meson.build
index 69f4621..c6bf445 100644
--- a/plugins/background/meson.build
+++ b/plugins/background/meson.build
@@ -7,7 +7,7 @@ plugins_libs += static_library(
   sources: 'gtd-plugin-' + plugin_name + '.c',
   include_directories: plugins_incs,
   dependencies: gnome_todo_deps,
-  c_args: common_flags + [
+  c_args: [
     '-DPACKAGE_DATA_DIR="@0@"'.format(gnome_todo_pkgdatadir)
   ]
 )
diff --git a/plugins/todo-txt/meson.build b/plugins/todo-txt/meson.build
index de91b79..45f9bdf 100644
--- a/plugins/todo-txt/meson.build
+++ b/plugins/todo-txt/meson.build
@@ -12,10 +12,7 @@ plugins_libs += static_library(
   'todotxt',
   sources: sources,
   include_directories: plugins_incs,
-  dependencies: gnome_todo_deps,
-  c_args: common_flags + [
-    '-DPACKAGE_DATA_DIR="@0@"'.format(gnome_todo_pkgdatadir)
-  ]
+  dependencies: gnome_todo_deps
 )
 
 install_data(
diff --git a/plugins/todoist/meson.build b/plugins/todoist/meson.build
index e5ad336..87a3a43 100644
--- a/plugins/todoist/meson.build
+++ b/plugins/todoist/meson.build
@@ -12,10 +12,7 @@ plugins_libs += static_library(
   plugin_name,
   sources: sources,
   include_directories: plugins_incs,
-  dependencies: gnome_todo_deps,
-  c_args: common_flags + [
-    '-DPACKAGE_DATA_DIR="@0@"'.format(gnome_todo_pkgdatadir)
-  ]
+  dependencies: gnome_todo_deps
 )
 
 plugin_data = plugin_name + '.plugin'
diff --git a/src/meson.build b/src/meson.build
index 093d50d..aa39529 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,6 +1,8 @@
+src_inc = include_directories('.')
+
 install_headers(
   'engine/gtd-manager.h',
-  subdir: join_paths(gnome_todo_pkgincludedir, 'engine')
+  subdir: join_paths(meson.project_name(), 'engine')
 )
 
 interfaces_headers = files(
@@ -11,15 +13,19 @@ interfaces_headers = files(
 
 install_headers(
   interfaces_headers,
-  subdir: join_paths(gnome_todo_pkgincludedir, 'interfaces')
+  subdir: join_paths(meson.project_name(), 'interfaces')
 )
 
 install_headers(
   'notification/gtd-notification.h',
-  subdir: join_paths(gnome_todo_pkgincludedir, 'notification')
+  subdir: join_paths(meson.project_name(), 'notification')
+)
+
+enum_headers = files(
+  'gtd-enums.h'
 )
 
-headers = files(
+headers = enum_headers + files(
   'gtd-object.h',
   'gtd-task.h',
   'gtd-task-list.h',
@@ -30,13 +36,9 @@ headers = files(
   'gnome-todo.h'
 )
 
-enum_headers = files(
-  'gtd-enums.h'
-)
-
 install_headers(
-  headers + enum_headers,
-  subdir: gnome_todo_pkgincludedir
+  headers,
+  subdir: meson.project_name()
 )
 
 sources = files(
@@ -96,7 +98,7 @@ sources += gnome.mkenums(
   enum,
   sources: enum_headers,
   c_template: enum + '.c.template',
-  h_template: enum + '.h.template',
+  h_template: enum + '.h.template'
 )
 
 gnome_todo_incs = [
@@ -110,7 +112,7 @@ gnome_todo_incs = [
   )
 ]
 
-gnome_todo_cflags = common_flags + [
+gnome_todo_cflags = [
   '-DPACKAGE_LOCALE_DIR="@0@"'.format(gnome_todo_localedir),
   '-DPACKAGE_DATA_DIR="@0@"'.format(gnome_todo_pkgdatadir),
   '-DPACKAGE_LIB_DIR="@0@"'.format(gnome_todo_pkglibdir),
@@ -151,7 +153,7 @@ libgtd = shared_library(
 
 libgtd_dep = declare_dependency(
   link_with: libgtd,
-  include_directories: include_directories('.'),
+  include_directories: src_inc,
   dependencies: gnome_todo_deps
 )
 
@@ -161,7 +163,7 @@ pkg.generate(
   name: 'Gnome To Do',
   description: 'Header and path for Gnome Todo Plugins',
   filebase: meson.project_name(),
-  subdirs: gnome_todo_pkgincludedir,
+  subdirs: meson.project_name(),
   variables: [
     'exec_prefix=${prefix}'
   ],


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]