From bb520c26adf8da82d0f614dd3a18dbf5076e592d Mon Sep 17 00:00:00 2001 From: John Emmas Date: Mon, 23 Nov 2015 16:28:43 +0000 Subject: Move the preprocessor directive GTKMM_ATKMM_ENABLED so it'll get #defined at an earlier stage When building any program that uses Gtkmm (with Atkmm support) ALL modules need to agree about the status of GTKMM_ATKMM_ENABLED. Otherwise 'Gtk::Widget' can have different sizes in different modules. If that happens we can end up with all manner of inexplicable run-time crashes and hangs. GTKMM_ATKMM_ENABLED gets #defined in 'gtkmmconfig.h'. So let's #include that file at the earliest possible opportunity (where we know it'll then have a consistent value for every compilation unit). --- msvc_extra_headers/ardourext/sys/targetsxs.h.input | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'msvc_extra_headers') diff --git a/msvc_extra_headers/ardourext/sys/targetsxs.h.input b/msvc_extra_headers/ardourext/sys/targetsxs.h.input index 6569407ac8..24d1b29ab3 100644 --- a/msvc_extra_headers/ardourext/sys/targetsxs.h.input +++ b/msvc_extra_headers/ardourext/sys/targetsxs.h.input @@ -64,6 +64,15 @@ __declspec(selectany) int _forceAtlDllManifestRTM; implementation for commonly used integer types. */ #include +/* When building Gtkmm with Atkmm support, ALL modules need + to agree about the status of GTKMM_ATKMM_ENABLED. Otherwise + we end up with all manner of imexplicable run time crashes + and hangs (due to Gtk::Widget having different sizes in + different modules). GTKMM_ATKMM_ENABLED gets #defined in + 'gtkmmconfig.h'. So let's #include that file here, where + we know it'll get #included for every compilation unit. */ +#include + #if defined(_MSC_VER) && !defined(__MINGW__) && !defined(__MINGW32__) /* Define these libraries as getting built as DLLs */ #define LIBAUDIOGRAPHER_DLL -- cgit v1.2.3