Программирование

Книга: Oracle Streams 11g Data Replication

Я плотно знаком с SQL, особенно с диалектом Oracle. Но вот с администрированием того же Oracle я практически не сталкивался. Я представляю себе в общих чертах как там шестеренки крутятся, но чтобы это настроить…

И вот созрела производственная нужда делать копию базы данных с одного сервера (учетная система) на другой (система для построения отчетов). Поскольку технология Oracle Streams создавалась специально для подобных случаев, ее и решено было использовать.

Чтобы использовать технологию, ее нужно понимать, так что я пошел искать инфу на тему. Поиски привели меня к книге Oracle Streams 11g Data Replication.

Сборка группы проектов в qmake с помощью SUBDIRS

Представьте себе программу, имеющую плагинную архитектуру. Qt Creator тому хороший пример. Исходники таких программ должны состоять из нескольких отдельно компилируемых проектов: собственно программы и динамических библиотек плагинов. Прибавьте к этому тест-кейсы, и вполне можем получить пару десятков взаимосвязанных проектов.

qmake: генерация файлов с помощью QMAKE_EXTRA_COMPILERS

Предположим, в проекте есть набор файлов, для которого нужно автоматически генерировать исходные или объектные файлы. Как это можно сделать? Вопрос этот отнюдь не праздный, сам же qmake в стандартной настройке должен уметь запускать препроцессоры Qt (moc, uic, rcc), которые генерируют .cpp и .h файлы для включения в проект.

qmake: как обязать make всегда вызывать qmake и зачем это нужно

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

Экскурс в Makefile

Для понимания того, что я буду рассказывать в дальнейшем, необходимо достаточно четкое представление о том, как работает make и что из себя представляет Makefile. Для тех, кто не в курсе темы и мануал курить не горит желанием, я расскажу основные моменты. Сразу предупреждаю, что в тонкости я не вдаюсь и вообще сильно упрощаю дело. Но суть я постараюсь передать.