GNOME weekly

gnome-shell

mutter

As with the last two weeks, patches improving the performance have been merged.

nautilus

GIMP

No request merges but many commits related to the addition of a new memory allocator for smallish, short-lived allocations.

GTK+

Most notably is the on-going effort of modernizing the Adwaita theme as well as improvements to the GSK OpenGL renderer.

GLib

gjs


GNOME weekly

Besides numerous bug fixes and build system adaptions, a fix that improves the performance of the shell’s icon view stands out.

gnome-shell

mutter

nautilus

GIMP

gtk

GLib


GNOME weekly

Notable changes this week have been performance enhancements and display hotplug support in mutter (1, 2, 3) and replacement of image assets in shell with CSS.

gnome-shell

mutter

nautilus

GIMP

gtk

GLib


meson and Google Test

I wrote about meson the awesome build system before. For C-based projects with many test executables there is nice infrastructure, however many C++ projects probably use Google Test or Catch and a single binary which runs the entire test suite. This is all nice and dandy with Google Test if you compile and link the test executable straight from the unit test source files. If however you build intermediate static libraries for organizational reasons you will quickly notice that Google Test won’t run anything at all because the symbols from Google Test itself won’t end up in the final binary without specifying the --whole-archive flag. Luckily, meson got the link_whole parameter since version 0.46, so instead of declaring your static test library as

test_lib = static_library('testlib',
  sources: test_sources,
  dependencies: [gtest_dep] + build_deps,
)

test_dep = declare_dependency(
  link_with: test_lib,
  dependencies: other_deps,
)

test_binary = executable('testfoo',
  sources: ['main.cpp'],
  dependencies: [test_dep],
)

you would change test_dep to

test_dep = declare_dependency(
  link_whole: test_lib,
  dependencies: other_deps,
)

and run your tests as usual.