<chapter id="applicationwizard">

<chapterinfo>
  <authorgroup>
    <author
><firstname
>Bernd</firstname
><surname
>Pol</surname
></author>
    <!-- ROLES_OF_TRANSLATORS -->
  </authorgroup>
</chapterinfo>

<title
>Начало работы &mdash; создание проекта</title>
<!-- FIXME (bp, 2006-06-18) This is a misnomer. It should be something like -->
<!-- Working With Projects -->
<!-- featuring the application manager as part of the New Projects section. -->

<indexterm zone="applicationwizard">
  <primary
>Создание проекта</primary
></indexterm>

<para
>В &kdevelop; разработка программного обеспечения организована в рамках <emphasis
>проектов</emphasis
>. Проект содержит всё, что относится к данному задаче программирования: файлы исходного кода, файлы данных, средства управления, в том числе система сборки, доступ ко всем компонентам и к любым дополнительным инструментам. Словом всё, что нужно для получения реально работающей программы. </para>
<para
>Такая организация позволяет легко переключаться между независимыми задачами. Это очень удобно, если вы работаете над несколькими приложениями одновременно, что бывает очень часто. Откройте проект в &kdevelop; и вы сразу сможете продолжить работу над ним с того места, где остановились в прошлый раз. </para>

<sect1 id="new-projects">
<title
>Новые проекты</title>

<!-- TODO (bp, 2006-06-18) This whole section must be completely rewritten. -->
<!-- There is no need for a tutorial habit anymore. -->

<indexterm zone="new-projects">
  <primary
>проект</primary>
  <secondary
>новый</secondary
></indexterm>

<para
>При создании нового проекта нужно выполнить множество формальных процедур: указать структуру папок проекта, создать базовые заголовочные файлы и файлы реализации, осуществить первоначальную настройку сборочной системы и так далее. </para>
<para
>&kdevelop; обеспечивает простой способ создания нового проекта &mdash; <emphasis
>Мастер создания нового проекта</emphasis
>. Его можно запустить из меню <menuchoice
><guimenu
>Проект</guimenu
><guimenuitem
>Создать проект</guimenuitem
></menuchoice
>. </para>
<para
>Мастер проекта значительно упрощает и автоматизирует создание нового проекта: </para>
<orderedlist>
  <listitem
><para
>На первом этапе вы можете использовать один из предлагаемых шаблонов проектов. </para
></listitem>
  <listitem
><para
>Там же необходимо указать некоторую <link linkend="new-projects-start-general"
> общую информацию</link
> по проекту: названия приложения, его размещения и так далее. </para
></listitem>
  <listitem
><para
>На следующем шаге решите, будете ли вы использовать <link linkend="new-projects-start-cvs"
>систему контроля версий</link
>, такую, как например, CVS, и, если будете, укажите необходимые данные. </para
></listitem>
  <listitem
><para
>Выберите шаблоны для <link linkend="new-projects-start-templates"
>заголовочных файлов и файлов реализации</link
> (если есть). </para
></listitem>
  <listitem
><para
>Теперь осталось <link linkend="new-projects-start-build"
>сгенерировать начальные файлы</link
>, структуру папок, начальные заголовочные файлы, файлы реализации и служебные файлы для управления проектом, например каркас для make. </para
></listitem>
</orderedlist>
<para
>И это всё! Теперь у вас есть база для начала продуктивной работы. </para>
<para
>А теперь рассмотрим это более подробно... </para>

<sect2 id="new-projects-start">
<title
>Начальные шаги</title>

<indexterm zone="new-projects-start">
  <primary
>диалог</primary>
  <secondary
>Новый проект</secondary
></indexterm>
<indexterm zone="new-projects-start">
  <primary
>проект</primary>
  <secondary
>Новый проект</secondary>
  <tertiary
>диалог</tertiary
></indexterm>
<indexterm zone="new-projects-start">
  <primary
>проект</primary>
  <secondary
>шаблоны</secondary
></indexterm>
<indexterm zone="new-projects-start">
  <primary
>шаблоны</primary>
  <secondary
>проект</secondary
></indexterm>

<para
>Чтобы создать новый проект, выберите пункт <guimenuitem
>Создать проект</guimenuitem
> из меню <guimenu
>Проект</guimenu
>: </para>

