Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Как мы ускорили сборку CAD-программы на С++ в несколько раз

Блог компании АСКОН C++ *CAD/CAM *Промышленное программирование *Системы сборки *

Если вы пишете на C++, то скорее всего сталкивались с тем, что компиляция, кодогенерация и компоновка проектов, написанных на нём, занимают время и с развитием проекта начинают мешать как CI конвейеру так и итерации разработки на рабочем месте. Наша команда не понаслышке знает об этих проблемах, и в этой статье мы хотим поделиться опытом внедрения широко известного в узких кругах инструмента - сборочной системы FASTBuild.

Подробнее про ускорение
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 2.3K
Комментарии 6

Apache Maven 2

Чулан
Я таки решил попробовать что-нибудь написать в своем блоге, так что не ругайте сильно если что ;) Первую статью пишу про систему построения и управления Java-проектами Apache Maven 2. Это обзорная статья, если кому-то будет интересно – сделаю небольшой цикл уже с подробностями.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 1.3K
Комментарии 17

Apache Maven — основы

Java *
После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.
Поехали!
Всего голосов 45: ↑41 и ↓4 +37
Просмотры 461K
Комментарии 29

Phing — сборка PHP проектов

PHP *
Из песочницы
У многих из нас, бывают ситуации когда проект требует подготовки к выводу в продакшн, и зачастую эта подготовка состоит из множества действий, которые приходится выполнять много раз(например при сборке релизной версии). Зачастую задачи сводятся к выполнению простых консольных команд, очистке кеша, минификации JS и CSS или сборки их в один файл, но вся эта рутина может занять довольно продолжительное время, а так как выполняется, чаще всего, в конце рабочего дня, довольно легко опечататься и отправить несколько дней\часов\минут работы над проектом в небытие. В такой ситуации программисты стараются, как то автоматизировать сборку и подготовку проекта к рабочему состоянию, в чём им помогают различные системы сборки, об одной из которых и пойдёт речь в статье.
Читать дальше →
Всего голосов 77: ↑74 и ↓3 +71
Просмотры 43K
Комментарии 45

Хак для ускорения компиляции проекта для Fortran 95

Программирование *
Из песочницы

Эпиграф


Лет 15 назад, когда про MSBuild еще не знали, жили были люди, которые любили писать на Фортране большие расчетные программы, но не использовали make по религиозным соображениям…

Уровень подготовки


Средний.

Предисловие


Доброго времени суток!

Слово «Fortran» может вызвать в Вашей душе много разных обертонов (не путать с Oberon).
Если Вам кажется, что время его уже прошло, просто проигнорируйте эту статью.
Читать дальше →
Всего голосов 25: ↑16 и ↓9 +7
Просмотры 2.7K
Комментарии 6

Видео сборки настоящего двигателя от Боинга

Гаджеты
Модель реактивного двигателя Rolls Royce из 152 455 деталек Лего четыре человека собирали восемь недель. На сайте Gizmodo опубликовано эксклюзивное видео сборки и установки настоящего двигателя Trent 1000, который ставится на такие лайнеры, как Airbus A330, A340, A350, A380 и Боинги 777 и 787. Двигатель весит 5765 килограммов, имеет диаметр почти 3 метра и развивает тягу до 34 тонн.



Всего голосов 35: ↑27 и ↓8 +19
Просмотры 2.7K
Комментарии 27

Rake + Albacore. Сборка .Net проекта с помощью Ruby

Ruby *.NET *
Из песочницы
Когда речь заходит о сборке .Net проектов, первое, что приходит в голову, это утилита MSBuild + сопутствующие build-скрипты. Действительно, пока проект небольшой, ее возможностей вполне хватает. Но со временем количество кода растет, структура продукта становится все более сложной и запутанной, и начинаешь задумываться о поиске более гибкого решения.

