IDE Window: Project Options/ru

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en) suomi (fi) français (fr) 日本語 (ja) русский (ru)

IDE Options - Project Options.png

menu: Project | Project Options

Опции проекта

Настройки приложения

IDE Options - Project Options - Application settings.png

Title (Заголовок)

То же, что и настройка

  Application.Title:='Some text';

Название отображается по-разному на разных платформах.

Icon (Иконка приложения)

Несколько кнопок позволяют загрузить значок из PNG-файла или установить значок по умолчанию.

  • Иконка всегда используется в Windows.
  • Значок не используется в Linux (например, в Ubuntu для назначения значка вам необходимо создать файл PNG в специальной папке, а также создать файл .desktop).
  • Значок используется в macOS, как начальный значок для Application Bundle (но лучше скопировать значок вручную, а затем указать его вручную).

Use manifest file to enable themes (for Windows) (Использовать файл манифеста для включения тем (для Windows))

Включите автоматическое создание ресурса "manifest" (внедрен в файл .exe, это не файл app.exe.manifest). Этот манифест необходим для поддержки тем (Windows XP и выше).

DPI Awareness (Поддержка DPI)

Поддержка High DPI элементов управления. Для Windows Vista+. Значения:

Поддержка Описание
False Устанавливает приложение не поддерживающим DPI.
True Устанавливает приложение с поддержкой системной DPI.
Per-monitor В Windows 8.1 устанавливает приложение с поддержкой DPI каждого монитора.
На Windows Vista из-за Windows 8 приложение не поддерживает DPI.
True/PM В Windows 8.1 устанавливает приложение с поддержкой DPI каждого монитора.
На Windows Vista из-за Windows 8 устанавливает приложение с поддержкой системной DPI.

Execution Level (Уровень исполнения)

Вы можете выбрать уровень прав доступа (Windows Vista +), который требуется вашей программе. Значения:

Права доступа Описание Рекомендации
asInvoker Приложение работает с тем же правом доступа,
что и родительский процесс.
стандартное пользовательское приложение.
highestAvailable Приложение работает с самыми высокими привилегиями,
которые может получить текущий пользователь.
приложения в смешанном режиме.
requireAdministrator Приложение работает только под администратором и требует,
чтобы приложение запускалось с правами полного доступа администратора.
приложения только для администраторов. Внутренние
повышенные права не нужны. Приложение уже запущено с повышенными правами.

UI Access (Доступ к пользовательскому интерфейсу)

Документация MS: "Приложения, которые не предоставляют специальных возможностей, должны устанавливать этот флаг в false. Приложения, которые необходимы для ввода данных в другие окна на рабочем столе (например, на экранной клавиатуре), должны установить это значение в true".

Text fields (Текстовые поля)

Кнопка позволяет изменить строковые свойства манифеста. На данный момент это: название проекта, описание проекта. Некоторые из этих значений используются ОС в диалоговом окне отчета о сбое (и, возможно, в журнале событий).

Use Application Bundle for running and debugging (for Darwin) (Использовать Application Bundle для запуска и отладки (для Darwin))

Это необходимо для правильного выполнения приложений MacOS. При установке этой опции IDE запускает/отлаживает Application Bundle (папка с расширением .app) вместо реального исполняемого файла.

Create Application Bundle (Создать Application Bundle)

Нажатие на эту кнопку создает Application Bundle с символической ссылкой на исполняемый файл для этого проекта.

Для получения дополнительной информации о Application Bundles см. Creating the Apple resource files.

Forms (Формы)

Project Options - Forms.png

Вы можете создавать формы при запуске проекта. Это так же, как добавление

Application.CreateForm(FormX,TFormX);

строки к коду.

Примечание: Формы создаются автоматически, но автоматически не отображаются. Они отображаются, если их свойство Visible установлено в значение true. Например, переменная формы установлена, поэтому вы можете написать Form1.Caption: = 'Some text';. Чтобы показать такую форму, добавьте строку Form1.Show; или Form1.ShowModal;

FPDoc Editor (Редактор FPDoc)

Project Options - FPDoc Editor.png

Путь к файлам FPDoc

Содержит пути к файлам FPDoc с документацией по проекту. Файлы FPDoc представляют собой простые *.xml файлы и создаются встроенным редактором FPDoc или автономным приложением-редактором документации lazarus (поставляется с lazarus в doceditor/lazde.lpi).

Например: Установите его в [папку] "docs". Затем среда IDE выполнит поиск и создаст файлы fpdoc в подпапке "docs" каталога вашего проекта.

Session (Сеанс работы)

Project Options - Session.png

Save editor info for closed files (Сохранять информацию редактора для закрытых файлов)

Среда IDE сохраняет настройки редактора (положение каретки, верхняя строка, индекс страницы, закладки, история переходов) даже для закрытых файлов и восстанавливает их при повторном открытии файла. По умолчанию: включено.

Save editor info only for project files (Сохранять информацию редактора только для файлов проекта)

В среде IDE для каждого файла сохраняются различные параметры, такие как параметры редактора, параметры запуска файла, имена ресурсов. Обычно среда IDE сохраняет эту информацию вместе с информацией о проекте (файл .lpi или .lps). Включите это, чтобы не хранить такие значения на диске. По умолчанию: true.

Save session information in (Сохранять информацию о сеансе работы в)

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

  • Save in .lpi file (Сохранять в файле .lpi) - файл будет часто меняться.
  • Save the .lps file in the project directory (Сохранять файл .lps в каталоге проекта) - полезно, если файл .lpi находится под софтом контроля версий (например, cvs, svn).
  • Save in IDE config directory (Сохранять в каталоге конфигурации IDE (прим.перев: напр., ~/.lazarus или %USERPROFILE%\AppData\Local\lazarus)) - полезно, если директория проекта доступна только для чтения
  • Do not save any session info (Не сохраняйте информацию о сессиях) - полезно для параноиков.

Version Info (Информация о версии)

version info options.png