<screenshot id="screenshot-newprojectwizard">
  <mediaobject>
    <imageobject>
      <imagedata fileref="create-new-project.png" format="PNG"/>
    </imageobject>
    <caption
><para
>Начало создания проекта </para
></caption>
  </mediaobject>
</screenshot>

<para
>Диалог разделён на две части. В верхней вы можете выбрать язык программирования, который будет использоваться для написания программы, нижняя служит для ввода некоторой общей информации. </para>

<sect3 id="new-projects-start-type">
<title
>Выбор языка программирования и типа приложения</title>

<indexterm zone="new-projects-start-type">
  <primary
>проект</primary>
  <secondary
>тип приложения</secondary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>проект</primary>
  <secondary
>язык программирования</secondary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>проект</primary>
  <secondary
>язык</secondary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>язык</primary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>язык программирования</primary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>приложение</primary>
  <secondary
>тип</secondary
></indexterm>

<para
>Слева вверху находится список доступных языков программирования, например: </para>

<itemizedlist>
  <listitem
><para
>C++ <indexterm>
      <primary
>C++</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>C <indexterm>
      <primary
>C</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>C++ <indexterm>
      <primary
>C++</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>База данных (проекты на SQL) <indexterm>
      <primary
>SQL</primary>
      <secondary
>новый проект</secondary
></indexterm>
    <indexterm>
      <primary
>База данных</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Fortran <indexterm>
      <primary
>Fortran</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Haskell <indexterm>
      <primary
>Haskell</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Java <indexterm>
      <primary
>Java</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>PHP <indexterm>
      <primary
>PHP</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Pascal <indexterm>
      <primary
>Pascal</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Perl <indexterm>
      <primary
>Perl</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Python <indexterm>
      <primary
>Python</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Ruby <indexterm>
      <primary
>Ruby</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Оболочка (скрипты на Bash) <indexterm>
      <primary
>Bash</primary>
      <secondary
>новый проект</secondary
></indexterm>
    <indexterm>
      <primary
>оболочка</primary>
      <secondary
>новый проект</secondary
></indexterm>
  </para
></listitem>
</itemizedlist>

<para
>Эти папки не содержат собственно средств языка, в них располагаются только <emphasis
>шаблоны</emphasis
> новых проектов, то есть отправная точка для начала разработки на том или другом языке. Если вы раскроете все папки, то увидите множество отдельных шаблонов в зависимости от типа поставленной задачи и сферы применения. </para>
<para
>При выборе шаблона в правой части окна показывается его <emphasis
>краткое описание</emphasis
> и <emphasis
>снимок экрана</emphasis
> главного окна приложения, основанного на выбранном шаблоне. </para>
<para
>Выберите шаблон, наиболее точно отвечающий вашим целям. Затем введите общую информацию, как описано ниже. </para>

<formalpara>
<title
>Выбор системы управления проектом</title>
<para
>Каждый шаблон привязан к определённой <link linkend="makesystems"
>системе управления проектом</link
>. </para>
</formalpara>

</sect3
> <!-- new-projects-start-type -->

<sect3 id="new-projects-start-general">
<title
>Указание общей информации</title>

<indexterm zone="new-projects-start-general">
  <primary
>проект</primary>
  <secondary
>свойства</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>свойства</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>приложение</primary>
  <secondary
>имя</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>имя</primary>
  <secondary
>приложение</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>проект</primary>
  <secondary
>папка</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>папка</primary>
  <secondary
>проект</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>Расположение</primary>
  <secondary
>новый проект</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>проект</primary>
  <secondary
>автор</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>проект</primary>
  <secondary
>электронная почта</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>автор</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>электронная почта</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>проект</primary>
  <secondary
>main.cpp</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>main.cpp</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>проект</primary>
  <secondary
>лицензия</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>лицензия</primary
></indexterm>

<para
>В нижнем разделе <guilabel
>Свойства</guilabel
> диалога <guilabel
>Новый проект</guilabel
> можно указать его <guilabel
>свойства</guilabel
> &mdash; данные для построения структуры проекта. </para>
<formalpara>
<title
>Имя приложения</title>
<para
>Введите его в верхнее поле <guilabel
>свойств</guilabel
> с соответствующим названием. В нашем примере это <quote
>MyApp</quote
>. </para>
</formalpara>
<para
>Обратите внимание, что в имени разрешается использовать только такие символы: <itemizedlist>
  <listitem
