Доброго времени суток!
Прелюдия (не очень полезная информация)
Возник интерес по сборке и использованию
Apache Thrift (в прошлом проект Facebook-а) у себя в продукте на Windows.
У Apache все работают на Mac/Linux и индейцев проблемы остального населения не беспокоят. Хотя, надо признать, в последние версии "пролезли" обрезанные проекты от Visual Studio для компилятора и библиотеки - земной поклон.
Мы же по
простому крестьянски в Windows мастерим (иногда из любви к кросс платформенности проверяя MinGW/Cygwin или в виртуалочке на распоследней Fedora с clang).
И так мне не любо, когда необходимо читать README_WINDOWS.txt с какими-то инструкциями, что нужно
вручную что-то скопировать, что-то переименовать и что-то прописать в переменные окружения. Да так, что руки невольно начинают "ерзать" по клавиатуре и описывать проект в CMake (простите за мою слабость к данному инструменту).
Так как "индейские" ребята из племени Апачей (как и Гуглоидов), походу, ненавидят CMake, о чем они демонстративно заявили, накорню убив в
Июне 10-го интергацию какого-то залетного "перца" и его надежду в светлое будущее кросс платформенного генератора билдов. Поэтому, подавать это в "индейское" племя (Jira то бишь) видимо смысла нет.
Ну так вот... Подсмотрев идею не интрузивного (или не инвазивного???) проекта для
Google Protobuf накидал похожее для ApacheThrift о чем спешу поделиться - может кому тоже подойдет.
HowTo (полезная информация)
Зависимости
CMake (у меня 2.8.12)
Git
Какой нибудь компилятор C++ (у меня основная платформа msvc++ 11 (vs2012))
Flex/Bison
Boost C++ (1.55 использую собранный, тем компилятором что выбрали выше)
Клонируете исходный код Thrift (можно
официальный, можно
зеркало)
Клонируете мой проект (
fork me on github)
запустить из командной строки
cmake <путь к моему проекту> -DTHRIFT_SRC_ROOT=<путь до клона thrift>
если стандартный генератор не люб - добавте -G<имя генератора> (я например фэн
Ninja)
Дополнительные опции (вроде понятные)
Обязательные (если cmake не найдет сам, по любому придется указать - зависимость)
- -DBOOST_ROOT=<путь до Boost C++ Library>
Необязательные (без них будет строиться, но пропадут фичи упаковки и криптования)
- -DWITH_TESTS=ON
- -DZLIB_ROOT=<путь до ZLib>
- -DOPENSSL_ROOT_DIR=<путь до OpenSSL>
Может заработать не сразу - штука экспериментальная.
Патчи и проблемные репорты приветствуются, хотя не обещаю скорого исправления :)
Пока в планах - добавление Libevent для асинхронных сервера и клиента и инсталляция.
Далее - как пойдет.
Удачи.
----------
If you build it, CR will come... (старая Motorola-вская шутка)