<chapter id="applicationwizard"> <chapterinfo> <authorgroup> <author ><firstname >Bernd</firstname ><surname >Pol</surname ></author> <!-- ROLES_OF_TRANSLATORS --> </authorgroup> </chapterinfo> <title >Начало — Мастер программ</title> <indexterm zone="applicationwizard"> <primary >Мастер программ</primary ></indexterm> <para >В &kdevelop; разработка ПО организована <emphasis >проектами</emphasis >. Проект содержит всё, что относится к данному заданию на программирование: исходные файлы, дополнительные файлы данных, средства управления, в т.ч. система сборки, доступ ко всем компонентам и к любым дополнительным инструментам, словом всё, что нужно для получения реально работающей программы. </para> <para >Такая организация позволяет легко переключаться между глобальными заданиями. Это очень удобно, если вы работаете над несколькими приложениями одновременно. что бывает очень часто. Откройте проект в &kdevelop; и вы сразу сможете продолжить работу над ним с того места, где остановились в прошлый раз. </para> <sect1 id="new-projects"> <title >Новые проекты</title> <indexterm zone="new-projects"> <primary >проект</primary> <secondary >новый</secondary ></indexterm> <para >При создании нового проекта нужно выполнить множество формальных процедур. Как-то: указание папки проекта, определение файлов с заголовками и исходным кодом, первоначальная настройка сборочной системы. </para> <para >&kdevelop; обеспечивает простой способ создания нового проекта — <emphasis >Мастер приложений</emphasis >. Его можно запустить из меню <menuchoice ><guimenu >Проект</guimenu > <guimenuitem >Создать</guimenuitem ></menuchoice >. </para> <para >Мастер приложений значительно упрощает и автоматизирует создание нового проекта </para> <orderedlist> <listitem ><para >На этапе <link linkend="new-projects-start-type" >Выбора языка программирования</link > вы также можете использовать один из предлагаемых шаблонов программы. </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 >Voilà — и это всё. Теперь у вас есть база для начала продуктивной работы. </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="createnewproject.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 >Ada <indexterm> <primary >Ada</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 >e-mail</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >автор</primary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >e-mail</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 > — данные для построения структуры проекта. </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 >Далее ></guibutton > будет неактивна (серого цвета), и мастер вас известит об этом ещё и сообщением. </para> <formalpara> <title >Начальный путь</title> <para >Есть два способа выбрать другой каталог для вашего приложения — выбрать для него другое имя или путь. </para> </formalpara> <para >Это можно установить во втором ряду <guilabel >свойств</guilabel >, под названием <guilabel >Расположение</guilabel >. Здесь вы должны ввести <emphasis >путь к каталогу</emphasis >, в котором будет создан подкаталог с именем проекта (в котором, в свою очередь, будут созданы другие каталоги разработки). Результирующий каталог для наглядности будет отображён в поле <guilabel >Окончательное расположение</guilabel >. </para> <para >Мастер приложений автоматически скопирует <emphasis >начальное значение</emphasis > в поле <guilabel >Расположение</guilabel >. Оно определяется из поля <guilabel >Каталог с проектами по умолчанию:</guilabel > на этапе <link linkend="setup-general" >базовой конфигурации</link >. В нашем случае в качестве основного пути для новых проектов используется каталог <filename class="directory" >/home/devel/projects/</filename >. </para> <para >Убедитесь, каталог разработки, отображаемый в поле <guilabel >Окончательное расположение</guilabel > не существует в вашей файловой системе. </para> <note ><para >Тем временем путь, указанный в поле <guilabel >Расположение</guilabel > должен существовать. Если это не так, мастер приложений сообщит об этом добавлением <quote >(неправильно)</quote > в строку <guilabel >Окончательное расположение</guilabel >. </para ></note> <formalpara> <title >Личная информация</title> <para >Заполните приведённые здесь поля если вы хотите, чтобы все знали имя создателя программы. </para> </formalpara> <note> <orderedlist> <listitem ><para >Мастер приложений пытается заполнить их значениями, взятыми из соответствующих разделов Центра управления KDE. </para ></listitem> <listitem ><para >Личная информация будет встроена в выбранный шаблон. Например, для программ &kde; C++ вы сможете найти её в начале <filename >main.cpp</filename >. </para ></listitem> <listitem ><para >Из всех полей, <emphasis >необязательным</emphasis > является <guilabel >E-mail</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 >Далее ></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 >Если вы не хотите использовать эту функцию, просто нажмите <guibutton >Далее ></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 >root</primary> <secondary >CVS</secondary ></indexterm> <indexterm zone="new-projects-start-cvs-root"> <primary >CVS</primary> <secondary >local</secondary ></indexterm> <indexterm zone="new-projects-start-cvs-root"> <primary >CVS</primary> <secondary >remote</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; Root</title> <para >&CVS; ведёт собственную базу данных версий ваших файлов, которая хранится в т.н. <emphasis >корне &CVS;</emphasis > (<emphasis >&CVS; root</emphasis >). Вам нужно будет указать путь к этому корневому каталогу. </para> </formalpara> <para ><emphasis >Локальный корневой каталог &CVS;.</emphasis > Если вы разрабатываете программу самостоятельно, локальная база данных &CVS; пригодится как удобная система резервного копирования. Обычно она располагается в вашем домашнем каталоге, под именем <filename >cvsroot</filename >: </para> <para ><userinput ><filename class="directory" >/home/devel/cvsroot</filename ></userinput > (где <filename >devel</filename > — имя пользователя в системе) </para> <note ><para >Это краткая форма -- на самом деле перед ней должна быть приставка <computeroutput >:local:</computeroutput >. Использование краткой формы разрешено только если она начинается со слэша (<computeroutput >/</computeroutput >). Т.е. полный адрес локального каталога &CVS; (local &CVS; root) будет выглядеть так: <filename class="directory" >:local:/home/devel/cvsroot</filename > </para ></note> <para >Введите путь к корневому каталогу &CVS;, установленному в вашей системе. В принципе, вы можете выбрать любое имя, даже использовать несколько баз данных &CVS;, но мы рекомендуем придерживаться уже установленного корневого каталога &CVS;. </para> <para ><emphasis >Инициализация нового корня &CVS;.</emphasis > Если корень &CVS; не существует, &kdevelop; может изменить это с помощью команды &CVS;. Для этого отметьте <guilabel >Инициализировать корень</guilabel > ниже поля <guilabel >Корень CVS</guilabel >. </para> <note ><para >&kdevelop; только <emphasis >передаёт команды</emphasis > системе &CVS;, не делая ничего самостоятельно. К счастью, &CVS; продуман достаточно хорошо, и, перед созданием нового корня &CVS; в указанном вами каталоге, проверяет наличие в нём уже существующего корня &CVS;. Следовательно, если вы оставили включённым параметр <guilabel >Инициализировать корень</guilabel > тогда как уже имели инициализированный корень &CVS;, ничего страшного не произойдёт. </para ></note> <para ><emphasis >Удалённый корневой каталог &CVS;.</emphasis >. Возможно вы захотите расположить хранилище на удалённом сервере, особенно если над проектом работает несколько разработчиков. Тогда введите <acronym >URL</acronym > корня &CVS; в поле <guilabel >Корень CVS</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 >удалённый CVS</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 >позволит получить доступ к корню &CVS; фронт-энда &CVS;, <application >Cervisia</application >. </para> <para >Если вы хотите использовать сервер &CVS; с шифрованием <acronym >rsh</acronym > или <acronym >ssh</acronym >, укажите протокол шифрования. Введите <userinput >rsh</userinput > или <userinput >ssh</userinput > в поле <guilabel >CVS_RSH</guilabel > в диалоге <guilabel >создания нового проекта</guilabel >, на странице <guilabel >Система контроля версий</guilabel >. </para> <note ><para >Если вы собираетесь использовать шифрование, прочитайте главу <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 > или<emphasis > репозиторием</emphasis > (repository). </para> </formalpara> <para >В принципе, вы можете выбрать любое имя для хранилища &CVS;, учитывая лишь ограничения на имена файлов, но большинство разработчиков просто указывают название программы. Хранилище, с указанным вами именем, будет создано в корне &CVS;. </para> <para >Введите имя хранилища, которое вы хотите использовать в поле <guilabel >Хранилище CVS</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' && cvs -d '/home/devel/mycvsroot' \ import -m 'new project' '' 'vendor' 'start' &&\ 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 >Далее ></guibutton >. </para> <note ><para >Чтобы исправить ошибку на предыдущей странице, нажмите кнопку <guibutton >< Назад</guibutton >. </para ></note> </sect2 > <!-- new-projects-start-cvs --> <sect2 id="new-projects-start-templates"> <title >Выбор шаблонов заголовочных/исходных файлов</title> <para >В последующих страницах мастера вы сможете установить общую информацию о вашем проекте, которая будет включаться во все его файлы. </para> <para >Для некоторых языков программирования всё ещё нет готовых шаблонов. </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 >E-mail</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 >E-mail</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> // See $LICENSEFILE$ for the full license text. </computeroutput ></screen> <para >Мастер приложений заменит <varname >computeroutput >$LICENSEFILE$</varname > на имя файла, содержащего лицензию, например: </para> <screen ><computeroutput> // See COPYING for the full license text. </computeroutput ></screen> <para >для лицензии <acronym >GPL</acronym >, или </para> <screen ><computeroutput> // See LICENSE.BSD for the full license text. </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 >Далее ></guibutton > сменяется на <guibutton >Готово</guibutton >. </para> <para ><emphasis >Подумайте дважды перед её нажатием!</emphasis > Вы пока ещё имеете возможность вернуться <guibutton >< Назад</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 >Build Configuration</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 --> </chapter > <!-- applicationwizard -->