><para
>английские буквы в нижнем и верхнем регистрах</para
></listitem>
  <listitem
><para
>цифры</para
></listitem>
  <listitem
><para
>символ подчёркивания</para
></listitem>
</itemizedlist>
</para>
<para
>Эти ограничения установлены в связи с тем, что указанное имя будет использовано для <emphasis
>именования некоторых классов</emphasis
> в создаваемом проекте. Поэтому ограничения на имя приложения отражают ограничения на именование переменных в языках программирования. </para>
<formalpara>
<title
>Конечное расположение</title>
<para
>Также имя приложения будет использовано при формировании <guilabel
>конечного расположения</guilabel
> создаваемого проекта. </para>
</formalpara>
<para
>Имя приложения переводится в нижний регистр и добавляется к указанному расположению. </para>
<para
>Если сформированный по имени приложения путь уже существует, кнопка <guibutton
>Далее &gt;</guibutton
> будет неактивна (серого цвета) и мастер известит вас об этом ещё и сообщением. </para>

<formalpara>
<title
>Конечное расположение</title>
<para
>Есть два способа выбрать другой каталог для вашего приложения &mdash; указать другое имя или изменить расположение проектов. </para>
</formalpara>
<para
>Второй вариант можно осуществить во втором поле <guilabel
>свойств</guilabel
> с названием <guilabel
>Расположение</guilabel
>. Здесь вы должны ввести <emphasis
>путь к каталогу</emphasis
>, в котором будет создан подкаталог с именем проекта (в котором, в свою очередь, будут созданы другие подкаталоги  разработки). Полный путь к проекту будет показан в поле <guilabel
>Конечное расположение</guilabel
>. </para>
<para
>При открытии диалога поле <guilabel
>Расположение</guilabel
> заполняется автоматически. Значение для него берётся из поля <guilabel
>Каталог проектов по умолчанию:</guilabel
> в <link linkend="setup-general"
>главном разделе диалога настройки KDevelop</link
>. В нашем случае в качестве основного пути для новых проектов используется каталог <filename class="directory"
>/home/devel/projects/</filename
>. </para>
<para
>Убедитесь что каталог проекта, указанный в поле <guilabel
>Конечное расположение</guilabel
> не существует в вашей файловой системе. </para>
<!--TODO add tab description Project Options -->
<note
><para
>Однако путь, указанный в поле <guilabel
>Расположение</guilabel
> должен существовать. Если это не так, мастер создания проекта сообщит об этом добавлением <quote
>(неверно)</quote
> в строку <guilabel
>Конечное расположение</guilabel
>. </para
></note>

<screenshot id="screenshot-createnewprojectoptions">
  <mediaobject>
    <imageobject>
      <imagedata fileref="createnewprojectoptions.png" format="PNG"/>
    </imageobject>
    <caption
><para
>Настройка CVS для создаваемого проекта </para
></caption>
  </mediaobject>
</screenshot>

<formalpara>
<title
>Параметры проекта</title>
<para
>Данные, которые показываются на втором шаге, не являются критичными для проекта. Просто укажите ваше имя (то есть имя автора программы, к которому можно будет обращаться по поводу её работы и развития) в поле <guilabel
>Автор</guilabel
> и правильный адрес электронной почты в поле <guilabel
>Электронная почта</guilabel
> чтобы пользователи программы могли поддерживать с вами связь. </para>
</formalpara>

<note>
<orderedlist>
  <listitem
><para
>Мастер постарается заполнить их значениями, взятыми из соответствующих разделов Центра управления KDE. </para
></listitem>
  <listitem
><para
>Эта информация будет встроена в шаблоны программных файлов. Например, для программ &kde; C++ вы сможете найти её в начале файла <filename
>main.cpp</filename
>. </para
></listitem>
  <listitem
><para
>Из всех полей, <emphasis
>необязательным</emphasis
> является <guilabel
>Электронная почта</guilabel
>, так как не все разработчики могут иметь доступ в Интернет. </para
></listitem>
</orderedlist>
</note>

