This is Google's cache of http://wiki.yandex-team.ru/YandexLabsDev/AradiaBuild. It is a snapshot of the page as it appeared on 3 Mar 2011 20:24:52 GMT. The current page could have changed in the meantime. Learn more

Text-only version
 
Setting up a Development Work Area @ Вики
Вики Стафф Jira Рассылки Статистика Документация Переговорки Админы
Войти
 
/ YandexLabsDev/AradiaBuild

Setting up a Development Work Area

Владелец:
cliff
Последние исправления:
16 июля 2010, 20:18

Official Page  

Web Viewer  

Setting up a Build Area  

The "official" build machine for the quality team is maitai.yandex.ru.
We also use the arachnid machines for building (e.g. arachnid03.yandex.ru).
Ensure that you are working in a directory that has sufficient space.
On maitai:/place/home/<userid>/ appears to be the default and should have space.
On arachnid03:/Berkanavt/<userid>/ should have space

Typically the build area is setup in a directory named ‘work’.

mkdir work
cd work
svn co https://arcadia.yandex.ru/arc/trunk


This will take a while (it is checking out the entire source tree to build area).
It will create the following directories:

  • work/trunk/arcadia
  • work/trunk/arcadia_tests_data
  • work/trunk/contrib
  • work/trunk/data

Specifying Build parameters  

After the checkout is completed, create a local.cmake file in the arcadia directory containing the following:

SET(MAKE_ONLY quality)
SET(CMAKE_BUILD_TYPE release)
SET(USE_STATIC_CPP_RUNTIME yes)
SET(MAKE_CHECK yes)
SET(NO_LIBBIND yes)
SET(NOSTRIP yes)
SET(NO_WERROR yes)

The SET(MAKE_ONLY quality) limits the build to the quality directory. If there are multiple SET(MAKE_ONLY) statements, only the last will have effect. You can build the entire tree using, SET(MAKE_ONLY all). You can build multiple directories by specifying them in a single statement
SET(MAKE_ONLY junk/cliff quality/relev_tools/treenet quality/relev_tools/pfound quality/junkGulin)

Building  

In the work directory, create a build directory parallel to the arcadia directory

cd trunk
mkdir build
cd build
export MAKE_CHECK=yes
cmake -Drelease= ../arcadia
make

Note: you can force a specific compiler using:
CC=gcc44 CXX=g++44 cmake -Drelease= ../arcadia
While this is supposedly deprecated it is the only way I have found to change the compilers once cached.
Note from AKhropov on July 15, 2010: That's the way to do this, yes. The other one in to SET(MY_GCC gcc44), SET(MY_GPP g++44) in local.cmake but according to vlysenkov@ it doesn't work properly in CMake 2.6 when CMake is rerun after CMakeLists.txt changes.
Note from VLysenkov on July 16, 2010: The proper way is to use MY_GCC and MY_GPP in local[.compiler].cmake (it is the way that our autobuild uses)... [It is true that] using SET(MY_GCC gcc44) and SET(MY_GPP g++44) in the local.cmake has no effect after cmake is run the first time. So you have no way to change compiler for an existing build tree.


Yandex uses CMake as the build infrastructure. CMake is a platform independent meta-make that generates make files that are subsequently used by make to actually build the source code. After the initial setup using cmake, cmake will be called transparently when needed whenever make is used to build.


At this point you can build any time using make in work/trunk/build

cd work/trunk/build
make

You can update your entire source tree using, or any sub directory using svn update

cd work/trunk
svn update

Notes  

To build a stable version (you will need to check-out the latest stable version, assuming this is stable-16-25)


cd work
svn co https://arcadia.yandex.ru/arc/tags/base/stable-16-25