Программирование
Программирование
qmake: переменные для указания исходных файлов
Исходные файлы задаются списками в различных специально предназначенных для этого переменных, для каждого типа файлов — своя переменная.
Программирование
qmake: встроенные функции, часть 2
Программирование
qmake: встроенные функции, часть 1
Программирование
qmake: механизм features для финальной обработки переменных
Помимо описанных ранее механизмов задать начальные значения переменных qmake предоставляет механизм для изменения переменных после обработки собственно .pro файла. Это механизм фич (features), и он является главным средством для расширения и настройки qmake под свои нужды.
Программирование
qmake: начальные значения переменных
К началу обработки собственно .pro файла многие переменные уже будут иметь какие-то значения. Рассмотрим все механизмы, с помощью которых это происходит, в порядке их влияния на конечный результат.
Программирование
qmake: модульность с помощью include
qmake позволяет включать в файл проекта другие файлы в синтаксисе .pro файла с помощью команды include
. Работает она практически аналогично директиве #include
препроцессора C/C++: содержимое указанного файла вставляется в месте написания include
.
Программирование
qmake: функции пользователя
В qmake можно определить два вида пользовательских функций: условные (conditional functions или test functions) и обычные (replace functions). Первые используются в условиях конструкций ветвления (scopes), вторые — в остальных контекстах.
Программирование
qmake: ветвление и циклы
qmake позволяет писать навороченные скрипты, средства для этого есть.
Программирование
Переменные в qmake
Название «qmake» несколько вводит в заблуждение, т.к. сам qmake ничего не билдит, он только подготавливает сборку под конкретный тулчейн. Идея заключается в том, чтобы на основании одного файла проекта qmake (*.pro) можно было автоматически создать необходимый makefile или его аналог для каждого сочетания платформы и компилятора; дальше проект собирается уже средствами конкретного тулчейна.