<formalpara>
<title
>Версия и лицензия</title>
<para
>Введите номер версии, с которого нужно начать, и лицензию, в соответствии с которой вы хотите распространять ваше приложение. </para>
</formalpara>

<para
>Если вы выбрали тип приложения (например, C или C++), к которому существуют шаблоны программных файлов, на следующих этапах вы можете увидеть уведомление о лицензии в (см. раздел «<link linkend="new-projects-start-templates"
>Шаблоны программных файлов</link
>»). </para>
<para
>Если вы выбрали <quote
>другую</quote
> <guilabel
>лицензию</guilabel
>, вам нужно будет ввести её текст самостоятельно. </para>

<note
><para
>Информация о версии и используемой лицензии также будет встроена в шаблоны программных файлов, в форме, удобной для изменения. </para
></note>

<para
>Нажмите кнопку <guibutton
>Далее &gt;</guibutton
>. </para>
</sect3
> <!-- new-projects-start-general -->

</sect2
> <!-- new-projects-start -->

<sect2 id="new-projects-start-cvs">
<title
>Система управления версиями</title>

<indexterm zone="new-projects-start-cvs">
  <primary
>CVS</primary>
  <secondary
>новый проект</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>проект</primary>
  <secondary
>CVS</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>база данных</primary>
  <secondary
>CVS</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>версия</primary>
  <secondary
>база данных</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>версия</primary>
  <secondary
>CVS</secondary
></indexterm>

<para
>Здесь вы можете выбрать <guilabel
>систему контроля версий</guilabel
>. </para>

<note
><para
>Здесь всё зависит от проекта, подробности о &CVS; вы можете найти в главе <link linkend="cvs"
>Использование &CVS;</link
>. </para
></note>

<formalpara>
<title
>Система контроля версий не нужна</title>
<para
>По умолчанию <guilabel
>Система контроля версий</guilabel
> для проекта <guilabel
>Не используется</guilabel
>. Если вы не хотите использовать эту функцию, просто нажмите <guibutton
>Далее &gt;</guibutton
>. </para>
</formalpara>

<formalpara>
<title
>Использование &CVS;</title>
<para
>В нашем примере мы используем <quote
>&CVS;</quote
>. Если вы выберете эту систему контроля версий, будут показаны поля, которые нужно заполнить. </para>
</formalpara>

<screenshot id="screenshot-newproject-cvs">
  <mediaobject>
    <imageobject>
      <imagedata fileref="create-new-project-cvs.png" format="PNG"/>
    </imageobject>
    <caption
><para
>Настройка CVS для создаваемого проекта </para
></caption>
  </mediaobject>
</screenshot>

<para
>Система контроля версий, такая как &CVS; (<quote
>Concurrent Versions System</quote
>, система конкурирующих версий) записывает копии файлов проекта в некоторое подобие базы данных. В &CVS; вы можете передать файлы (<quote
>commit</quote
>) в репозиторий или загрузить их обратно (<quote
>checkout</quote
>или <quote
>update</quote
>). Особенностью системы контроля версий является структурный метод хранения файлов, который всегда позволяет вернуться к более раннему состоянию разработки, если вы допустили неисправимые ошибки. &CVS; также позволяет сотрудничать нескольким разработчикам в большом проекте (как &kdevelop;), не вмешиваясь в работу друг друга. </para>

<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>репозиторий</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>репозиторий</primary>
  <secondary
>CVS</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>локальный</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>удалённый</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>локальный репозиторий CVS</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>:local:</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>:local:</secondary
></indexterm>

<formalpara id="new-projects-start-cvs-root">
<title
>Локальный репозиторий &CVS;</title>
<para
>&CVS; ведёт собственную базу данных версий файлов, которая хранится в так называемом <emphasis
>корне &CVS;</emphasis
>. Вам нужно будет указать путь к корню &CVS;, если вы хотите использовать эту систему управления версиями. </para>
</formalpara>

