Skip to content

NikkittaP/osg_pack

Repository files navigation

osg_pack

Sources and scripts for building OSG, osgearth libraries for Windows (MSVC2015, MSVC2019) and Linux

Построение библиотек

Basic dependencies:

To build libraries on Windows and Linux, special scripts BUILD_LIBS were prepared.

Версии используемых библиотек, даты их обновления и внесенные изменения перечислены в файле sources/versions.txt.

При запуске скрипта сборки создаются папки:

  • build - содержит копии папок из sources + для каждой библиотеки подпапки build/release, build/debug, в которых происходит сборка библиотек.
  • build/_build_log/ - содержит множество *.log файлов, размещенных в папок с названиями библиотек, которые строятся. Может помочь в определении простых проблем построения.
  • install - папка, в которую происходит установка собранных библиотек (bin + includes + lib). Именно эта папка нужна конечному пользователю, который хочет собирать у себя Terracore/core3.

В скриптах построения есть возможность исключать из процесса постройки библиотеки, которые не требуют обновления. Например, если вы хотите внести изменения в библиотеку osgearth, то задайте параметр IS_GLOBAL_BUILD=1, а для нужной библиотеки (в данном случае osgearth) задайте параметр IS_OSGEARTH_BUILD=1.

Важно! Не забывайте следить за зависимостями библиотек. Если вы вносите изменения, например, в zlib, то с большой долей вероятности необходимо будет перестроить все библиотеки, которые строятся после zlib.

Windows

Настройки

Построение библиотек производится с использованием Visual Studio 2015 x64.

В первую очередь выполните следующие шаги (описаны в файле dependencies_windows.txt):

  • Установите CMake (при тестировании использовалась версия 3.15.0) и добавьте его в системную переменную PATH.
  • Установите [NASM] (https://www.nasm.us). Необходим для построения libjpeg-turbo.

После этого отредактируйте скрипт построения BUILD_LIBS.bat:

  • Определите нужна ли вам debug сборка. Если нет то установите IS_BUILD_DEBUG=0, что заметно ускорит сборку библиотек.
  • Задайте кол-во используемых потоков процессора для построения через NUM_THREADS.
  • Если установка Visual Studio 2015 производилась в нестандартную папку, то изучите и, при необходимости, обновите переменные MS_BUILD_*.
  • Если CMake не прописан в системную переменную PATH, то задайте путь к CMake в CMAKE_BASE_COMMAND (не протестировано).
  • Задайте корректный путь QTDIR к Qt 5.10.1 или выше.

Далее можно запускать скрипт постройки BUILD_LIBS.bat. Я произвожу запуск через powershell. На некоторых ПК требуются права администратора для запуска MSBuild/cl, поэтому рекомендуется запускать powershell с правами администратора.

Возможные проблемы

  1. Проблема: OpenSceneGraph некоторое время строится, загружает ЦП, но в результате библиотеки не сгенерированы или сгенерированы не все.

Возможное решение: На ноутбуке я наблюдал сброс построения OpenSceneGraph с ошибкой в логах "no heap space".

Чтобы построение прошло успешно, мне пришлось перезапускать построение несколько (~5) раз. С каждым разом OpenSceneGraph достраивал недостающие библиотеки. Чтобы ускорить этот процесс нужно воспользоваться параметром пропуска библиотек, чтобы скрипт сразу переходил к OpenSceneGraph. Если есть мысли как решить эту проблему, пожалуйста напишите @NikkittaP.

  1. Проблема: Release версия osgQt не построена.

Возможное решение: Если вы видите сообщение "Active code page: 437" при открытии cmd, тогда стоит проверить что находится в файле build\osgQt\build\release\src\osgQt\osgQt5.vcxproj

Если в начале файла имеется то же сообщение (дважды) "Active code page: 437", значит необходимо внести правки в реестр:

Перейдите в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\Autorun и удалите значение "chcp 437".

Попробуйте перезапустить скрипт BUILD_LIBS.bat.

Время построения

Чтобы оценить необходимые ресурсы для построения всех библиотек в режимах release и debug, привожу свои данные:

  • Тест 1

Конфигурация ПК: Core i7-8700 (6/12), 16GB DDR4 2666MHz, 250GB SSD Samsung 960 EVO (на том же диске ОС)

Windows 10 x64

Время затраченное на сборку*: ~2 часа

Результирующий объем папок build и install*: ~22,5GB

  • Тест 2

Конфигурация ПК: Core i7-6700K (4/8), 16GB DDR4 2133MHz, 250GB SSD ADATA SP920SS (на том же диске ОС)

Windows 10 x64

Время затраченное на сборку*: 01:45:00

Результирующий объем папок build и install*: ~22,1GB

Linux

Построение библиотек производится с использованием gcc.

В первую очередь выполните следующие шаги (описаны в файле dependencies_linux.txt):

  • Установите необходимые зависимости. Для семейства Ubuntu систем:

    sudo apt-get install -f build-essential mesa-common-dev nasm libssl-dev pkg-config freeglut3-dev libxmu-dev libxi-dev libsqlite3-dev sqlite3

  • Если системный CMake имеет версию ниже 3.9, тогда необходимо установить последнюю версию с сайта. Инструкция в файле dependencies_linux.txt. Если в системе версия CMake 3.9 или выше, тогда:

    sudo apt-get install cmake

  • Установить Qt в папку /opt/Qt5.13.0/.

После этого отредактируйте скрипт построения BUILD_LIBS.sh:

  • Определите нужна ли вам debug сборка. Если нет то установите IS_BUILD_DEBUG=0, что заметно ускорит сборку библиотек.
  • Задайте кол-во используемых потоков процессора для построения через NUM_THREADS.
  • Задайте ОС, на которой производится сборка, с помощью параметра CURRENT_OS. Возможные значения представлены в скрипте. Boost именует файлы указывая версию gcc, для astra 1.6 это 6, для ubuntu 18.04 это 7. Данный параметр помогает избежать проблем с идентификацией библиотек.
  • Задайте корректный путь QTDIR к Qt 5.10.1 или выше.
  • Если используется несистемный CMake, то задайте значение параметра IS_CMAKE_CMD_WORKING=0 и пропишите путь к исполняемому файлу cmake в параметре CMAKE_CMD

Далее можно запускать скрипт постройки BUILD_LIBS.sh. При запуске скрипта, скрипт проверяет root права и перезапускается уже под рутом.

Время построения

Чтобы оценить необходимые ресурсы для построения всех библиотек в режимах release и debug, привожу свои данные:

  • Тест 1

Конфигурация ПК: VMware. 12 ядер от Core i7-8700 (6/12), 8GB DDR4 2666MHz, 60GB на 250GB SSD Samsung 960 EVO (на том же диске ОС)

Astra SE 1.6 x64

Время затраченное на сборку: 40 минут

Результирующий объем папок build и install: ~10,3GB

  • Тест 2

Конфигурация ПК: Core i5-750 (4/4), 12GB DDR3 1333MHz, 120GB SSD ADATA SP600 (на том же диске ОС)

Astra SE 1.6 x64

Время затраченное на сборку: 02:11:21

Результирующий объем папок build и install: ~10,8GB

About

Scripts to build osg & osgearth

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published