Диалог с кнопкой Test всегда доступен для использования

Вы можете включить информацию о версии файла в исполняемый файл/библиотеку. В Windows это будет отображаться в свойствах файла.

Прим.перев.: Чтобы задействовать функционал, описанный выше, необходимо пометить чекбокс "Include version info in executable". Если вы хотите, чтобы номер сборки нарастал автоинкрементом, поставьте галочку возле "Automatically increase build number".

Light bulb  Примечание: Автоинкрементация "заработает" только в том случае, если компиляция проекта будет осуществляться по Shift+F9. Сборка/запуск исполняемого файла по другим сочетаниям клавиш автоматически увеличивать номер сборки не будет.

Resources

Project Options - Resources.png

i18n

i18n.png

i18n расшифровывается как Internationalization. Когда этот параметр включен, среда IDE автоматически создает и обновляет файлы переводов (.po-файлы) для ваших разделов строк ресурсов и файлов lfm.

Для [получения] более подробной информации см. здесь.

Прим.перев.: Для русскоязычной аудитории также могу посоветовать статью с примерами по интернационализации приложения.

Включение i18n

Позволяет создавать .po файлы для .rst файлов в заданном выходном каталоге.

Create/update .po file when saving a lfm file (Создавать/обновлять .po файл при сохранении файла lfm)

Когда этот параметр включен, среда IDE добавляет строки типа TTranslateString формы/датамодуля в файл unitname.po в каталоге вывода po.

Вы можете отключить их создание для отдельных форм через инспектор проекта.

Исключенные: Identifiers (идентификаторы) и Originals (Оригиналы)

Начиная с Lazarus 1.8, фрейм i18n содержит два поля "Identifiers" и "Originals", чтобы исключить определенные строки из созданных po-файлов. Например, предположим, что заголовок кнопки назначен специально объявленной строке ресурса. В этом случае заголовок, видимый в инспекторе объектов, устарел и может быть исключен путем ввода его текста в столбце "Originals"; в качестве альтернативы строка tform1.button1.caption может быть введена в список "Identifiers" (это предполагает, что кнопка называется Button1 и находится в экземпляре TForm1). Обратите внимание, что исключенные записи не удаляются из файлов po автоматически. Вы должны выполнить Clean up and Build ("Очистка и сборка") [проекта], чтобы воссоздать необходимые файлы.

Miscellaneous (Разное)

Project Options - Miscellaneous.png

Main unit is Pascal Source (Основной модуль - исходник Паскаля)

Основным исходником является корневой модуль проекта. Обычно это файл .lpr. Установите значение в true, если основным источником является исходный код на паскале.

Main Unit has Uses Section containing all Units of project (Основной модуль имеет раздел Uses, содержащий все модули проекта)

Если этот параметр включен, среда IDE будет обновлять раздел uses каждый раз, когда модуль добавляется или удаляется из проекта.

Main Unit has Application.CreateForm statements (Основной модуль имеет операторы Application.CreateForm)

Если это включено, IDE будет добавлять/удалять операторы Application.CreateForm(FormX, TFormX); для форм. Если это отключено, он будет игнорировать эти операторы (без удаления, без добавления, без изменений).

Main Unit has Application.Title statement (Основной модуль имеет оператор Application.Title)

Если это включено, IDE будет добавлять/удалять операторы Application.Title:='Some Text'. Если заголовок содержит значение, он добавит строку, если заголовок будет пуст, он удалит его. Если заголовок изменится, он добавит/удалит/изменит оператор. Если он отключен, он будет игнорировать эти операторы (без удаления, без добавления, без изменений).

Project is runnable (Проект является запускаемым)

Проект можно запустить в отладчике.

Always build (even if nothing changed) (Всегда собирать (даже если ничего не изменилось))

Если этот параметр отключен, среда IDE проверяет перед запуском изменения и, если ничего не изменилось, пропускает этап компиляции. Lazarus проверяет параметры компилятора, исполняемый файл компилятора (filedate и filename), как указано в файле projectname.compiled, и проверяет даты файлов, перечисленных в инспекторе проектов. Он не проверяет файл fpc.cfg и не все файлы в каталогах проекта (только те, которые перечислены в инспекторе проектов) и не проверяет все используемые модули. Таким образом, он будет игнорировать изменения в используемых модулях, не перечисленных в инспекторе проектов, даже если он используется проектом и открыт в редакторе исходного кода.

Resource type of project (Тип ресурса проекта)

При создании новой формы, модуля данных или фрейма создается файл .lfm. Этот параметр определяет, как файл .lfm добавляется в исполняемый файл, и определяет, как хранятся ресурсы проекта. Начиная с версии 0.9.29 возможны два варианта:

  • lrs include file (включаемый lrs-файл) - Для этой опции требуется один включаемый файл на модуль и соответствующая директива включения {$I unit1.lrs} в разделе initialization модуля. Этот параметр поддерживается на всех платформах, и среда IDE автоматически создает и обновляет необходимый файл .lrs.
  • FPC resources (ресурсы FPC) - Эта опция требует как минимум FPC версии 2.4.0 (или выше) и директивы ресурса {$R *.lfm} в каждом модуле, который требует ресурсов. Скорость загрузки и размер исполняемого файла аналогичны параметру .lrs. Основное преимущество ресурсов FPC заключается в том, что исходный файл меньше (поскольку файлы .lrs не создаются).

Этот параметр проекта влияет на то, как хранятся ресурсы проекта, а также какую директиву исходного кода использовать (хотя директивы вставляются в исходный код модуля для вас). Если вы выберете опцию "lrs include file", тогда среда IDE сохранит ресурсы значков в файле .lrs (и - только на платформе Windows - включает файлы .rc, если они есть). Если вы выберете "FPC resources", то среда IDE сохранит ресурсы в файлах .rc на всех платформах. Сначала среда IDE автоматически ищет ресурс значка проекта в любом ресурсе .lrs. Если ресурс значков не найден или файл .lrs отсутствует, он выполняет поиск в ресурсах fpc проекта.