<para
><emphasis
>Расположение локального &CVS;.</emphasis
> Если вы разрабатываете программу самостоятельно, использование &CVS; локально пригодится как удобная система резервного копирования. Обычно она располагается в вашем домашнем каталоге под именем <filename
>cvsroot</filename
>: </para>
<para
><userinput
><filename class="directory"
>/home/devel/cvsroot</filename
></userinput
> (где <filename
>devel</filename
> &mdash; имя пользователя в системе) </para>

<note
><para
>Это краткая форма &mdash; на самом деле, перед ней должна быть приставка <computeroutput
>:local:</computeroutput
>. Использование краткой формы разрешено только если она начинается со слэша (<computeroutput
>/</computeroutput
>). То есть полный адрес корня локального &CVS; будет выглядеть так: <filename class="directory"
>:local:/home/devel/cvsroot</filename
>. </para
></note>

<para
>Введите путь к корню &CVS;. </para>
<para
><emphasis
>Создание локального корня &CVS;.</emphasis
> Если локальный корень &CVS; не существует, &kdevelop; может изменить это с помощью команды &CVS;. Для этого нажмите кнопку <guibutton
>Создать локальный репозиторий</guibutton
>. </para>
<note
><para
>&kdevelop; только <emphasis
>передаёт команды</emphasis
> системе &CVS; на создание репозитория, не делая ничего самостоятельно. К счастью, &CVS; продуман достаточно хорошо, и, перед созданием нового репозитория &CVS; в указанном вами каталоге, проверяет наличие в нём уже существующего корня &CVS; в нём. </para
></note>

<para
><emphasis
>Удалённый &CVS;.</emphasis
>Возможно вы захотите расположить репозиторий на удалённом сервере, особенно если над проектом работает несколько разработчиков. Тогда введите <acronym
>URL</acronym
> репозитория &CVS; в поле <guilabel
>Репозиторий</guilabel
>. Например, чтобы подключиться к серверу &CVS; &kde;: </para>
<para
><userinput
><filename class="directory"
>:pserver:<replaceable
>mylogin</replaceable
>@cvs.kde.org:/home/kde</filename
></userinput
>, где <replaceable
>mylogin</replaceable
> соответствует имени регистрации вашей учётной записи &CVS; в репозитории &kde;. </para>

<indexterm zone="new-projects-start-cvs-remote">
  <primary
>удалённый репозиторий</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>:pserver:</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>:ext:</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS</primary>
  <secondary
>:local:</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS</primary>
  <secondary
>:pserver:</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS</primary>
  <secondary
>:ext:</secondary
></indexterm>

<formalpara id="new-projects-start-cvs-remote">
<title
>Виды удалённых серверов &CVS;</title>
<para
>Есть два типа удалённых серверов &CVS;: это <emphasis
>pserver</emphasis
>, использующий авторизацию без шифрования, и <emphasis
>ext</emphasis
>, в котором доступно шифрование <acronym
>rsh</acronym
> или <acronym
>ssh</acronym
>. Они различаются по приставке в <acronym
>URL</acronym
>: </para>
</formalpara>
<para>
<filename
>:pserver:</filename>
</para>
<para
>для <quote
>password protected server</quote
> (сервера, защищённого паролем) без шифрования и </para>
<para>
<filename
>:ext:</filename>
</para>
<para
>для сервера, поддерживающего шифрование <acronym
>rsh</acronym
> или <acronym
>ssh</acronym
>. Например: </para>
<para>
<userinput
><filename class="directory"
>:ext:<replaceable
>mylogin</replaceable
>@cvs.cervisia.sourceforge.net:/cvsroot/cervisia</filename
></userinput>
</para>
<para
>позволит получить доступ к исходному коду <application
>Cervisia</application
>, программы работы с &CVS;, на сервере SourceForge. </para>
<para
>Если вы хотите получить доступ к серверу &CVS; с шифрованием <acronym
>rsh</acronym
> или <acronym
>ssh</acronym
>, укажите протокол шифрования. Для этого необходимо установить значение переменной среды окружения <envar
>CVS_RSH</envar
> как <userinput
>rsh</userinput
> или <userinput
>ssh</userinput
>. </para>

<note
><para
>Если вы собираетесь использовать шифрование для &CVS;, прочитайте главу <link linkend="cvs"
>Использование &CVS;</link
>. </para
></note>

