-
Notifications
You must be signed in to change notification settings - Fork 3
BuildOnWindows
Процесс сборки на Windows несколько нетривиален.
Прежде всего нужно установить Visual Studio. Я использовал пробную версию Visual Studio 2013. Предыдущие версии поддерживают C++11 в меньшей степени, поэтому не гарантирую успешную сборку на них.
CMake можно скачать с официального сайта http://www.cmake.org/. Нужна версия не ниже 2.8.12, или не ниже 2.8.9 для тех, у кого она уже установлена и качать новую лень в большей степени, чем править минимальную версию в файлах. Необходимо, чтобы CMake прописался в PATH
.
Git также берется с официального сайта http://git-scm.com/. При установке следует указать Use Git Bash only, checkout as is, commit as is.
За питоном тоже лезем на сайт http://python.org/, где берем дистрибутив. Работает с python 2.7, python 3.3.
Если есть желание использовать для сборки Ninja, его придется собирать самостоятельно. Замечу, что собирать ninja следует уже после всех действий, описанных в следующей секции. А так, все просто, клонируем репозиторий, запускаем bootstrap.py
и получаем заветный ninja.exe
, который нужно положить куда-нибудь в PATH
, например в /usr/bin/
гита.
git clone [email protected]:martine/ninja.git && cd ninja
./bootstrap.py
OpenCV можно скачать с официального сайта http://opencv.org/. В случае если при сборке будут возникать ошибки связанные с opencv нужно собрать самостоятельно:
git clone [email protected]:Itseez/opencv.git && cd opencv
cmake -DCMAKE_INSTALL_PREFIX=/c/opencv -G Ninja
ninja && ninja install
Если без Ninja: cmake -DCMAKE_INSTALL_PREFIX="Путь установки" "Директория с OpenCVConfig.cmake"
Далее в Visual studio нужно будет открыть и собрать сгенерированный проект.
В случае, если не указать -DCMAKE_INSTALL_PREFIX
, установка будет произведена в подкаталог install
.
Винда не была бы виндой, если бы не пришлось что-нибудь делать через задницу. Чтобы CMake смог опознать компилятор и проверить его, нужно сделать возможным сборку из git bash. Лезем в панель управления, свойства системы, дополнительные параметры, переменные среды. Правим переменную PATH
, добавляем туда путь до питона (у меня C:\Python27
).
Дальнейших действий делать не нужно, если использовать git не с http://git-scm.com/, а гитхабовский клиент под Windows, который также имеет git shell. Взять можно отсюда: http://windows.github.com/
Теперь лезем в директорию студии и копируем файл Common7/Tools/vsvars32.bat
в директорию гита. Даем себе права на чтение и добавляем в конец
"C:\Program Files (x86)\Git\bin\sh.exe" --login -i
Путь может быть другим. Если есть желание, то можно натравить ярлык Git Bash на этот батник. Вся суть в том, чтобы запускать шелл с этим батником.
Эта часть не отличается от остальных платформ. Нужно склонировать репозиторий, подгрузить субмодули и установить хуки. Все следующие действия необходимо делать в Git bash.
git clone [email protected]:it-workshop/caroline.git &&
git submodule update --init
./build/install_hooks.sh
Если необходимо обновить субмодули, следует выполнить:
git submodule update
Стоит собирать проект в отдельной директории (Лучше всего использовать директорию out
, потому что она добавлена в игнор линтера), чтобы не мешать генерируемые файлы с исходными, в .gitignore
они, конечно, перечисленны, но скорее всего не все. А мусор в репозитории никто не любит.
TODO(@alex-ac): Добавить директорию out в .gitignore.
mkdir out && cd out
cmake -DCMAKE_BUILD_TYPE=Debug -DOpenCV_DIR=/c/opencv -G Ninja ..
-G Ninja
нужен только при использовании ninja, как и -DCMAKE_BUILD_TYPE=Debug
, который нужен только если вы хотите включить дебажную сборку при сборке ниндзей. Тип сборки при использовании Visual Studio задается в самой студии. Вместо /c/opencv
должен быть путь, в который была установлена opencv (директория с файлом OpenCVConfig.cmake
).
По умолчанию cmake создает проект для установленной в системе Visual Studio.
Все достаточно просто, необходимо открыть файл caroline.sln
и собрать проект ALL_BUILD
.
Тесты можно запустить с помощью специального проекта RUN_TESTS
, а можно просто выполнить unit_tests.exe
, который позволяет также выбрать конкретные тесты для запуска и отображает результаты каждого теста.
Тут тоже все просто. Надо просто сказать:
ninja
Для запуска тестов используем:
ninja test
или
./unit_tests.exe