3d форум по Blender

Blender => Другое => Тема начата: Samovar от 16 Ноябрь 2015, 13:39:09

Название: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 16 Ноябрь 2015, 13:39:09
Конкретно интересует инструкция по сборке под Windows 7 х64, используя Cmake и Code:Blocks...
Пробовал, не получается... :(   Помогите, пожалуйста!
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: bdancer от 16 Ноябрь 2015, 13:52:02
Рассказывай, как пробовал и что не получается.
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 16 Ноябрь 2015, 13:57:41
Пробовал собрать 2.49b Думал, надо с простого начинать. Прочитал это: http://blenderartists.org/forum/showthread.php?251188-Cmake-Codeblocks-Windows-error&p=2093432&viewfull=1#post2093432 (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2JsZW5kZXJhcnRpc3RzLm9yZy9mb3J1bS9zaG93dGhyZWFkLnBocD8yNTExODgtQ21ha2UtQ29kZWJsb2Nrcy1XaW5kb3dzLWVycm9yJmFtcDtwPTIwOTM0MzImYW1wO3ZpZXdmdWxsPTEjcG9zdDIwOTM0MzI=)
Но во время конфигурирования проекта под Code:Blocks Cmake выдаёт ошибку... Правда я последнюю версию Cmake использовал... От этого зависит?
А вообще непонятен пункт 2:
Цитировать
2) You - may - need to delete any files generated by CMake within the binary build directory if there was a prior error.
Я ж создал новую отдельную от всего папку для сборки... что мне нужно удалять и где?
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 16 Ноябрь 2015, 14:51:05
Попробовал 2.76b... такая же беда :( Что я делаю не так?
З.Ы. поддержка OSL и Cycles, мне не нужны. Как их отключить? Нашел... но всё равно выдаёт ошибку... Это как-то связано с тем, что компилятор  32 разрядный? Где выставить 32 разряда в проекте?

[вложение удалено Администратором]
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: sungreen от 16 Ноябрь 2015, 16:11:53
... а ты с mingw собираешь? ...

Цитата: http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows/MinGW/CMake
Warning! MinGW is currently unsupported, while there is some effort to get it working again, at the moment MinGW builds fail to start!

... попробуй по этой инструкции ...
http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows/msvc/CMake
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 16 Ноябрь 2015, 16:24:48
Понял... надо качать Visual Studio Community, а она весит от 12 Гб... жаль, что MinGW не работает... А почему так?
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: bdancer от 17 Ноябрь 2015, 18:38:22
> а она весит от 12 Гб

Тебе не нужна вся студия, а только для C / C++, там гига 2.

Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 17 Ноябрь 2015, 19:39:59
Цитировать
Тебе не нужна вся студия, а только для C / C++, там гига 2.
Не могу найти, как скачать Visual C++ отдельно от студии... :(  Дай ссылку, пожалуйста.
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: bdancer от 17 Ноябрь 2015, 19:59:36
Там качается веб-установщик в котором можно выбрать требуемые компоненты.
PS: У тебя GPRS или диалап что ли? Давно бы уж и 12 гигов выкачал =)
PSS: На торрентах забанили? ;)
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 17 Ноябрь 2015, 20:12:10
Дай ссылку на торрент, а то мне всякие Redistributable Packgage попадаются...
Цитировать
У тебя GPRS или диалап что ли? Давно бы уж и 12 гигов выкачал ...
Нет у меня  ЖД нагнулся и нет столько свободного места... сижу на стареньком пока...
Но если честно, это смахивает на дурь: качать 12 гигов, затем еще их ставить...х.з. сколько это места займёт + исходники+ файлы сборки... чтобы получить  300 Mb полезного софта :)
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 17 Ноябрь 2015, 20:42:58
Тогда такой вопрос: Какая из наиболее ранних версиий MSVC++ может собрать нынешний код Блендера?
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: bdancer от 17 Ноябрь 2015, 20:50:47
> чтобы получить  300 Mb полезного софта

Студия со всеми SDK  и прочем добром все равно по минимуму 5-6 гигов займет.