В нашем случае, таким решением оказалась связка Rake+Albacore. Что же это такое? Rake — инструмент для автоматизации сборки програмного кода, написанный на Ruby. Про Rake на хабре уже была довольно детальная статья пользователя Lass_ua (за которую, кстати, ему большое человеческое спасибо), поэтому повторяться не буду. Скажу только, что мы выбрали его за исключительную гибкость, которую не могли получить от MSBuild скриптов. Она обусловлена тем, что весь процесс сборки описывается, по сути, программой на Ruby, что открывает перед нами море возможностей.
А вот про Albacore я, к своему удивлению, не нашел ни одной статьи, хотя это уже достаточно зрелый и известный проект
Читать дальше →
Всего голосов 8: ↑5 и ↓3 +2
Просмотры 1K
Комментарии 14

Прощай XML-build… Здравствуй Rake!

Разработка веб-сайтов *Ruby *.NET *
Перевод

Введение



Сегодня (Monday, April 26th, 2010 at 8:54 am? Прим. перев.) в очередной раз я твитнул о том, что не являюсь фанатом систем сборки проектов, основанных на XML. Да, я понимаю для чего они нужны. Да, они были хороши в свое время. И да, я до сих пор использую их каждый день. Но несмотря на все это я считаю, что есть более удобные способы решить эту задачу. Наиболее частым ответом на мой твит были слова: «Ну а альтернатива-то какая?» Одна из важнейших вещей, которым научила меня жизнь, это то, что не стоит жаловаться на что-либо до тех пор пока тебе нечего предложить взамен. Так что я здесь и сейчас предложу альтернативное решение…
Читать дальше →
Всего голосов 17: ↑11 и ↓6 +5
Просмотры 3.1K
Комментарии 24

Apache Maven — веб приложение

Java *
Из песочницы
Если вы уже знаете, что такое Maven и хотите собрать простое модульное веб приложение (если нет- можно прочитать топик о нем и основы). Тема данного топика- как сконфигурировать pom.xml, добавить отдельный модуль к проекту, подключить плагины, развернуть приложение на сервере Apache Tomcat.
Читать дальше →
Всего голосов 11: ↑6 и ↓5 +1
Просмотры 8.3K
Комментарии 3

Другой IncludeJS

Разработка веб-сайтов *JavaScript *
Только не смейтесь. Наверное это самая лучшая вводная фраза — так как ну на самом деле, «Как? Ещё один сборщик скриптов?». Да, в посте пойдёт речь о ещё одной «личной наработке ». Постараюсь не просто вбросить ещё одну либу, а поразмышлять над тем, чем же это решение могло бы быть лучше миллиона других. Возможно у меня не получится донести до вас, все как есть, но я попытаюсь, а вы не судите строго. Это будет вторая статья в серии о компонентах и MVP. Если интересно можете ознакомиться с первой.

Проблема компонент


Часто компоненты/виджэты помимо скриптов состоят из других ресурсов — html разметки, стилей, картинок, компонентов. И вот, хотелось бы получить сборщик этих самых ресурсoв. Во время разработки указываете путь к директории с компонентами/библиотеками, подключаете нужное, а во время сборки html склеится в один, стили и javascript тоже, картинки скопируются в наше приложение — «Кушать подано». Прошу не пинать больно, такие «конструкторы» уже наверняка существуют, но подходящего я не нашёл — и к тому же, моей целью было не создать конкурирующий продукт, а сделать нужную мне вещь для себя.

Здесь(github) эту вещь можно скачать/глянуть на апи. Того, кому эта тема показалась интересной, и кто готов уделить 10 минут на эту неумелую писанину, приглашаю под кат.

Читать дальше →
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 1.8K
Комментарии 8

Qt SDK 4.8 статическая сборка проекта

Qt *
Из песочницы
Tutorial
image
В данном уроке я расскажу в картинках как собрать приложение статически/провести статическую линковку/ отучить ваш *.exe от библиотек Qt — кажется это всё одно и тоже по своей сути

Вступление:

Лично я всё проделывал со свеженькой на данный момент Qt SDK с сайта Nokia( Qt 4.8 и SDK 1.2.1)
Сам я полный нуб в Windows, так как всё жизнь сижу на Linux, так что всё сопровождается картинками, для таких же нубов в винде, как я сам.

Читать дальше →
Всего голосов 17: ↑10 и ↓7 +3
Просмотры 30K
Комментарии 12

Введение в CMake

