gug-bg-herd
[Top][All Lists]
Advanced

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

Re: Замяна на gtk_action_disconnect_proxy


From: Yavor Doganov
Subject: Re: Замяна на gtk_action_disconnect_proxy
Date: Wed, 19 Aug 2009 18:54:50 +0300
User-agent: Wanderlust/2.15.5 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.7 Emacs/22.3 (i486-pc-linux-gnu) MULE/5.0 (SAKAKI)

Димитър Киров wrote:
> за това не съм съгласен. GTK_CHECK_VERSION е директива на препроцесора
> и винаги работи правилно. Условието е ИСТИНА ако версията е >= от
> зададените числа.

Не може да си абсолютно сигурен, че дадена функционалност присъства в
определена версия на библиотека, програма или каквото и да е.  С други
думи, че инсталацията на GTK+ на даден хост е точно тази, която се
очаква от версията.

Има непълни инсталации (например функционалността зависи от
допълнителна опционална библиотека или нещо друго, инсталатора е
оплескал нещо и се е „справил“ с `make -k install'), има го и момента,
че дистрибуторите много често пляскат кръпки, които могат драстично да
променят пейзажа.  Тестването за функционалност, а не за версия, е
фундаментална максима при системата за конфигурация и изграждане на
GNU.

Тази функция може и да е в GTK+ > 2.15.5 (примерно -- със сигурност
първо се е появила в нестабилно издание на GTK+), но може и да я няма
при всяка една инсталация на GTK+ >= версията, в която се е появила.
В случая е малко вероятно, но е най-добре изобщо да не мислиш защо и
как и колко е вероятно, а да тестваш.

Аз затуй не харесвам PKG_CHECK_MODULES, понеже директно противоречи на
философията на Autoconf.  По-малко писане в configure.ac за сметка на
по-некоректни резултати :/

> С Autoconf не виждам как ще стане по-красиво. 

Е, красотата е условно понятие.

Някъде след AM_PATH_GTK_2_0:

_SAVE_CFLAGS="$CFLAGS"
_SAVE_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_FLAGS"
LIBS="$LIBS $GTK_LIBS"
AC_CHECK_FUNCS([gtk_activatable_set_related_action])
CFLAGS="$_SAVE_CFLAGS"
LIBS="$_SAVE_LIBS"

И после пак с директиви на препроцесора, но този път гарантирани да са
далеч по-достоверни:

#if HAVE_GTK_ACTIVATABLE_SET_RELATED_ACTION
...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]