<indexterm zone="new-projects-start-cvs-repository">
  <primary
>CVS</primary>
  <secondary
>репозиторий</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-repository">
  <primary
>репозиторий</primary>
  <secondary
>CVS</secondary
></indexterm>

<formalpara id="new-projects-start-cvs-repository">
<title
>Репозиторий &CVS;</title>
<para
>Теперь нужно указать где следует сохранять файлы проекта в &CVS;. Это место называется <emphasis
>репозиторием</emphasis
>. </para>
</formalpara>
<para
>В принципе, вы можете выбрать любое имя для репозитория &CVS;, учитывая лишь ограничения на имена файлов, но большинство разработчиков просто указывают название программы. Репозиторий с указанным вами именем будет создан в корне &CVS;. </para>
<para
>Укажите имя репозитория, которое вы хотите использовать, вместе с корнем CVS в поле <guilabel
>Репозиторий</guilabel
> диалога <guilabel
>Новый проект</guilabel
> в разделе <guilabel
>Система управления версиями</guilabel
>. </para>

<warning
><para
><emphasis
>Обратите внимание, на то, что нельзя использовать уже существующий репозиторий!</emphasis
> Система &CVS; не предупреждает о дублирующихся файлах, поэтому вы можете их потерять. </para
></warning>

<formalpara>
<title
>Оставшиеся поля</title>
<para
>Осталось совсем немного. Остальные поля заполнены за вас автоматически: </para>
</formalpara>
<para
>Поле <guilabel
>Метка производителя</guilabel
> используется только для совместимости. Вы можете оставить значение по умолчанию. </para>
<para
>Поле <guilabel
>Комментарий</guilabel
> содержит комментарий, который будет добавлен к первой версии файлов в хранилище &CVS;. </para>
<para
>Поле <guilabel
>Метка выпуска</guilabel
> содержит метку &CVS; первоначального состояния проекта. С помощью <emphasis
>метки</emphasis
> вы всегда сможете вернуться к состоянию разработки на данный момент. Подробная информация находится в главе <link linkend="cvs"
>Использование &CVS;</link
>. </para>
<para
>По умолчанию предлагается метка <quote
>start</quote
>. </para>

<note>
<para
>Если какая-либо информация введена неправильно, это не выяснится на этапе создания проекта. Поэтому следите за <guilabel
>сообщениями</guilabel
>во время работы с репозиторием из основного окна программы. Если произошли ошибки &CVS;, вы увидите что-то на подобие этого: </para>

<screen
><computeroutput>
* cd '/home/devel/test' &amp;&amp; cvs -d '/home/devel/mycvsroot' \
  import -m 'new project' '' 'vendor' 'start' &amp;&amp;\
  sh /opt/kde3/share/apps/kdevcvs/buildcvs.sh . '' \
  '/home/devel/mycvsroot'
* cvs [import aborted]: /home/devel/mycvsroot/CVSROOT: No such file or
  directory
* *** Exited with status: 1 ***
</computeroutput
></screen>

<para
>Если это произошло, инициализируйте &CVS; самостоятельно или удалите каталог проекта и начните процесс создания проекта сначала. </para>
</note>

<para
>После ввода всех данных &CVS; нажмите <guibutton
>Далее &gt;</guibutton
>. </para>

<note
><para
>Чтобы исправить ошибку на предыдущем шаге, нажмите кнопку <guibutton
>&lt; Назад</guibutton
>. </para
></note>

</sect2
> <!-- new-projects-start-cvs -->

<sect2 id="new-projects-start-templates">
<title
>Шаблоны программных файлов</title>

<para
>На следующих шагах мастера вы сможете установить общую информацию о вашем проекте, которая будет включаться во все его файлы. </para>
<para
>Вам будут предложены отдельные шаблоны заголовочных файлов и файлов реализации для проектов на C и C++. Для некоторых других языков есть только шаблоны файлов исходного кода. Для остальных языков программирования всё ещё нет готовых шаблонов. </para>
<para
>Если для проекта есть возможность использования шаблонов, в начале файлов проекта с исходным кодом будет добавлен комментарий о лицензии, например для программ на C++ он будет выглядеть так: </para>