Программирование *
Recovery mode
Из песочницы
Tutorial
imageCMake — кроcсплатформенная утилита для автоматической сборки программы из исходного кода. При этом сама CMake непосредственно сборкой не занимается, а представляет из себя front-end. В качестве back-end`a могут выступать различные версии make и Ninja. Так же CMake позволяет создавать проекты для CodeBlocks, Eclipse, KDevelop3, MS VC++ и Xcode. Стоит отметить, что большинство проектов создаются не нативных, а всё с теми же back-end`ами.
Читать дальше →
Всего голосов 62: ↑56 и ↓6 +50
Просмотры 376K
Комментарии 23

Как ускорить сборку 1000 VisualStudio C++ проектов

Разработка веб-сайтов *C++ *
Добрый день, уважаемые хабраюзеры.
Я решил написать этот топик, чтобы не не копировать мой комментарий к данному посту. Здесь я просто опишу наше решение

До изменений:
Полная сборка (clean) занимала около 4.5 часов
Инкрементальная сборка (continuous) занимала около 30 минут.
После изменений:
Полная сборка — около 40 минут.
Инкрементальная сборка — 2-3 минуты
Читать дальше →
Всего голосов 35: ↑24 и ↓11 +13
Просмотры 17K
Комментарии 51

Build Systems — Intro

Программирование *
Из песочницы

Что это?


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

Небольшой перечень для ясности:
  • загрузить зависимые библиотеки для вашего проекта из сети (репозитория);
  • скомпилировать классы модуля или всего проекта;
  • сгенерировать дополнительные файлы: SQL-скрипты, XML-конфиги и т.п.;
  • удалять/создавать директории и копировать в них указанные файлы;
  • упаковка скомпилированных классов проекта в архивы различных форматов: zip, rar, rpm, jar, ear, war и др.;
  • компиляция и запуск модульных тестов (unit-test) вашего проекта с результатами выполнения тестов и расчетом процента покрытия;
  • установка (deploy) файлов проекта на удаленный сервер;
  • генерация документации и отчетов.

Наиболее популярными представителями подобных систем являются Ant + Ivy, Maven.

Путаница


На хабре есть ряд статей о Maven, но, к сожалению, все они находятся в разных хабах, т.к. отдельного хаба для билд систем не существует.
Поэтому, я решил «не быть как все» и выбрать именно общий хаб «Программирование», а не «Java», «Веб-разработка» и др.

Поэтому не заинтересованный читатель может продолжить свой поиск интересного, а заинтересованный — читать далее.
Читать дальше →
Всего голосов 4: ↑2 и ↓2 0
Просмотры 6.1K
Комментарии 0

Build Systems — Local Repository

Программирование *
Продолжение предыдущего поста о системах сборки — BuildSystems — Intro

Maven


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

  • validate — проверяет корректность таинформации о проекте
  • compile — компилирует исходники, фактически это обращение к плагину «compiler»;
  • test — запуск юнит-тестов
  • package — упаковка классов в заданный формат (zip, rar, jar, war, ear и т.д.)
  • integration-test -запуск интеграционных тестов после сборки
  • verify — проверяет корректность пакета и удовлетворение требованиям качества
  • install — «установка» сборки в локальный репозиторий
  • deploy — отправка пакета на заданный сервер

Локальный репозиторий Maven

Но ни в одной из этих статей не описано, что в свою очередь, для меня было очень полезным — это настройка локального репозитория.
Читать дальше →
Всего голосов 13: ↑8 и ↓5 +3
Просмотры 15K
Комментарии 8

Fast-static — Node.js модуль сильно облегчающий жизнь

Node.JS *
При разработке js и css файлы удобнее держать в исходном виде, а при в продакшене их необходимо минизировать и соединять. Существует несколько систем сборки, однако, пользоваться ими весьма сложно и проблематично. По крайней мере я устал от них до такой степени, что решил написать свой сборщик. Получился он очень удобным, поэтому я решил с вами им поделиться.

Читать дальше →
Всего голосов 35: ↑25 и ↓10 +15
Просмотры 11K
Комментарии 31

Как я стенд для сборки с windows на wine мигрировал

Программирование *C++ *
image

Преамбула


Есть у меня несколько старых проектов, писанных на С++, которые все еще развиваю по мере сил. Казалось бы — в чем же дело? Увы, это пачка очередных плагинов под мой любимый Adobe InDesign.

