Всем привет!
Собираю PCSX2 1.4.0 на билд-ферме на базе CentOS 5 + репозиторий devtoolset. Почему бы не воспользоваться Ubuntu PPA? Потому что у меня - некоторый старый Linux с долговременной поддержкой.
Вот смотрите, это - моя сборка 1.3.1. Что в новом Linux, что в старом - просто стартует в 1 клик. Я не нашёл ни одного варианта системы Linux, в котором этот бинарник не стартовал! Однако 8 января 2016 года вышла версия 1.4.0, и теперь надо собирать её.
Итак, к сути проблемы. Это - мой набор патчей для PCSX2 1.3.1. Они делятся на:
1). Даунгрейд минимально необходимой версии GTK+ с 2.24 до 2.10.
а). Замена "(gtk_dialog_get_content_area(GTK_DIALOG(dialog))" на "(GTK_DIALOG(dialog)->vbox)" (хотя по идее нужно делать условие).
б). Откат назад кода GTK_COMBO_BOX путём отката коммита, потому что таких строк действительно много. Тот самый коммит добавляет поддержку GTK 3 (и дропает всё, что старее 2.24).
в). Откат переменных GDK_KEY_Escape до вида и GDK_Escape (опять же, откатом коммита).
2). Добавление "#include <GL/glxew.h>" и "#include <unistd.h>"
3). Отвязывание от EGL (уже в апстриме).
4). Правка конфига CMake, чтобы он не ругался на отсуствие GIO.
И вот добавилась новая беда - подсказки! GTK Tooltips поменялись в GTK 2.12 (однако есть обратная совместимость). Я нашёл примеры кода, где есть условие "Если GTK больше 2.12, то такой код, а если меньше, то такой". Например здесь и здесь. И я не понял, как старый стиль работы с tooltips вкорячить сюда в строку 29! Поэтому я прошу у вас помощь.
Пока что успешно собрал, полностью удалив все подсказки из кода. Но это костыль :-( Помогите же исправить одну несчастную строчку! И я вас обрадую бинарём PCSX2 1.4.0 под все дистры. Исходник здесь.
Добавить поддержку Legacy-ветки GTK для Enterprise Linux
Модератор: Модераторы разделов
-
zenitur
- Сообщения: 594
- Статус: Одмин
- ОС: openSuSE 10.2
Добавить поддержку Legacy-ветки GTK для Enterprise Linux
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
-
zenitur
- Сообщения: 594
- Статус: Одмин
- ОС: openSuSE 10.2
Re: Добавить поддержку Legacy-ветки GTK для Enterprise Linux
Собственно, сама ошибка:
Код: Выделить всё
[ 82%] Building CXX object plugins/GSdx/CMakeFiles/GSdx-1.0.0.dir/GSLinuxDialog.cpp.o
/home/zenitur/pcsx2/pcsx2-1.4.0/plugins/GSdx/GSLinuxDialog.cpp: In function ‘void AddTooltip(GtkWidget*, int)’:
/home/zenitur/pcsx2/pcsx2-1.4.0/plugins/GSdx/GSLinuxDialog.cpp:31:52: error: ‘gtk_widget_set_tooltip_text’ was not declared in this scope
gtk_widget_set_tooltip_text(w, dialog_message(idc));
^
/home/zenitur/pcsx2/pcsx2-1.4.0/plugins/GSdx/GSLinuxDialog.cpp: In function ‘GtkWidget* CreateComboBoxFromVector(const std::vector<GSSetting>&, const char*, int)’:
/home/zenitur/pcsx2/pcsx2-1.4.0/plugins/GSdx/GSLinuxDialog.cpp:64:48: error: ‘gtk_combo_box_text_new’ was not declared in this scope
GtkWidget* combo_box = gtk_combo_box_text_new();
^
/home/zenitur/pcsx2/pcsx2-1.4.0/plugins/GSdx/GSLinuxDialog.cpp:74:62: error: ‘GTK_COMBO_BOX_TEXT’ was not declared in this scope
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), label.c_str());
^
/home/zenitur/pcsx2/pcsx2-1.4.0/plugins/GSdx/GSLinuxDialog.cpp:74:78: error: ‘gtk_combo_box_text_append_text’ was not declared in this scope
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), label.c_str());
^
/home/zenitur/pcsx2/pcsx2-1.4.0/plugins/GSdx/GSLinuxDialog.cpp: In function ‘void populate_hack_table(GtkWidget*)’:
/home/zenitur/pcsx2/pcsx2-1.4.0/plugins/GSdx/GSLinuxDialog.cpp:364:82: error: ‘gtk_widget_set_tooltip_text’ was not declared in this scope
gtk_widget_set_tooltip_text(hack_enble_check, "Allows the use of the hack below");
^
make[2]: *** [plugins/GSdx/CMakeFiles/GSdx-1.0.0.dir/GSLinuxDialog.cpp.o] Error 1
make[1]: *** [plugins/GSdx/CMakeFiles/GSdx-1.0.0.dir/all] Error 2
make: *** [all] Error 2
[zenitur@localhost build]$А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!