В процессе воплощения в жизнь ранее описанных соображений что-то начинает вырисовываться. Вместо того, чтобы писать на CMake вот так:
ExternalProject_add(so_5_prj SVN_REPOSITORY http://svn.code.sf.net/p/sobjectizer/repo/tags/so_5/5.5.15.2/dev CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} INSTALL_DIR ${CMAKE_INSTALL_PREFIX} ) |
Хочется писать на Ruby как-то вот так:
MxxRu::svn_externals :so_5 do |ext| ext.url 'http://svn.code.sf.net/p/sobjectizer/repo/tags/so_5/5.5.15.2' ext.map 'dev/so_5' => 'dev' end |
Ну или даже вот так:
MxxRu::svn_externals :so_5 do |ext| ext.url 'http://svn.code.sf.net/p/sobjectizer/repo/tags/so_5/5.5.15.2' ext.option '-q' ext.option '--native-eol', 'LF' ext.map 'dev/so_5' => 'dev' ext.map 'dev/test/so_5' => 'test' ext.map 'dev/samples/so_5' => 'samples' end |
На данный момент уже вполне себе дышит работа с Git, Hg и Svn. Нужно еще подумать на счет реализации дополнительных опций, вроде :clober и :reload. И можно будет релизить новую версию Mxx_ru с поддержкой такого вот подхода к получению зависимостей из внешних источников. Ну а потом на очереди будет загрузка (http/https, ftp) архивов (tar.gz, tar.bz2, tar.xz, zip, 7z). Там, глядишь, и без пакетного менеджера для C++ можно будет прожить еще какое-то время :)
Комментариев нет:
Отправить комментарий