Опции компилятора

Пути (Paths)

Compiler Options - Paths
  • Относительные пути дополняются путём от файла проекта или каталога пакета (где расположен файл .lpi/.lpk).
  • Эти пути добавляются в пути поиска. Они не заменяют существующие пути.
  • В среде IDE есть один набор путей поиска для каждого пакета / проекта. Это означает, что пакет может иметь пути поиска, отличные от активного проекта.
    «Набор путей поиска» относится к пути поиска объекта, включает в себя путь поиска, путь поиска источников, ...
  • Если пакет или проект использует другие пакеты, со своими путями поиска. То эти "унаследованные" пути можно найти на закладке #Унаследованные (Inherited).
    • Если вы не хотите использовать путь поиска, унаследованные от используемого пакета, вы должны изменить параметры компилятора используемого пакета.
  • Пользуясь системой пакетов Lazarus вам практически не придётся устанавливать пути поиска вручную.
  • Компилятор FreePascal имеет собственный файл настроек (по умолчанию /etc/fpc.cfg) который определяет набор путей поиска модулей. Например для нахождения модулей FPC из RTL или FCL вроде 'classes', 'sysutils'. Не добавляйте туда пути поиска к исходным файлам (.pas, .inc).
  • Пути поиска разделяются точкой с запятой ';'.
  • Начальные и конечные пробельные символы игнорируются и автоматически убираются IDE. IDE нормализует пути поиска и добавляет разделитель пути (windows: /, все остальные: \). Пути каталога автоматически конвертируются в формат подходящий текущей операционной системе при открытии файла проекта .lpi или .lpk.
  • Вы можете использовать макросы. Например $(TargetCPU). Подробнее смотрите IDE Macros in paths and filenames.
  • В среде IDE есть один набор настроек путей для каждого каталога:
    • Каждый каталог в пути поиска модуля проекта получает все пути поиска проекта.
    • Каждый каталог в пути поиска модуля пакета получает все пути поиска пакета.
    • Другие каталоги получают пути поиска проекта. Если путь поиска проекта содержит '.', каталог также увидит каталог проекта.
  • Использование "uses unitname in 'filename'" не влияет на любой путь поиска.

Другие модули (Other Unit Files)

Это пути поиска для модулей паскаля (.ppu, .pp, .pas, .p) вашего проекта или пакета. Посмотрите заголовок окна, чтобы узнать какого. Этот путь будет передан компилятору FreePascal, который добавит их к своим Unit Path.

  • Добавляя и убирая модули из проекта/пакета, IDE спросит вас о необходимости изменить пути поиска.
  • Этот путь содержит каталоги вашего проекта (или вашего пакета), который содержит файлы .pas, .pp или .p.
  • Если вы хотите использовать одни и те же модули между разными проектами, создайте пакет для них. Это просто.
Light bulb  Примечание: Не добавляйте каталоги использованный пакетов в этот путь. Это повлечёт за собой то, что FPC скомпилирует файлы .ppu включенного пакета и поместит их в ваш каталог проекта. Вы столкнётесь с множественными версиями .ppu и получите странные 'Can not find unit' ошибки.
Например: не добавляйте никакие FPC или LCL каталоги исходников в этот путь.

Включаемые файлы (Include Files)

Это путь поиска для включаемый файлов (таких как файлы .inc, .lrs). Этот путь передаётся компилятору FreePascal Compiler, который добавляет их к своим путям поиска Включаемых файлов (Include Path), которые используются в директивах включения вроде {$I filename.inc} или {$INCLUDE filename.inc}.

Другие исходные коды (Other sources)

Это пути поиска для модулей исходного кода паскаль, которые используются только IDE, но не компилятором.

Например: У вас имеется каталог с исходниками и каталог с соответствующими файлами .ppu. Вы добавляете каталог с .ppu в пути 'Другие модули (Other Unit Files)' а каталог с .pas в 'Другие исходные коды (Other sources)'. Таким образом компилятор будет использовать файлы .ppu и не будет пытаться компилировать их каждый раз. В то же самое время, IDE найдёт файлы с исходниками и будет работать функция Найти объявление (Find Declaration).

Библиотеки (Libraries)

Это пути поиска для библиотек (файлов .dll или .so или .a).

Каталог вывода модулей (Unit output directory)

Это каталог в который компилятор будет выводить файлы компиляции вроде .ppu, .o, .rst файлов (он передает это переключателю компилятора -FU). Если вы используете директиву $R для файлов lfm, она также скопирует туда файлы lfm.

Популярным примером использования является выходной каталог с именем units, а затем дополнительный подкаталог для целевого CPU и целевой OS. Например:

 units/$(TargetCPU)-$(TargetOS)

Примечание:

  • Если выходной каталог модуля пуст, Lazarus не 'передаст переключатель -FU компилятору. Затем компилятор будет использовать переключатель -FE. См.Project target file
  • Пакеты обычно наследуют свой выходной каталог другим пакетам с помощью параметров 'usage'. Вам не нужно добавлять пути к пакетам вручную в ваш проект.
  • Если выходной каталог пакета пуст, макрос $(PkgOutDir) также [будет пустым] и не будет наследоваться для нисходящих пакетов и проектов. Используйте точку ".", чтобы определить текущий каталог.

Имя целевого файла

Light bulb  Примечание: только проекты имеют это. Эта опция недоступна для пакетов.

Установите здесь имя файла сгенерированного исполняемого файла. Если файл является относительным, он будет расширен каталогом проекта (где находится файл .lpi). Если файл не указан, исполняемый файл помещается в выходной каталог модуля и имеет имя основного исходного файла (обычно файла .lpr) без расширения. Если расширение не указано, добавляется расширение по умолчанию для платформы (например, «.exe» для MS Windows, но не для других). Когда новый проект еще не был сохранен и собран, среда IDE сохраняет файлы в тестовом каталоге. Относительные файлы затем относятся к этому каталогу.