> Какая из наиболее ранних версиий MSVC++ может собрать нынешний код Блендера?

Все же написано http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows/msvc/CMake: "Currently Blender depends on Visual Studio 2013"
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 17 Ноябрь 2015, 20:59:17
Цитировать
Все же написано http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows/msvc/CMake: (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3dpa2kuYmxlbmRlci5vcmcvaW5kZXgucGhwL0RldjpEb2MvQnVpbGRpbmdfQmxlbmRlci9XaW5kb3dzL21zdmMvQ01ha2U6) "Currently Blender depends on Visual Studio 2013"
Попробую :) Забыл, что есть флешка :)
Но вообще-то не понятно, почему так убита совместимость с другими компиляторами? Этож херово для для опен соурс... или я ошибаюсь?
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: bdancer от 17 Ноябрь 2015, 21:59:28
> или я ошибаюсь?

Ты будешь использовать тот компилятор который работает или тот который нет? =)
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 17 Ноябрь 2015, 22:08:17
Цитировать
Ты будешь использовать тот компилятор который работает или тот который нет? =)
Ответ очевиден... но я не о том... почему, вдруг, что-то так поменялось в коде Блендера, что под Винду теперь нельзя использовать компилятор MinGW?
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: bdancer от 17 Ноябрь 2015, 22:44:55
Я не слежу на каждым коммитом, сорри, думаю можешь на баг-трекере все найти.
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 17 Ноябрь 2015, 22:58:50
Ну может кто нить знает, какая из новых версий всё еще компилится с MinGW под винду?
Цитировать
думаю можешь на баг-трекере все найти.

Если б я соображал в английском... но не шарю, увы...
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 17 Ноябрь 2015, 23:14:42
Цитировать
Там качается веб-установщик в котором можно выбрать требуемые компоненты.
Выбрал... это не радует... :(

[вложение удалено Администратором]
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 03 Декабрь 2015, 12:45:51
Получилось собрать  win32 по этой инструкции: http://blog.machinimatrix.org/building-blender/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2Jsb2cubWFjaGluaW1hdHJpeC5vcmcvYnVpbGRpbmctYmxlbmRlci8=) 
+ официальная инструкция
Нужны: Visual Studio 2013 Community, Git, TortoiseSVN, CMake, от 20 Гб жестком диске.... и  дохрена времени и терпения :)
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 03 Декабрь 2015, 17:07:50
Объясните, пожалуйста, что такое патч исходного кода, и как его создать и применять? Или дайте ссылки на толковую инфу.
Подозреваю, что если обновлять Git и SVN, мои изменения в коде как-то надо с ними связать? Так же интересует инфа о том, как собрать Блендер более ранней версии, а не последней.
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: bdancer от 03 Декабрь 2015, 18:19:55
http://githowto.com/ru

Цитировать
мои изменения в коде как-то надо с ними связать
Код
git add <file>
Код
git commit <file> -m "Comment"

Цитировать
что если обновлять Git и SVN
Код
git pull --rebase 

Цитировать
как собрать Блендер более ранней версии
Код
git checkout <revision_hash/tag>
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: LanuHum от 03 Декабрь 2015, 19:54:04
Объясните, пожалуйста, что такое патч исходного кода, и как его создать и применять?
У разработчиков принято не изменять исходный код финальной версии. Все изменения в финальную версию вносятся с помощью патчей. Это касается всего: и новых плюшек, и исправленных ошибок.
Для создания патча применяется утилита diff. Как она работает, лучше всего разобраться на простом примере:
Создаём для примера папку patch, в ней файл source.txt
Код
one
two
three
for
five
six
seven

Изменяем файл, внеся в него дополнение:
Код
one
two
three
for
five
six
seven
eight