И каждый раз, когда выходит новый Creative Suite, приходится портировать это дело. Что интересно, основные усилия уходят на то, чтобы собрать новую версию по новым правилам, и подогнуть инсталлятор. Потому как уж если дошел до стадии «оно компилируется», то как правило — работает. Хотя конечно есть нюансы — например в один прекрасный момент PlaceGun перестал раскладывать несколько выбранных изображений, только первое. Но об этом — в следующий раз.

И разумеется — хотелось бы это собирать под все версии и все платформы за раз, а не «открыл вижлу — собрал — закрып — повторил».

Итак, для сборки, нам нужны одновременно

  • MS VS 2005
  • MS VS 2005 sp1
  • MS VS 2008
  • MS VS 2010
  • MS VS 2012


Читать дальше →
Всего голосов 36: ↑30 и ↓6 +24
Просмотры 13K
Комментарии 32

Автоматизируем сборку системы

Блог компании Cognitive Technologies Программирование *Системы управления версиями *
Петр Лухин

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

Так чем же таким может быть интересна автоматическая сборка, какие возможности можно реализовать с ее помощью и каких результатов достичь? Попробуем разобраться.


Читать дальше →
Всего голосов 15: ↑9 и ↓6 +3
Просмотры 8.6K
Комментарии 0

Сборщик проектов на Angular и RequireJS и некоторые мысли по сборке

Разработка веб-сайтов *JavaScript *Angular *
Что самое неудобное в сборщиках проекта? Правильно! То, что нужно сборку писать самому. Изучать grunt/gulp/webpack, шаманить с плагинами, думать, как разбить конфиг на модули, когда он вырастает до нескольких сотен строчек, потом несколько месяцев радоваться, что всё работает, а когда в проекте появляется критическое изменение, опять лезть в это болото.

Мне тоже всё это порядком надоело, поэтому написал сборщик, лишенный этих недостатков. Его gulpfile.js выглядит так:

var gulp = require('gulp');
var arjs = require('arjs-builder')();

gulp.task('build', arjs.build);
gulp.task('test', arjs.test);
gulp.task('default', arjs.run);

Скопировали себе проект, и больше никогда туда не лезете, и навсегда забываете что такое сборка.
Единственное, что придется выучить, — это три команды:

gulp #компилит, поднимает локальные серверы
gulp build #билдит проект
gulp test #запускает тесты

Открываете localhost:7000 и наслаждаетесь локальной версией сайта, а в папке build
уже лежит сбилженная версия.

— А как же темплейты, их же надо в js внедрять?
— Конечно! Все внедрено как положено.
— А я стили пишу на less, sass, stylus, их же надо компилить?
— Пишите как писали, всё чудесным образом будет работать.
— А картинки в CSS инклудить?
— Так давно всё в CSS. All included как в пятизвездочном отеле.
— А разбить сбилженный файл на модули?
— Проверьте папку build. Всё по модулям? С уникальными именами, основанными на содержимом файла? Вот, а вы волновались!
— А вот еще там что-то…
— И это тоже работает.

Но как такое возможно? Это мы и рассмотрим в статье. А в конце еще расскажу, почему всё-таки RequireJS
Читать дальше →
Всего голосов 21: ↑13 и ↓8 +5
Просмотры 14K
Комментарии 38

Как скомпилировать Qgis с возможностью отладки под Windows

Qt *Геоинформационные сервисы *
Из песочницы


По работе пришлось столкнутся с тем, что нужно было узнать, какие действия происходят в ядре QGIS. QGIS (Quantum GIS) — свободная кроссплатформенная геоинформационная система. Сама система разработана с помощью инструментария Qt. Через него я и решил собрать проект. Для этого я скачал исходники qgis с официального сайта и начал сборку. На самом сайте есть руководство по сборке с помощью Qt Creator. Было прочитано множество статей про сборку и отладку QGIS (некоторые даже толковые). Но ни в руководстве, ни на каких-либо ресурсах не нашел решения тех проблем, с которыми я столкнулся. Так родилась идея написать собственное руководство по сборке QuantumGIS для Windows систем использую Qt Creator.
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 8K
Комментарии 4
1