<screen
><computeroutput
><literal>
/***************************************************************************
 *   Copyright (C) 2003 by Your Name                                       *
 *   you@you.com                                                           *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/
</literal
></computeroutput
></screen>

<para
>Другие шаблоны будут иметь подобную информацию в соответствующим языку формате. </para>
<para
>Шаблоны файлов исходного кода будут также содержать информацию на основе данных, указанных ранее в мастере <guilabel
>создания проектов</guilabel
>, а именно содержимом полей <guilabel
>Автор</guilabel
>, <guilabel
>Электронная почта</guilabel
> и <guilabel
>Лицензия</guilabel
>. </para>

<sect3 id="new-projects-start-templates-edit">
<title
>Изменение шаблонов</title>

<indexterm zone="new-projects-start-templates-edit">
  <primary
>шаблоны</primary>
  <secondary
>проект</secondary>
  <tertiary
>изменение</tertiary
></indexterm>
<indexterm zone="new-projects-start-templates-edit">
  <primary
>проект</primary>
  <secondary
>шаблоны</secondary>
  <tertiary
>изменение</tertiary
></indexterm>

<para
>Шаблоны, которые вы редактируете в диалоге <guilabel
>Новый проект</guilabel
> будут использованы при создании нового заголовочного файла или файла реализации в проекте. В начале каждого файла будет расположена некоторая информация, зависящая от шаблона. </para>
<para
>Вы не ограничены вставкой обычного текста, &kdevelop; распознаёт несколько переменных, которые будут заменены на содержимое заданных полей. Это может быть информация об <guilabel
>авторе</guilabel
>, <guilabel
>электронной почте</guilabel
> или <guilabel
>лицензии</guilabel
>. </para>

<variablelist>
<varlistentry>
<term
>Включение информации для &doxygen;</term>
<listitem>
<para
>Если, к примеру, вы хотите чтобы документация по &API;, генерируемая программой &doxygen;, содержала также дополнительное краткое описание файла, включите в шаблон такой код: </para>
<screen
><computeroutput>
/**
 * \file $MODULE$.cpp
 * \brief (здесь нужно поставить краткое описание файла).
 **/
</computeroutput
></screen>
<para
>Каждый раз, когда вы будете создавать новый файл исходного кода, &kdevelop; заменит <varname
>$MODULE$</varname
> именем создаваемого файла. Например, если вы создали новый класс C++ с именем <classname
>ASimpleTest</classname
>, в начале файла <filename
>asimpletest.cpp</filename
> будет такой текст: </para>
<screen
><computeroutput>
/**
 * \file asimpletest.cpp
 * \brief (здесь нужно поставить краткое описание файла).
 **/
</computeroutput
></screen>
<para
>И теперь останется ввести краткое описание файла после слова <quote
>\brief</quote
>, не оставляя служебного, каждый раз одинакового, кода. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Файл с лицензией</term>
<listitem>
<para
>Также вы можете включить информацию о лицензии. Для этого используется переменная <varname
>$LICENSEFILE$</varname
>: </para>

<screen
><computeroutput>
//   Файл $LICENSEFILE$ содержит полный текст лицензии.
</computeroutput
></screen>
<para
>Мастер приложений заменит <varname
>$LICENSEFILE$</varname
> на имя файла, содержащего лицензию, например: </para>
<screen
><computeroutput>
//   Файл COPYING содержит полный текст лицензии.
</computeroutput
></screen>
<para
>для лицензии <acronym
>GPL</acronym
>, или </para>
<screen
><computeroutput>
//   Файл LICENSE.BSD содержит полный текст лицензии.
</computeroutput
></screen>
<para
>если вы решили распространять свою программу под лицензией <acronym
>BSD</acronym
>. </para>
<para
>&kdevelop; поддерживает большое количество переменных. Подробно это изложено в разделе <link linkend="newfiles-edittemplates"
>Изменение шаблонов</link
> главы <link linkend="editing"
>Средства редактирования</link
>. </para>
</listitem>
</varlistentry>
</variablelist>

<note
><para
>Шаблоны, которые вы установили здесь, будут задействованы после создания проекта. Информация, выбранная вами, будет находится в начале каждого созданного в рамках проекта файла исходного кода. Вы можете изменить текст шаблонов вручную после создания проекта. </para
></note>