Изменённый файл сохраняем в этой же папке под именем modern.txt
Теперь можно посмотреть, как работает утилита diff. Переходим в консоли в папку patch и запускаем утилиту diff с двумя аргументами. Первый аргумент - исходный файл, второй - изменённый.
[leonid@localhost ~]$ cd /home/leonid/build/patch
[leonid@localhost patch]$ diff source.txt modern.txt
7a8
> eight
[leonid@localhost patch]$ eight - это разница в текстах.
Если написать в консоли
diff source.txt modern.txt > patch.txt
то результат будет выведен ни в консоль, а в файл.
Если указать после diff дополнительные параметры, то файл различий будет записан в особом формате, который можно затем использовать как патч.
Собственно, вот статья
http://imguru.ru/page/kak-sozdat-patch
Плохая статья. :)
Вот такая команда создаёт патч, который обычно используется
diff -urp source.txt modern.txt > patch.diff
Если открыть полученный файл, то мы увидим в нём вот такой вот текст:
Код
--- source.txt	2015-12-03 19:33:49.540869618 +0300
+++ modern.txt 2015-12-03 19:34:13.647759801 +0300
@@ -5,3 +5,4 @@ for
 five
 six
 seven
+eight
+eight - добавленная строчка. Выше и ниже добавленного всегда публикуется несколько неизменённых строчек, чтобы можно было ориентироваться.
Если строчка удалена, то перед ней будет стоять знак минус.



Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 03 Декабрь 2015, 20:45:31
Благодарю, bdancer. Буду потихоньку пробовать и врубаться... c TortoiseGit это будет проще?
Цитировать
Для создания патча применяется утилита diff
Спасибо, LanuHum, но у меня Windows 7... где искать эту утилиту? В Git? в SVN? в Visual Studio?... и если я всё правильно понял, то Git делает подобное, но с исходными файлами...
Блин...это просто сравнение содержимого двух файлов :)  это не то...


Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

d:\>help fc
Сравнение двух файлов или двух наборов файлов
и вывод различий между ними.

FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W]
   [/nnnn][диск1:][путь1]имя_файла1 [диск2:][путь2]имя_файла2
