/**************************************************************************** ** ** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** ****************************************************************************/ // ********************************************************************** // NOTE: the sections are not ordered by their logical order to avoid // reshuffling the file each time the index order changes (i.e., often). // Run the fixnavi.pl script to adjust the links to the index order. // ********************************************************************** /*! \contentspage index.html \previouspage creator-projects-autotools.html \page creator-project-generic.html \nextpage creator-cli.html \title Setting Up a Generic Project Generic project support allows you to use \QC as a code editor. You can change the way your project is built by modifying the \c make command in the \uicontrol{Projects} mode under \uicontrol{Build Settings}. When you import a project, \QC creates the following files that allow you to specify which files belong to your project and which include directories or defines you want to pass to your compiler: \tt{.files}, \tt{.includes}, and \tt{.config}. \section1 Importing a Generic Project To import an existing generic project: \list 1 \li Select \uicontrol File > \uicontrol{New File or Project} > \uicontrol{Import Project} > \uicontrol{Import Existing Project}. \li In \uicontrol{Import Existing Project}, enter the project name and select the location of the project file you want to import. \QC automatically generates the following files in the project directory: \list \li \l{Specifying Files}{.files} \li \l{Specifying Include Paths and Framework Paths}{.includes} \li \l{Specifying Defines}{.config} \li .creator \li \l{Forwarding Flags to Clang Code Model}{.cflags} \li \l{Forwarding Flags to Clang Code Model}{.cxxflags} \endlist \endlist When the project is successfully imported, \QC creates the project tree in the sidebar. After importing a generic project into \QC, open it by selecting the \tt{.creator} file. \section1 Working with Generic Project Files For a generic project, you have to manually specify which files belong to your project and which include directories or defines you want to pass to your compiler. \section1 Specifying Files The list of files for a generic project is specified in the \tt{.files} file. When you first create a generic project, \QC adds any files it recognizes to your project. To add or remove files, edit the \tt{.files} file in \QC. \QC recreates your project tree when you save the \tt{.files} file. Alternatively, you can add and remove files using the context menu in the project tree. If you frequently need to update the \tt{.files} file, you can do so efficiently by using a script that updates the file for you. If the file is modified externally, you have to restart \QC for the changes to take effect. To update the \tt{.files} on the \uicontrol Git repository use the following script: \code git ls-files "*.cpp" "*.h" > MyProject.files \endcode \section1 Specifying Include Paths and Framework Paths The include paths are specified in the \tt{.includes} file, one include path per line. The paths can be either absolute or relative to the \tt{.includes} file. Lines starting with "-F" are interpreted as framework paths. \section1 Specifying Defines The defines are specified in the \tt{.config} file. The \tt{.config} file is a regular C++ file, prepended to all your source files when they are parsed. Only use the \tt{.config} file to add lines as in the example below: \code #define NAME value \endcode \section1 Forwarding Flags to Clang Code Model The \c {.cxxflags} and \c {.cflags} files contain command line flags for the Clang code model on a single line. For example, specify the \c {-std=c++11} to set the language version for parsing as C++11. \section1 Providing Deployment Information If you want to run your application on an embedded Linux device, you first need to deploy your executable and possibly other files. \QC does that for you automatically if you provide the necessary information. This works the same way as explained for CMake \l {Deploying CMake Projects to Embedded Linux Devices}{here}, except that you also need to include your application binary in the list. \section1 Creating a Run Configuration \QC cannot automatically determine which executable to run. In the \uicontrol{Projects} mode under \uicontrol{Run Settings}, define the executable file to run: \list 1 \li Click \uicontrol Add and select \uicontrol{Custom Executable}. \li Define the configuration name, the location of the executable, any additional arguments and the working directory. \endlist */