</sect3
> <!-- new-projects-start-templates-edit -->
</sect2
> <!-- new-projects-start-templates -->

<sect2 id="new-projects-start-build">
<title
>Построение начальных файлов проекта</title>

<indexterm zone="new-projects-start-build">
  <primary
>проект</primary>
  <secondary
>новый</secondary>
  <tertiary
>построение</tertiary
></indexterm>
<indexterm zone="new-projects-start-build">
  <primary
>проект</primary>
  <secondary
>начальное построение</secondary
></indexterm>

<para
>Теперь почти всё сделано. На последнем шаге кнопка <guibutton
>Далее &gt;</guibutton
> сменяется на <guibutton
>Готово</guibutton
>. </para>
<para
><emphasis
>Подумайте дважды перед её нажатием!</emphasis
> Вы пока ещё имеете возможность вернуться <guibutton
>&lt; Назад</guibutton
> и изменить введённые данные. Если вы используете &CVS; локально, проверьте ещё раз имя <emphasis
>репозитория</emphasis
> (указанного подкаталога не должно существовать). </para>
<para
>Чтобы отменить создание проекта, нажмите соответствующую кнопку, иначе нажмите <guibutton
>Готово</guibutton
>, при этом в окне <guilabel
>Сообщения</guilabel
> будут выводится подробные действия, выполняемые мастером создания проекта. </para>
<para
>Если вы выбрали использование &CVS;, после создания дерева каталогов проекта, будет запущена программа &CVS;, очищающая предыдущее содержимое окна <guilabel
>сообщений</guilabel
> и выводящая собственные сообщения. </para>

<note
><para
>В большинстве случаев после завершения создания &kdevelop; автоматически откроет важные файлы проекта (это зависит от выбранного шаблона проекта). </para
></note>

<para
>Не забудьте проверить предлагаемые по умолчанию значения. Например, вы можете изменить комментарии, добавляемые в начало файлов исходного кода. Шаблоны файлов находятся в подкаталоге <filename class="directory"
>templates</filename
> базового каталога вашего проекта. </para>
<para
>Мы рекомендуем вас перед тем, как набивать собственный код, <emphasis
>собрать новый проект</emphasis
>. В большинстве случаев при этом не должно возникнуть никаких проблем. Чтобы начать всё сначала, удалите каталог проекта и его хранилище в корне &CVS; (если таковой имеется) и начните создание нового проекта заново. </para>

<warning id="defaultbuild-warning"
> <!-- ### remove this when "default" works again -->

  <indexterm zone="defaultbuild-warning">
    <primary
>сборочная конфигурация по умолчанию</primary>
    <secondary
>предупреждение</secondary
></indexterm>
  <indexterm zone="defaultbuild-warning">
    <primary
>конфигурации сборки</primary>
    <secondary
>предупреждение сборки по умолчанию</secondary
></indexterm>
  <indexterm zone="defaultbuild-warning">
    <primary
>предупреждение</primary>
    <secondary
>конфигурация сборки по умолчанию</secondary
></indexterm>

  <para
>Перед сборкой вашего проекта в первый раз, откройте <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Конфигурация сборки</guimenuitem
></menuchoice
>. Там будет три профиля сборки: <guimenuitem
>default</guimenuitem
>, <guimenuitem
>optimized</guimenuitem
> и <guimenuitem
>debug</guimenuitem
>. </para>
  <para
>Из-за некоторых ограничений в autoconf/automake, не используйте конфигурацию  <guimenuitem
>default</guimenuitem
>. это приведёт к повреждению внутренней структуры каталогов, и вы не сможете использовать конфигурации <guimenuitem
>optimized</guimenuitem
> и <guimenuitem
>debug</guimenuitem
>. </para>
  <para
>Если тип приложения, которое вы выбрали, предлагает только <guimenuitem
>default</guimenuitem
>, естественно, используйте его. </para>
</warning>

</sect2
> <!-- new-projects-start-build -->

</sect1
> <!-- new-projects -->

<sect1 id="projects-configure">
<title
>Настройка проектов</title>

<para
>(.. в процессе написания ..)</para>

</sect1>

</chapter
> <!-- applicationwizard -->