FC /B [диск1:][путь1]имя_файла1 [диск2:][путь2]имя_файла2

  /A         Вывод только первой и последней строк для каждой группы различий.
  /B         Сравнение двоичных файлов.
  /C         Сравнение без учета регистра символов.
  /L         Сравнение файлов в формате ASCII.
  /LBn       Максимальное число несоответствий
             для заданного числа строк.
  /N         Вывод номеров строк при сравнении текстовых файлов ASCII.
  /OFF[LINE] Не пропускать файлы с установленным атрибутом "Автономный".
  /T         Символы табуляции не заменяются эквивалентным числом пробелов.
  /U         Сравнение файлов в формате UNICODE.
  /W         Пропуск пробелов и символов табуляции при сравнении.
  /nnnn      Число последовательных совпадающих строк, которое
             должно встретиться после группы несовпадающих.
  [диск1:][путь1]имя_файла1
             Указывает первый файл или набор файлов для сравнения.
  [диск2:][путь2]имя_файла2
             Указывает второй файл или набор файлов для сравнения.
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 03 Декабрь 2015, 21:54:43
Нарыл в документации к Blend4Web. Git полезнейшая вещь :) https://www.blend4web.com/doc/ru/git_short_manual.html
Интересно, кто нибудь её применяет в работе над простыми проектами blender?
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: LanuHum от 03 Декабрь 2015, 22:38:13
Нарыл в документации к Blend4Web. Git полезнейшая вещь :) https://www.blend4web.com/doc/ru/git_short_manual.html
Интересно, кто нибудь её применяет в работе над простыми проектами blender?
git тебе не нужен.
Там же написано, в команде... Ты не в команде разработчиков блендера.
То есть, прога лежит где-то на сервере, а с помощью git происходит обмен кодом. Для этого у писателей есть пароли. Без пароля можно только скачать.
Git контролирует любые изменения в файлах и ведёт архивирование изменений, но для работы над кодом его не используют.
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 03 Декабрь 2015, 22:42:41
Цитировать
Ты не в команде разработчиков блендера.
да как-то и не стремлюсь :) Мне нужно отслеживать изменения официальных версий только на моём компе, мне для этого не нужно быть разработчиком Блендера.  Для работы с кодом, я знаю что используют :)
Цитировать
git тебе не нужен.
хватит меня вводить в заблуждение...
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: LanuHum от 03 Декабрь 2015, 22:47:41
Цитировать
Для создания патча применяется утилита diff
Спасибо, LanuHum, но у меня Windows 7... где искать эту утилиту?
Вижу её в mingw
http://sourceforge.net/projects/mingw/files/OldFiles/msys-diffutils/
Должно быть что-то подобное и в VS
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 03 Декабрь 2015, 22:54:48
Цитировать
Должно быть что-то подобное и в VS
используется Git http://www.cyberforum.ru/version-control/thread1057498.html
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: LanuHum от 03 Декабрь 2015, 23:04:02
Цитировать
Ты не в команде разработчиков блендера.
да как-то и не стремлюсь :) Мне нужно отслеживать изменения официальных версий только на моём компе, мне для этого не нужно быть разработчиком Блендера.  Для работы с кодом, я знаю что используют :)
Цитировать
git тебе не нужен.
хватит меня вводить в заблуждение...
Не ввожу я тебя в заблуждение. Дай мне ссылку на git репозиторий Блендера. Я посмотрю как можно отследить и тебе расскажу.

Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 03 Декабрь 2015, 23:11:17
Да не надо мне ничего рассказывать. Bdancer уже дал наводку в каком направлении двигаться, за что ему спасибо, ещё раз.
Ссылки есть в инфе по ссылке инструкции  сборки Блендера под Виндовс. git://git.blender.org/blender.git
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: LanuHum от 03 Декабрь 2015, 23:34:54
Да не надо мне ничего рассказывать. Bdancer уже дал наводку в каком направлении двигаться, за что ему спасибо, ещё раз.
Ссылки есть в инфе по ссылке инструкции  сборки Блендера под Виндовс. git://git.blender.org
Хорошо, ни тебе, другим, кому, вдруг, вздумается пойти по твоим следам, напишу.
Если вы хотите отыскать все изменения, вносимые в Блендер с версии 2.25 до версии 2.76b, то перейдите по адресу
https://git.blender.org/gitweb/gitweb.cgi/blender.git/tags
Выбираем интересуемую версию, жмём в конце строчки log
Откроется страница со всеми коммитами этой версии.
Commitdiff откроет вам текст с внесёнными изменениями в конкретную дату и время.
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: mr.A от 03 Декабрь 2015, 23:51:32
https://msdn.microsoft.com/en-us/library/bb385990%28v=vs.120%29.aspx#window
http://roadtoalm.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 04 Декабрь 2015, 02:59:21
Теперь понятно. Нашел на русском.https://msdn.microsoft.com/ru-ru/ru/library/bb385990(v=vs.120).aspx#workspace-to-server (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vcnUtcnUvcnUvbGlicmFyeS9iYjM4NTk5MCh2PXZzLjEyMCkuYXNweCN3b3Jrc3BhY2UtdG8tc2VydmVy)
Благодарю, mr.A
Ладно... всё это потихоньку и со временем... Пока только приходит на ум - копировать куда нить в отдельное место измененные файлы и использовать одну и туже ревизию Блендера.
Вот тут и раньше интересовались, оказывается http://blender-3d.ru/forum/index.php?topic=681.0
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: sungreen от 04 Декабрь 2015, 06:33:32
>> Ладно... всё это потихоньку и со временем... Пока только приходит на ум - копировать куда нить в отдельное место измененные файлы и использовать одну и туже ревизию Блендера.
... насколько понял, то на самом деле для этого у тебя уже используется git репозитарий и ориентироваться нужно на то, чтобы делать это его средствами и без лишних вспомогательных хранилищ ...
... посмотри еще git diff  и например  git diff HEAD ...
http://gitref.org/basic/
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 04 Декабрь 2015, 12:52:16
Спасибо sungreen, погляжу. Но думаю, вопросов на этот счёт у меня ещё будет море :) Никогда с этим не сталкивался...
Уже играюсь. Поменял параметры градиентов, как ты научил... и у Интернала семплов для глянцевых отражений накрутил :)

Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 22 Декабрь 2015, 15:14:33
Хорошо... получилось с помощью команды git diff HEAD >> me.txt создать файл me.txt
Содержимое me.txt:
Код
diff --git a/source/blender/blenkernel/BKE_texture.h b/source/blender/blenkernel/BKE_texture.h
index 95918b9..91f6c7d 100644
--- a/source/blender/blenkernel/BKE_texture.h
+++ b/source/blender/blenkernel/BKE_texture.h
@@ -56,7 +56,7 @@ struct VoxelData;
 struct World;
 
 /*  in ColorBand struct */