Lazarus передает переключатель компилятора

  • -o определяет имя целевого файла.
  • -FE если имя целевого файла отсутствует в каталоге проекта (где находится файл lpi)
  • -FU если выходной каталог устройства не пуст

Если имя целевого файла находится в другом каталоге (не в каталоге файла .lpi), Lazarus передаст компилятору ключ -FE, чтобы убедиться, что вторичные файлы, такие как .o и .rst помещаются в один и тот же каталог. Если вы очистили unit output directory(каталог вывода модуля), то среда IDE не передаст переключатель -FU, и компилятор сгенерирует файлы .ppu/.o для модулей тоже в целевом каталоге.

Если вы очистили unit output directory(каталог вывода модуля) и целевой файл проекта находится в каталоге проекта, то ни -FU ни -FE не передается компилятору, и компилятор будет работать с Delphi-совместимым файлом и генерировать файл «.ppu/.o» для каждого модуля в том же каталоге, что и модуль.

Применение конвенций

Включите это, чтобы применить различные соглашения об именах в зависимости от целевой платформы.

  • Windows: Если это программа, она добавляет расширение .exe; если это библиотека, к ней добавляется «.dll».
  • Unix (например, Linux, BSD, Darwin/macOS): если это библиотека, то имя в нижнем регистре, и если имя не начинается с 'lib', оно предшествует 'lib'.
  • Linux, BSD: Если это библиотека, то добавляется '.so'.
  • Darwin/macOS: Если это библиотека, то добавляется '.dylib'.

Examples

Каталог вывода модуля Имя целевого файла Сгенерированные варианты Примечание
lib/$(TargetCPU)-$(TargetOS) пустой -FElib\x86_64-win64 -olib\x86_64-win64\project1.exe все выходные файлы помещаются в lib\x86_64-win64\
lib foo -FUlib -FE. -ofoo.exe все выходные файлы модуля, такие как ppu и o, помещаются в lib\, выходные файлы программы помещаются в базовый каталог (где находится lpi)
lib foo/bar -FUlib -FEfoo -ofoo\bar.exe все выходные файлы модуля, такие как ppu и o, помещаются в lib\, выходные файлы программы помещаются в foo
пустой пустой -oproject1.exe файлы ppu помещаются в файлы .pas, например, src\unit1.pas создаст src\unit1.ppu
пустой foo -ofoo.exe файлы ppu помещаются в файлы .pas
пустой . (одна точка и применение соглашений отключены) файлы ppu помещаются в файлы .pas, выходной файл может быть любым, как определит по умолчанию компилятор

Дополнения к путям отладчика (Debugger path addition)

Эти каталоги добавляются в пути поиска отладчика IDE, когда он ищет исходники (модули и файлы включения).

Библиотека виджетов LCL (LCL widget type)

Это выбор используемого набора виджетов LCL. Обычно используется набор виджетов по умолчанию. Если вы хотите попробовать другой набор виджетов, просто выберите его.

  • Набор виджетов по умолчанию - это набор виджетов для текущего проекта.
  • Набор виджетов по умолчанию зависит от текущей операционной системы. Например: win32 для windows 2000.
  • Вы не должны устанавливать набор виджетов для пакетов, поскольку проект не сможет этого изменить. Устанавливайте его для пакетов только если этот пакет может использоваться лишь с одним конкретным набором виджетов LCL.

Настройка и целевая платформа (Config and Target)

CompilerOptions-Config and Target.png

Режимы сборки (Build modes)

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

Только проекты имеют режимы сборки. Пакет не имеет режимов сборки.

Режимы сборки позволяют определять sets of compiler options (наборы опций компилятора) и быстро переключаться между этими наборами. Например, вы можете определить mode (режим) для отладки, который компилирует ваш проект с проверкой диапазона, а ваш режим по умолчанию - нет.

Light bulb  Примечание: Если вы хотите передать некоторые параметры в зависимости от платформы, например, передать некоторые дополнительные параметры компоновщика в macOS, пожалуйста, посмотрите на макросы IDE.

Как добраться до этого диалога: Project(Проект) / Project Options(Настройки проекта) / Compiler Options (Настройки компилятора). Убедитесь, что "Build Modes" (Режимы сборки) включены.

EditProjectBuildModes.png

Нажмите кнопку «...» справа, чтобы добавить/удалить/переименовать режимы сборки:

ListOfBuildModes1.png

Сетка содержит список режимов сборки с тремя столбцами.

Первый столбец показывает, какой режим в данный момент активен, он отмечен. Когда вы активируете другой режим, все страницы параметров компилятора будут загружать настройки нового режима, включая значения макросов на странице режимов сборки. Всегда активен только один режим, и вы можете редактировать свойства только одного режима за раз. Какой режим активен, он хранится в файле сеанса (lps). Режим по умолчанию - первый режим.

Если ваш проект хранит сеанс в отдельном файле lps (см. Project options(Параметры проекта) / Session(Сеанс работы) / Save session info in(Сохранять сведения о сеансе работы в)), вы можете сохранить дополнительные режимы в файле сеанса lps, чтобы у каждого разработчика был свой набор режимов. В этом случае второй столбец показывает, где хранится режим, в lpi или lps (в сеансе). Имейте в виду, что первый режим является режимом по умолчанию для проекта, поэтому он должен храниться в проекте, а не в файле сеанса.

Последний столбец - это название режима. Это произвольная строка, поэтому вы можете дать ей короткое имя или целое предложение.

  • Кнопка плюс добавляет новый режим, дублируя текущий активный и активируя его.
  • Кнопка минус удаляет текущий выбранный режим. Должен быть хотя бы один режим. Если вы удалите первый режим, который является режимом по умолчанию, второй режим автоматически становится режимом по умолчанию.
  • The up, down buttons allows to reorder the modes.
  • Кнопки вверх, вниз позволяют изменить порядок режимов.

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

