Arts-Union

Мастерская => Теория и практика => Тема начата: Altmer от 31 Июль 2011, 15:23:03

Название: Собираем GTK+ и GTKGlExt под Win32
Отправлено: Altmer от 31 Июль 2011, 15:23:03
На днях решил собрать собственноручно межплатформенную GUI библиотеку GTK+.
Занятие не для слабонервных - пол гигабайта исходников, горсть подводных камушков (в виде коррекции кода и конфигов) и плохая документированность процессов сборки, средств разработки и т.д...

Дабы сократить описание - берем документ GTKBuildProcess.pdf (http://cs.geneseo.edu/~baldwin/ivipp/GTKBuildProcess.pdf) и следуем инструкциям с приоритетом за моими примечаниями.
Я бы выложил конечно готовый билд, но это сложно. Почему? Да потому, что я тоже следовал инструкциям и все результаты сборки улетели в директорию MinGW, а отделять зерна от плевен... )))

Итак начнем, и да, это займет у вас весь день...

0) Ставим MinGW, MSYS и наконец msysDTK, затем прописываем в PATH директорию mingw/bin. Я пользовался отностельно старенькой версией, как будет с новыми не знаю. Сразу копируем pkg-config.exe (http://cfile228.uf.daum.net/attach/161B090C4A84DF106B0645) в директорию mingw/bin. Вообще pkg-config.exe отличился тем что для его сборки он сам себе нужен - это как тот старый спор про курицу и яйцо )
1) zlib-1.2.5 -> по инструкции
2) libiconv-1.13.1 -> по инструкции
3) gettext-0.18.1.1 -> по инструкции
4) glib-2.28.8 -> по инструкции
5) pkg-config-0.25 -> по инструкции (то самое яйцо, точнее цыпленок, поскольку курица несовместима со сборкой остальных составляющих GTK+)
6) libpng-dev_1.4.3-1_win32.zip и libpng_1.4.3-1_win32.zip -> по инструкции (собирать новый не стал, хотя думаю у меня бы получилось, потому что собирал его для Devil, но автор инструкции уверяет, что данная либа не собирается, в общем в тот момент решил не отклоняться от инструкции)
7) jpeg-8c -> как обычно: ./configure -prefix=/mingw, make, make install (см. правки в GTKGL.ZIP) (это опциональная библиотека)
8) jasper-1.900.1 -> как обычно: ./configure -prefix=/mingw, make, make install (см. правки в GTKGL.ZIP) (это опциональная библиотека)
9) tiff-3.9.5 -> как обычно: ./configure -prefix=/mingw, make, make install (это опциональная библиотека)
10) expat-2.0.1 -> по инструкции, ссылка на исходник: http://sourceforge.net/projects/expat/
11) freetype-2.4.6 -> по инструкции
12) fontconfig-2.8.0 -> по инструкции
13) pixman-0.22.2 -> по инструкции
14) cairo-1.8.10 -> по инструкции
15) pango-1.29.3 -> по инструкции
16) atk-2.1.0 -> по инструкции

...все дальше инструкция не работает...

17) gdk-pixbuf-2.22.1 -> про него инструкция вообще умалчивает, собираться он не хочет из-за бага в bash под винду (см. правки в GTKGL.ZIP), но проблема была решена, к стати странно, баг древний и легко решается добавлением в конфиг пары символов, видимо это намек - мол нечего под виндой GTK использовать. И еще пара мелких исправлений в ассемблерных файлах. Команды сборки: ./configure -prefix=/mingw, make, make install
18) gtk+-2.24.0 -> аналогичный предыдущему баг (см. правки в GTKGL.ZIP), команды сборки: ./configure -prefix=/mingw, make, make install
19) gtkglext-1.2.0 -> Тут пришлось поправить исходник, сложилось ощущение что его либо никогда ни компилировали, либо его не конфигурировали под винду перед релизом - отсутствуют некоторые определения (см. правки в GTKGL.ZIP). Команды сборки по инструкции.

Вот и все, хотя может в вашем случае и не все, тут такое дело - раз на раз не приходится  :)

ПС. Не стоит использовать файлы из GTKGL.ZIP для замены в исходниках других версий.
Название: Re: Собираем GTK+ и GTKGlExt под Win32
Отправлено: Oleg от 31 Июль 2011, 18:57:23
Хм  ;D
Я уже привы к этому, юзаю slackware.
В ней хоть в отличие от тойже убунты devel пакетов побольше из под коробки.