четверг, 4 августа 2016 г.

[prog] Демонстрация поведения разных ObjPlacement в MxxRu

В предыдущем посте написал много слов о том, что такое ObjPlacement и какие ObjPlacement как себя ведут. Похоже, проще один раз показать :)

Итак, пусть у нас есть вот такая файловая структура:

.
├── build.rb
└── demo
    ├── prj.rb
    └── src
        └── some_rather_long_path
            └── to_source
                └── file
                    └── main.cpp

Где main.cpp -- это классический hello_world:

#include <iostream>

int main() {
   std::cout << "Hello, world" << std::endl;
}

Проектный файл для этого hello_world имеет простейший вид (файл demo/prj.rb):

gem 'Mxx_ru'
require 'mxx_ru/cpp'

MxxRu::Cpp::exe_target {
  target 'demo.app'
  cpp_source 'src/some_rather_long_path/to_source/file/main.cpp'
}

Ну и в build.rb пока ничего интересного нет вообще:

#!/usr/bin/ruby
gem 'Mxx_ru''>= 1.6.12'
require 'mxx_ru/cpp'

MxxRu::Cpp::composite_target( MxxRu::BUILD_ROOT ) {
  required_prj 'demo/prj.rb'
}

Запускаем сборку ./build.rb --mxx-cpp-release и получаем следующее содержимое:

[prog] Mxx_ru-1.6.12 с еще одним ObjPlacement из коробки

Сделал очередной релиз своей кроссплатформенной системы сборки C/C++ проектов: Mxx_ru версии 1.6.12

Установить Mxx_ru можно командой gem install Mxx_ru

Обновить Mxx_ru можно командой gem update Mxx_ru

Так же Mxx_ru можно загрузить с SourceForge (gem-файл).

Единственное, но важное, обновление версии 1.6.12 по сравнению с предшествующей версией 1.6.11 -- это появление класса PrjAwareRuntimeSubdirObjPlacement. Этот ObjPlacement позволяет получить возможность сборки одних и тех же исходников в lib или в so/dll прямо "из коробки".

Для того, чтобы пояснить нужность PrjAwareRuntimeSubdirObjPlacement требуется сперва объяснить роль ObjPlacement в MxxRu...

среда, 3 августа 2016 г.

[prog.c++14] Кто-нибудь уже пробовал использовать GSL в промышленных проектах?

Кто-нибудь из моих читателей уже пробовал Guidelines Support Library (GSL) от разработчиков из Microsoft-а в боевом коде? Если да, то как впечатления? Есть ли какие-нибудь подводные камни?

А то вот думаю попробовать затаскивать к себе в разработки. Вот, скажем, недавно в тему бы пришелся класс not_null, да не было времени ни свой вариант писать, ни GSL подтягивать... Но вот смущает, что на github-е пока ни одного релиза еще не было.

воскресенье, 31 июля 2016 г.

[life.cinema] Очередной кинообзор (2016/07)

Подошло время для публикации очередного списка просмотренных за минувший месяц фильмов. Как обычно, в начале идут те фильмы, которые понравились мне больше, затем те, которые понравились меньше. Хотя в этом случае, пожалуй, посмотреть можно все, совсем уж откровенной ерунды не нашлось.

Славные парни (The Nice Guys, 2016). Посмотрел с удовольствием, хотя по трейлеру ждал большего. А вообще фильм производит впечатление олдскульности, что идет ему на пользу, на мой взгляд.

Любовь не по размеру (Un homme à la hauteur, 2016). Несколько двойственные впечатления. Фильм позиционируется как комедия. И, по началу, довольно забавной и интересной комедией является. Но ближе к финалу превращается в довольно заурядную и предсказуемую мелодраму.

Идем со мной (Blackway, 2016). Очень простенько и непритязательно, но именно этим мне фильм и понравился.

Полтора шпиона (Central Intelligence, 2016). Местами смешно. Но мозги при просмотре нужно отключать.

Голограмма для короля (A Hologram for the King, 2016). Добротный фильм. Но, видимо, нужно быть несколько постарше, чтобы он производил более серьезное впечатление.

Чистое искусство (2016). Снято красиво. Хотя одной вещи так и не понял: зачем постоянно показывают главную героиню в полуголом виде?

Налетчики (Marauders, 2016). Довольно добротный криминальный фильм. Хотя и не шедевр.

Судная ночь 3 (The Purge: Election Year, 2016). Так себе. Посмотреть можно, но вторая часть мне понравилась больше.