Light bulb  Примечание: При открытии нового проекта со старой IDE (<0.9.31) вы увидите только режим по умолчанию. Если вы сохраните проект со старой IDE, вы потеряете все остальные режимы, все макросы и условия.

Опция «Режимы сборки» существует с версии 0.9.31.

Добавление режимов release(окончательный релиз) и debug(отладка)

Наиболее распространенной задачей для проектов будет добавление простых режимов сборки окончательного релиза(release) и отладки(debug). Не забывайте всегда использовать режим сборки debug(отладки), потому что отладка не будет работать в режиме сборки окончательного релиза, а затем использовать режим сборки окончательного релиза только в окончательной версии приложения.

  1. Перейдите к Project(Проект) / Project Options(Параметры проекта) / Compiler Options(Параметры компилятора)
  2. Включите "Build Modes"(Режимы сборки) вверху. Появится комбобокс для режимов сборки и кнопка редактирования.
  3. Нажмите на кнопку с надписью «...», чтобы открыть диалог режимов сборки.
  4. Нажмите на кнопку "Create Debug and Release modes"(Создать режимы отладочной и конечной сборки). Это добавит два режима сборки "Debug" and "Release".
  5. Закройте диалоговое окно

BuildModesAddedDebugAndRelease1.png

Каждый режим сборки представляет собой полный набор параметров компилятора. Вы можете легко переключаться между режимами сборки либо с помощью комбинированного списка в верхней части параметров проекта, либо на главной панели инструментов IDE с помощью кнопки со стрелкой справа от кнопки Compile(Скомпилировать).

BuildModeSelectorInIDEToolBar1.png

После того, как мы выберем режим сборки Debug, все конфигурации в диалоге параметров проекта будут привязаны к этому режиму сборки. Вот страница по умолчанию Debugging(Отладка) в режиме Debug:

BuildModeDebugPageDebugging.png

Когда мы выбираем режим сборки Release, все конфигурации в диалоге параметров проекта будут привязаны к этому режиму сборки. Вот страница по умолчанию Debugging(Отладка) в режиме Release:

BuildModeReleasePageDebugging.png

Выбор активного режима сборки

Можно выбрать активный в настоящий момент режим сборки либо в диалоговом окне "Project Options"(Параметры проекта), либо в главном окне IDE, в специальной кнопке с выпадающим списком, который появится только в том случае, если проект имеет более одного режима сборки, как можно увидеть на этом скриншоте:

Selecting Build Mode Main IDE Windows.png

Макросы проекта

См. здесь, чтобы добавить собственные макросы или переопределить макросы LCLWidgetType.

Обработка (Parsing)

Смотрите Free Pascal - Online documentation

Режим синтаксиса (Syntax mode)

Выберите режим по умолчанию. Если модуль не содержит директивы {$mode somemode}, выбранный режим будет использоваться по умолчанию.

Смотрите Free Pascal - Online documentation


Параметры синтаксиса (Syntax Options)

  • Операторы в стиле C (C Style Operators) (*=, +=, /= and -=)
  • Включить код Assert (Include Assertion Code)
  • Разрешить LABEL и GOTO (Allow LABEL and GOTO)
  • INLINE в стиле C++ (C++ Styled INLINE)
  • Макросы в стиле C (C Style Macros (global))
  • Конструктор должен быть init (деструктор должен быть done) (Constructor name must be init (destructor must be done))
  • Ключевое слово Static в объектах (Static Keyword in Objects)
  • Использовать строки Ansi (Use Ansi Strings)

Стиль ассемблера (Assembler style)

  • -Rdefault по умолчанию
  • -Ratt AT&T
  • -Rintel Intel

Код (Code)

Смотри Free Pascal - Online documentation

Связывание (Linking)

CompilerOptions-Compilation and Linking.png

Для настройки отладки см. Настройки проекта


Отладка(Debugging)

Compiler Options - Debugging

Вывод(сообщения) (Verbosity (Messages))

Compiler Options - Verbosity

Смотри Free Pascal - Online documentation. Примечание: добавление большого количество сообщений сильно замедляет процесс компиляции даже если большинство сообщений будет спрятано в окне сообщений.

Сообщения (Messages)

Compiler Options - Messages

(Появилась в версии 0.9.27) Эта страница позволяет контролировать какие сообщения компилятор будет показывать в Notes, Hints и Warnings. Необходимо, чтобы компилятор FP поддерживал переключатель -m (версия 2.2.2 или выше).

Также возможно указать язык текста сообщений (файл должен быть в кодировке Utf-8), чтобы видеть сообщения компилятора переведёнными без необходимости модифицировать файл конфигурации компилятора fpc.cfg.

Пример перевода файла сообщений можно найти ${LazarusDir}/fpc/${FPCTARGET}/msg, например C:\Lazarus\fpc\2.2.3\msg

Пользовательские параметры

CompilerOptions-Custom Options.png

Обычно вы определяете здесь некоторые параметры компилятора. Например, вы можете определить в режиме сборки что-то вроде

-dRELEASE

Затем в режиме сборки будет скомпилирован только код, окруженный {$IFDEF RELEASE} {$ENDIF}. Это можно использовать в качестве альтернативы системе Macro, особенно если вы "переехали" с Delphi.

Пробелы в начале и в конце удаляются. Разрывы строк заменяются пробелом перед передачей компилятору. Ведущий пробел добавляется автоматически.

Среда IDE заменяет макросы IDE в пользовательских параметрах и анализирует параметры. Флаги, такие как -dRelease, передаются в codetools, поэтому редактор исходного кода знает их немедленно.

Warning-icon.png

Предупреждение: Не добавляйте параметры пути -Fu, -Fi, -Fl, -FU, -o. Вместо этого используйте поля на странице Пути. Среда IDE игнорирует пути в пользовательских параметрах. Она не обновляет их при добавлении или удалении файлов или при открытии проекта на другом хосте.

Дополнения и перекрытия

Страница «Дополнения и перекрытия» существует с 1.1.