-#define MAXCOLORBAND 32
+#define MAXCOLORBAND 256 /* было 32 */
 
 
 void init_colorband(struct ColorBand *coba, bool rangetype);
diff --git a/source/blender/makesdna/DNA_texture_types.h b/source/blender/makesdna/DNA_texture_types.h
index 2843d01..cba775b 100644
--- a/source/blender/makesdna/DNA_texture_types.h
+++ b/source/blender/makesdna/DNA_texture_types.h
@@ -118,7 +118,7 @@ typedef struct ColorBand {
  char color_mode;
  char pad[1];
 
- CBData data[32];
+ CBData data[256]; /* было 32 */
 } ColorBand;
 
 typedef struct EnvMap {
diff --git a/source/blender/makesrna/intern/rna_color.c b/source/blender/makesrna/intern/rna_color.c
index c418ef3..5469c56 100644
--- a/source/blender/makesrna/intern/rna_color.c
+++ b/source/blender/makesrna/intern/rna_color.c
@@ -966,7 +966,7 @@ static void rna_def_color_ramp(BlenderRNA *brna)
  RNA_def_property_int_sdna(prop, NULL, "tot");
  /* needs a function to do the right thing when adding elements like colorband_add_cb() */
  RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_range(prop, 0, 31); /* MAXCOLORBAND = 32 */
+ RNA_def_property_range(prop, 0, 255); /* MAXCOLORBAND = 32 */
  RNA_def_property_ui_text(prop, "Total", "Total number of elements");
  RNA_def_property_update(prop, 0, "rna_ColorRamp_update");
 #endif
Допустим, теперь я обновляю репозитарий Блендера... какие дальше действия, чтоб me.txt учитывался, когда буду снова конфигурировать проект с помощью Cmake ? Помогите советом, пожалуйста.
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: sungreen от 22 Декабрь 2015, 22:57:54
... тебе нужна команда patch ...
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: mr.A от 04 Январь 2016, 19:22:28
http://wiki.blender.org/index.php/Dev:Doc/Tools/Patches
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: Samovar от 15 Январь 2016, 20:52:42
Спасибо за ссылку ,mr.A, потихоньку буду врубаться...
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: LanuHum от 10 Июль 2016, 11:02:38
Цитировать
Предупреждение: в данной теме не было сообщений более 120 дней.
Если Вы не уверены, что хотите ответить, то лучше создайте новую тему.
Уверен, что новую тему создавать не нужно.
Где искать ошибку?
Собирал последний релиз из исходников - сборка остановилась вот тут:
Код
Linking C static library ../../../lib/libbf_blenkernel.a
[ 52%] Built target bf_blenkernel
Makefile:147: ошибка выполнения рецепта для цели «all»
Скачал Git-версию. - сборка далеко не уехала:
Код
Linking C static library ../../../lib/libbf_blenkernel.a
[ 52%] Built target bf_blenkernel
[ 52%] Building CXX object source/blender/depsgraph/CMakeFiles/bf_depsgraph.dir/intern/depsgraph_query.cc.o
[ 52%] Building CXX object source/blender/depsgraph/CMakeFiles/bf_depsgraph.dir/intern/depsgraph_tag.cc.o
[ 52%] Building CXX object source/blender/depsgraph/CMakeFiles/bf_depsgraph.dir/intern/depsgraph_type_defines.cc.o
Linking CXX static library ../../../lib/libbf_depsgraph.a
[ 52%] Built target bf_depsgraph
Makefile:147: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
[leonid@localhost blend_so]$
Название: Re: Как самостоятельно собрать Блендер из исходников?
Отправлено: LanuHum от 10 Июль 2016, 11:37:57
На одном ядре поехало...