Обзор

Страница содержит матрицу вариантов сборки.

CompilerAdditionsAndOverrides1.png

Параметры «Пользовательские параметры», «Каталог вывода» и «Макросы IDE» в любой цели можно включать и выключать отдельно для каждого режима сборки.

Таким образом, для каждой цели есть Матрица с включающимися флажками.

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

Справа от каждой строки любой матрицы дается описание типа (например, «Пользовательский», «OutDir» или «Макрос IDE») и значение включаемой опции.

Типы вариантов сборки

Вариант сборки может

  • установить IDE macro(макрос IDE). Значение должно иметь вид MacroName:=Value. Например, LCLWidgetType:=qt. Вы можете использовать макросы IDE в значении, но не в имени.
  • добавить некоторые пользовательские параметры компилятора через Custom (например, добавить -O3). Вам не нужен ведущий пробел. Это добавляется автоматически. См. примечания по пользовательским параметрам.
  • переопределить выходной каталог (-FU) через OutDir. Обратите внимание, что при использовании относительного каталога, такого как lib/$(TargetOS), добавляется рабочий каталог цели, а не каталог проекта. Например, когда опция переопределяет выходной каталог пакета SynEdit, тогда выходной каталог synedit изменяется на <lazarusdir>/components/synedit/lib/$(TargetOS).

Вы можете создать новую опцию, нажав кнопку Add(Добавить) над матрицей. Вы можете изменить тип опции в любое время.

Включение параметров сборки в режимах сборки

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

Обратите внимание, что включение параметров в режимах сборки сеанса (хранящихся в .lps) не изменяет файл lpi. Эта информация хранится в файле lps. Вот почему эти чекбоксы имеют желтый фон.

Текущий активный режим и параметры сборки имеют зеленый фон.

Когда вы переименовываете режим сборки, также переносятся включенные состояния опций lpi и lps. Включенные состояния параметров IDE *не* переносятся. Например, когда опция IDE включена для режима debug и вы переименовываете режим в Test, тогда опция IDE все еще включена для режима debug для других проектов.

Место хранения настроек сборки

Настройка может быть сохранена в

  • проекте (.lpi)
  • сеансе работы проекта (.lps)
  • или в конфигурации IDE (environmentmentoptions.xml) - тогда он доступен для всех проектов

Параметры сборки применяются сверху вниз. Это означает, что сначала параметры сохраняются в IDE, затем параметры сохраняются в .lpi и, наконец, параметры сохраняются в сеансе работы.

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

Light bulb  Примечание: Опция в конфигурации IDE для режима debug применяется кj всем проектам с этим режимом. Например, когда вы открываете сторонний проект с режимом сборки debug, опция будет применена и предупреждения не будет. Это может сломать проект.

Цели параметров сборки

Параметры сборки могут быть применены к проекту и/или к одному или нескольким пакетам. Вы можете ограничить область действия параметров сборки, чтобы они применялись только к определенным целям (проектам, пакетам). Параметры сборки сгруппированы по Targets(Целям). Targets(Цели) не чувствительны к регистру и допускают звездочку "*" для любого количества произвольных символов и знак вопроса "?" за один произвольный символ. Вы можете исключить цели, добавив минус "-". Чтобы отредактировать цель, нажмите позади 'Targets:'.

Примеры целей:

  • *: Звездочка "*" - значит подходит всем. Опция применяется к проекту и всем пакетам. Это по умолчанию.
  • LCL,Lazutils: Применимо только к пакетам "LCL" и "LazUtils"
  • *dsgn,-syneditdsgn: Применимо ко всем пакетам, оканчивающимся на "dsgn", исключая "syneditdsgn".
  • #project: Это соответствует самому проекту. Опция применяется только к проекту, а не к используемым пакетам.
  • #ide: Это соответствует IDE. Опция применяется только к IDE, а не к установленным пакетам.

Вы можете иметь любое количество целей. Вы можете создать новую цель с помощью кнопки Add(Добавить) над матрицей. Вы можете перемещать цели с помощью кнопок вверх и вниз в другие хранилища. Все параметры сборки целевой группы также перемещены.

targets project options.png

Цвета в матрице

  • Зеленый: текущий активный режим и опции
  • Желтый: сохраненные в сеансе работы без изменения lpi
  • Красный: ошибка синтаксиса

Примеры для дополнений и перекрытий

  • Добавьте параметры компилятора к пакетам, не затрагивая lpk. Например, вы можете добавить проверку диапазона -Cr с помощью опции custom в разделе Targets: *.
  • Измените каталог вывода пакетов без затрагиванияя lpk. Например, путем добавления OutDir в поле Targets: *.
  • Определите макросы IDE только для некоторых пакетов или только для проекта. Например, скомпилируйте LCL с флагом -dQT_NATIVE_DIALOGS, добавьте новую цель Targets: LCL, а затем добавьте пользовательский параметр.
  • Добавьте параметры компилятора ко всем проектам с режимом сборки «debug», путем добавления параметров в группу хранения IDE.
  • Измените каталог вывода пакета(ов) для всех проектов с режимом сборки «релиз». Добавьте опцию сборки к опциям, хранящимся в IDE.
  • Объедините вышеперечисленное с сессиями, и вы сможете изменять сторонние проекты и пакеты, не касаясь их.

Изменение LCLWidgetType в версии 1.1 и выше

Этот параметр доступен только тогда, когда проект использует пакет LCL

Перейдите в Project(Проект) > Project Options(Параметры проекта) > Comiler Options(Параметры компилятора) > Additions and Overrides(Дополнения и перекрытия) > Set(Прсивоить) "LCLWidgetType".

SetLCLWidgetTypeIn1 7.png

Добавление флага в проект и все пакеты

Light bulb  Примечание: Это изменяет проект (.lpi). Оно не изменяет файлы пакета (.lpk), но влияет на них при сборке проекта. Это также влияет на сборку IDE.

Перейдите к Additions and Overrides(Дополнениям и перекрытия). Нажмите кнопку Add(Добавить) и выберите Custom Option(Пользовательский параметр):

addflagtoprojectsandpackages1.png

Теперь вы должны увидеть "Targets: *"(Цель: *) и новую опцию [Custom]. Она включена для текущего активного режима сборки и отключена для всех остальных. Targets: *(Цель: *) означает, что это относится к проекту и всем пакетам.

addflagtoprojectsandpackages2.png

Нажмите на ячейку [справа от] опции [Custom] и добавьте свой флаг. Например: -dSomeFlag.

addflagtoprojectsandpackages3.png

Вот так.

Добавление флага ко всем проектам и пакетам

Флаг из предыдущего абзаца активен только при загрузке проекта. Чтобы установить флаг для всех проектов, выберите опцию и нажмите кнопку «вверх» (зеленая стрелка вверх). Это перемещает параметр в группу "Stored in IDE"(Хранящиеся в IDE).

addflagtoallprojectsandpackages1.png

Light bulb  Примечание: В среде IDE используются параметры режима сборки "default"(по умолчанию).

Изменение каталога вывода проекта и всех пакетов

Перейдите к Additions and Overrides(Дополнения и перекрытия). Нажмите кнопку Add(Добавить) и выберите Output Directory (-FU)(Каталог вывода (-FU)).

AddsAndOverridesOutDir1.png

Теперь вы должны увидеть "Targets: *"(Цели: *) и новый параметр «OutDir» со значением по умолчанию lib/$(TargetCPU)-$(TargetOS)/$(BuildMode). Он включен для текущего активного режима сборки и отключен для всех остальных. "Targets: *"(Цели: *) означает, что это относится к проекту и всем пакетам.

AddsAndOverridesOutDir2.png

Например: щелкните ячейку [справа от параметра OutDir] и измените ее [значение] на lib/$(FPCVer)/$(TargetCPU)-$(TargetOS). Это заставит IDE использовать разные каталоги вывода для каждой версии компилятора Free Pascal.

Если вы хотите использовать одни и те же выходные каталоги для всех ваших проектов, вы можете поместить опцию в [раздел] Stored in IDE(Хранящиееся в IDE). Щелкните в ячейке [справа от] параметра OutDir, чтобы выбрать строку. Затем используйте кнопку «Вверх» (стрелка вверх), чтобы переместить параметр.

Если вы хотите применить каталог вывода для всех пакетов, но не для проектов, измените значение Targets(Цели) с * на *,-#project.

AddsAndOverridesAllPkgOutDir1.png

Light bulb  Примечание: Если пакет не поддерживает ваш каталог вывода, добавьте к Targets(Цели) значение -packagename. Например: *, - chmhelp.

Если вы хотите поместить выходные файлы пакета в подкаталоги проекта, измените OutDir на $(ProjPath)/lib/$(PkgName)/$(TargetCPU)-$(TargetOS)/$(BuildMode). Обратите внимание на использование макросов $(ProjPath) для каталога проекта и$(PkgName) для предоставления каждому пакету своего собственного каталога.

OutputDirectoryOFAllPackagesIntoProjectDirectory.png

Например, если каталог вашего проекта - C:\pascal\myapp, то пакет LCL будет скомпилирован в C:\pascal\myapp\lib\LCL\i386-win32\default.

Добавление флага в один пакет без изменения самого lpk

В этих примерах опция -vm4104 добавляется в пакет lazreport.

  • Перейдите в Additions and Overrides(Дополнения и перекрытия).
  • Нажмите на кнопку Add(Добавить) и выберите "New Target"(Новая цель). Вставляется новая строка с «Targets: *»(Цели: *)
  • Нажмите на новую строку сразу [справа от] "Targets:"(Цели:). * теперь становится редактируемым.
  • Измените [текущее значение] на имя пакета. В этом примере: lazreport. Нажмите Enter или нажмите на другую строку, чтобы закончить редактирование.
  • При наведении указателя мыши на новую строку вы должны увидеть подсказку Apply to all packages matching the name "lazreport"(Применить ко всем пакетам с именем «lazreport»).
  • Click on the Add button and select "Custom Option". A new row is inserted below the row Targets: lazreport. Note: You can move rows using the green arrows
  • Нажмите кнопку Add(Добавить) и выберите "Custom Option"(Пользовательский параметр). Новая строка вставится ниже строки Targets: lazreport(Цели: lazreport).
Light bulb  Примечание: Строки можно перемещать с помощью зеленых стрелок.
  • Нажмите на новое пустое значение и измените его значение на -vm4104.

Эта опция сохранится в вашем текущем проекте (lpi) и добавится только, если вы скомпилируете этот проект. Если эта опция должна использоваться со всеми вашими проектами на вашем компьютере, используйте зеленые кнопки, чтобы переместить Targets: lazeport(Цели: lazeport) в Stored in IDE(Хранящиеся в IDE).

AdditionsAndOverridesOptionForSinglePkg1.png

Компиляция (Compilation)

Команды компилятора(Compiler Commands)

CompilerOptions-Compiler Commands.png

Создать Makefile (Create Makefile)

Включите эту опцию, если хотите, чтобы IDE создавала файл Makefile и Makefile.fpc перед каждой сборкой. В данный момент этот флаг используется только для пакетов, но не для проектов.

Выполнить перед компиляцией (Execute before)

Настройте здесь команду, которая будет выполнена перед запуском компилятора.

Вызов при (Call on):

  • компиляции (Compile) - выполняется при нормальной компиляции (F9).
  • сборке (Build) - выполняется, когда происходит полная сборка. Например это может быть скрипт, который чистит каталоги.
  • запуске (Run) - выполняется, когда выполняется быстрая компиляция. При запуске проекта, IDE проверяет нужно ли чего-нибудь компилировать. Если ничего компилировать не нужно, то IDE пропускает этап компиляции. Установите эту опцию, чтобы выполнять команду даже если этап компиляции был пропущен.

IDE может разбирать и фильтровать вывод этой команды и останавливаться при ошибках. Отметьте какие сообщения вы хотите видеть в IDE.

Компилятор (Compiler)

Здесь указывается компилятор используемый проектом или пакетом. По умолчанию это макрос $(CompPath), который заменяется версией компилятора из переменных окружения.

Выполнить после компиляции (Execute after)

Настройте здесь команду, которая будет выполнена после того, как закончится работа компилятора. Смотри выше 'Выполнить перед компиляцией (Execute before)' для дополнительной информации.

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

scp "$TargetFile()" pi@raspberry:/home/pi/bin

(И да, это работает даже без пароля, если вы создаете пару ключей с помощью ssh-keygen, а затем добавляете их в файл selected_keys вашей цели через "ssh-copy-id [remoteuser@]remotehost"; подробности см.[https: //www.debian.org/devel/passwordlessssh здесь])

Унаследованный(Inherited)

Light bulb  Примечание: Это было перенесено в Lazarus 1.1 в диалоговое окно Show Options(Показать параметры).

На этой странице показаны все параметры компилятора, унаследованные от пакетов. Пакеты наследуют опции через их свойство usage(использование) опций пакета.

Самый верхний узел показывает все унаследованные параметры, то есть сумму всех используемых пакетов.

Узлы ниже показывают унаследованные параметры каждого используемого пакета.

Вы можете просмотреть/отредактировать набор используемых пакетов для проекта в Инспекторе проектов. Вы можете просмотреть/отредактировать набор используемых пакетов для пакета в редакторе пакетов.

Для получения информации о пакетах в целом см. пакеты Lazarus.

Использовать эти настройки по умолчанию для новых проектов

Установите этот флажок и нажмите Ok. Настройки будут сохранены в ~/.lazarus/compileroptions.xml (или в любом другом месте, указанном в качестве основного пути конфигурации). При создании нового проекта этот файл будет загружен для инициализации параметров компилятора. Эта функция существует с 0.9.29.

Кнопки (Buttons)

Тест (Test)

Эта кнопка запустит различные тесты и обнаружит основные ошибки настройки. Для fpc 2.2.0 сообщит о дублирующихся модулях. Предупреждения корректны, но вы можете игнорировать их, если не хотите использовать эти модули.

Показать параметры (Show Options)

Открывает диалог и показывает текущие настройки параметров командной строки.

Загрузка/Сохранение (Load/Save)

Открывает диалог для сохранение и/или загрузки текущих настроек компилятора из/в файла xml.

Ok

Эта кнопка применяет выбранные настройки и закрывает диалог.

Cancel

Эта кнопка откатывает на предыдущую версию настроек и закрывает диалог.



Макросы IDE

Compiler Options - IDE Macros


Для [версий с] 0.9.29 по 1.0.x

Эта страница позволяет определить макросы и условия вашего проекта/пакета. В среде IDE уже есть много [предопределенных] макросов. Вы можете добавить свои собственные макросы, которые действительны при загрузке проекта/пакета. Условия позволяют устанавливать значения макросов в зависимости от целевой платформы и других макросов. Например, вы можете добавить опцию компоновщика при компиляции для macOS.

Используйте левую кнопку +, чтобы добавить новый макрос для проекта/пакета. Выберите макрос и нажмите среднюю кнопку +, чтобы добавить новое возможное значение. Фактическое значение макроса задается в условных выражениях ниже или в текущем проекте на странице build modes (меню IDE / Project / Project Options / Compiler options / Build Modes). Чтобы удалить значение или макрос, выберите его и нажмите кнопку -.

В условных выражениях используется язык сценариев, похожий на паскаль, и они редактируются в текстовом редакторе внизу страницы. Многие ярлыки работают как в редакторе исходного кода, включая завершение слова/идентификатора (по умолчанию: Ctrl + Spase).

Для получения дополнительной информации о макросах сборки и условных выражениях см. Macros and Conditionals.

Compileroptions buildmacros1.png

Эта страница существует с версии 0.9.29.

Для [версии] 1.1 и выше

Эта страница доступна только для пакетов. Это позволяет пакетам определять свои собственные макросы IDE. В среде IDE уже есть много [предопределенных] макросов.

Используйте левую кнопку +, чтобы добавить новый макрос для проекта/пакета. Выберите макрос и нажмите среднюю кнопку +, чтобы добавить новое возможное значение. Фактическое значение макроса задается в условных выражениях ниже или в текущем проекте на странице build modes ("режимы сборки") (меню IDE / Project / Project Options / Compiler options / Build Modes). Чтобы удалить значение или макрос, выберите его и нажмите кнопку -.

Для получения дополнительной информации о макросах сборки и условных выражениях см. Macros and Conditionals.

Прочее

См. Free Pascal - Online documentation

Обычно вы определяете здесь некоторые параметры компилятора. Например, вы можете определить в режиме сборки что-то вроде

 -dRELEASE

Затем в режиме сборки будет скомпилирован только код, окруженный

{$ IFDEF RELEASE}
...
{$ ENDIF}

Это можно использовать в качестве альтернативы системе макросов, особенно если вы перешли с Delphi.

Пробелы в начале и в конце удаляются. Разрывы строк заменяются пробелом перед передачей компилятору. Ведущий пробел добавляется автоматически.

Среда IDE заменяет макросы IDE в пользовательских параметрах и анализирует параметры. Флаги, такие как -dRelease, передаются в codetools, поэтому редактор исходного кода узнает о них сразу.

Warning-icon.png

Предупреждение: Не добавляйте параметры пути -Fu, -Fi, -Fl, -FU, -o. Вместо этого используйте поля на странице Пути (Paths). Среда IDE игнорирует пути в пользовательских параметрах. Она не обновляет их при добавлении или удалении файлов или при открытии проекта на другом хосте.

Нажав кнопку All options... ("Все параметры ..."), вы можете легко настроить параметры FPC:

options.png