diff --git a/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_build_over.htm b/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_build_over.htm
index ee1f5764f6b..f95468b7c52 100644
--- a/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_build_over.htm
+++ b/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_build_over.htm
@@ -50,7 +50,7 @@ For other operating systems please refer to your installation documentation.
The Console view displays the output of the build tools.
The Tasks view displays a list of compiler errors and warnings related to your projects.
-
Makefile targets are displayed in the Make Targets view.
+
For Standard Make projects, the Makefile targets are displayed in the Make Targets view.
For more information about the Tasks view, see Workbench User Guide > Reference > User interface information > Views and editors > Tasks view.
@@ -84,7 +84,7 @@ For other operating systems please refer to your installation documentation.
Controlling the building of your project
-
The C/C++ compiler that a project uses is controlled by the project's Properties setting.
+
For a Standard Make project, the C/C++ compiler that a project uses is controlled by the project's Properties setting.
To view a project's properties, right-click on the project and select Properties.
In the dialog that appears, the C/C++ Standard Make Project page enables you to control a variety of settings, including:
@@ -97,13 +97,19 @@ In the dialog that appears, the C/C++ Standard Make Project page enables
Controls which makefile target will be built depending on the scope of the build.
+
For a Managed Make project, the project properties dialog enables you to manage the build configurations of your project. For additional information see:
+
+
Reference > C/C++ Project Properties > Managed Make Projects
+
Reference > C/C++ Project Properties > Managed Make File Properties
+
+
Viewing build information
Build-related information is displayed as follows:
The Console view displays the output of the make utility.
The Tasks view displays a list of compiler errors and warnings related to your projects.
-
Build actions display in the Make Targets view.
+
For a Standard Make project, build actions display in the Make Targets view.
@@ -113,6 +119,11 @@ In the dialog that appears, the C/C++ Standard Make Project page enables
A managed make project generates the makefile for you automatically. In addition, the
-files module.dep and module.mk are created for every project sub-directory.
+
A managed make project generates the makefiles for you automatically.
These files are required for your managed make projects to build successfully.
Click the C/C++ Indexer tab, ensure Enable C/C++ Indexing is selected, otherwise search capabilities, and other tools that require search, will be disabled for your project.
+
Click the C/C++ Indexer tab, ensure that the Full C/C++ Indexer is selected, otherwise search capabilities, and other tools that require search, will be disabled for your project.
Click the C/C++ Indexer tab, ensure Enable C/C++ Indexing is deselected for now. You will enable it later, otherwise search capabilities, and other tools that require search, will be disabled for your project.
+
Click the C/C++ Indexer tab and select No Indexer for now. You will enable indexing later, otherwise search capabilities, and other tools that require search, will be disabled for your project.
+Customizes the selected build configuration allowing the specification of a user defined build command step
+for the selected file. In addition to the build command, the user may specify any additional input file(s)
+dependencies, the output file(s) generated by the build step, a descriptive message to be displayed in the
+build output when the command is executed, and a rule for how the custom build step should be applied with
+respect to other tools defined in the configuration, if any. Custom build steps may be specified for any
+file type, regardless of the project nature.
+
+
+
+
Exclude from build
Excludes the selected file from being built with the
+ selected build configuration.
+
Configuration:
Select the build configuration from the list provided.
Disable the custom build step for the selected file, or apply the custom build step overriding any other tools defined for the configuration.
+
Additional Input File Name(s)
A semicolon separated list of additional input files required by this build command. The selected file is included by default. Paths are interpreted as relative to the project directory.
+
Output File Name(s)
A semicolon separated list of output files produced by this build command. Paths are interpreted as relative to the build directory.
+
Command
A semicolon separated list of commands that will be executed to perform this build step.
+
Description
An announcement string which will be echoed in the build output when this build step is executed.
+
Restore Defaults
Returns any changes back to the settings of the selected configuration.
+
+
+
diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_build.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_build.htm
index 09940bf077b..423fc0be6be 100644
--- a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_build.htm
+++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_build.htm
@@ -44,11 +44,15 @@ Configuration Settings area to set a specific category of options.
+Customizes the selected build configuration allowing the specification of user defined build command steps, as
+well as a descriptive message to be displayed in the
+build output, immediately prior to and immediately after normal build processing
+executes.
+
+
+
+
Project Type:
Displays the type of project that is built by the
+ selected build configuration.
+
Configuration:
Allows the selection of the active build configuration from the list provided.
+
Manage...
+
You can add, remove and rename configurations.
+
Pre-build Step
+
Command
A command, or a list of semicolon separated
+ commands, to be executed immediately prior to execution of the build.
+
Description
Optional descriptive text that is
+ associated with the pre-build step to be displayed in the build output
+ immediately prior to execution of the pre-build step command or commands.
+
Post-build Step
+
Command
A command, or a list of semicolon separated
+ commands, to be executed immediately after the execution of the build.
+
Description
Optional descriptive text that is
+ associated with the post-build step to be displayed in the build output
+ immediately prior to execution of the post-build step command or commands.
+
Restore Defaults
Returns any changes back to their default
+ setting
+
Apply
Applies any changes.
+
+
+
Detailed Specification
+
To ensure reasonable custom build step behavior, sensible input must be
+provided when specifying custom build step input. Custom build steps are not
+verified for correctness in any regard and are passed exactly as entered into
+the build stream.
+
+In the descriptive text, below, the term "main build" is defined as the sequence
+of commands to be executed when a build is invoked, not including pre-build or
+post-build steps.
+
+The pre-build step is not executed if the state of the main build is determined
+to be up to date; otherwise it is executed. An attempt to execute the main build
+will occur regardless of the success or failure of executing the pre-build step.
+
+
+The post-build step is not executed if the state of the main build is determined
+to be up to date. It will be executed only if the main-build has executed
+successfully.
You can select which C/C++ Indexers to use for your project. The indexer is necessary for search and related features, like content assist.
+
C/C++ Project Properties, Managed, C/C++ Indexer
+
You can select which C/C++ Indexer to use for your project. The indexer is necessary for search and related features, like content assist.
-
+
-
Enable C/C++ Indexing
When selected C++ Indexing is enabled for this project.
-
Enable C++ Index problem reporting
When selected, any index related errors detected will be reported.
+
Available Indexers
Select the Indexer to use for this project, or No Indexer to disable indexing. Some indexers will display additional options below the indexer selection box.
Restore Defaults
Returns any changes back to their default setting.
+Customizes the build macros used in your build configuration.
+
+
+
+
Project Type:
Displays the type of project that is built by the
+ selected build configuration.
+
Configuration:
Select the build configuration from the list provided.
+
Manage...
You can add, remove and rename configurations.
+
Configuration Settings
You can add and remove build macros for a
+ project or configuration. Each tab contains two tables - one for User
+ defined build macros and one for non user-defined build macros. Each
+ table contains three columns:
Name of the build macro
+
Type of value contained in the build macro (see below)
+
Value of the build macro.
+
You can view all build macros that are not user-defined in the System
+ Macros table.You
+ can choose to also display all macros defined for lower-precedence contexts
+ in the System Macros table by checking the Show parent context
+ macros checkbox.
+
You can view all user-defined macros in the User
+ Macros table.
+ A user-defined macro overrides a non user-defined macro of the same
+ name for the given context. Overridden macros are displayed in bold in
+ the System Macros table.
+
+
+
Restore Defaults
Returns any changes back to their default setting.
+
Apply
Applies any changes.
+
+
+
Detailed Specification
+
Build Macros can be used in all C/C++ Build configuration properties that
+accept text. Build Macros are referenced in strings by enclosing them in braces, preceded by a dollar sign.
+There are no special restrictions on a macro name, though it is encouraged that a macro name begin with
+a letter and contain only letters, digits and underscore signs. Build macro names are case sensitive.
+
+If the actual value of text property contains ${text}, it must be pre-pended
+with the backslash in order to distinguish it from a build macro. The Managed
+Build System pre-defines many useful macros (see below) and allows tool
+integrators and users to define additional macros.
+
Build Macros can hold several types of values:
+
+
+
Text value: can be any text string
+
Text-List value: an array of Text values
+
Path-file value: can hold a file path
+
Path-dir value: can hold a directory path
+
+
Path-any value: can hold both a file and directory path
+
+
Path-file-List value: an array of Path-file values
+
+
Path-dir-List value: an array of Path-dir values
+
Path-any-List value: an array of Path-any values
+
+
Build Macros are context-sensitive, that is the macro of a
+given name could have different values depending on where it is used.
+Several contexts are defined:
+
+
+
The currently selected file.
+
+
The
+ currently selected option
+
+
The
+ currently selected configuration (which includes a tool-chain).
+
+
The
+ currently selected project.
+
+
The
+ current workspace.
+
+
The CDT
+ and Eclipse installations.
+
+
The
+ process environment variables defined in the environment passed to Eclipse.
+
+
Users can define new macros for any project or
+configuration of a project. The value of a build macro will be searched
+for in the order specified above. If macro is not found for the currently
+selected file context, the currently selected option context will be used, if
+not found, the currently selected configuration context will be used, etc.
+
Macro resolution takes place when the build file is being
+generated.
+All macros except
+the build process environment macros always get resolved in the makefile.
+See the ??“expand build environment macros� checkbox in the “Build Settings� tab
+of the “C/C++ Build�.
+
The Managed Build System pre-defines many useful macros
+described in the following tables:
+
File-specific macros
+
The set of file-context macros is MBS-predefined, neither a
+tool-integrator nor a user can define new file-context macros, but a
+tool-integrator can specify the values for the file-context macros using
+attributes of a builder element. The macro values specified in those attributes
+should not contain the explicit e.g. file name, but instead should provide the
+filename definition in terms of the builder automatic variables and text
+functions. This is needed to allow the makefile generator to generate pattern
+rules, e.g. in the case of Gnu make, the macro that represents the output file
+name will contain the “$(notdir $@)? value. The builder definition of the gnu
+tool-chain will contain attribute specifying the value for that macro. If a
+tool-integrator does not provide the values for the file-specific macros, MBS
+will automatically expand them to their actual value when generating the
+buildfile, e.g. for the foo.c file the macro that represents the input file name
+will contain “foo.c? in this case. In this case the makefile generator will not
+be able to use pattern rules for building files with options containing
+file-specific macros. (see the “Supplying the file-context macros values?
+section for more detail)
+
+
+
+
Macro
+
+
Value
+ Type
+
+
+ Description
+
+
+
+
${InputFileName}
+
+
Text
+
+
Represents the input
+ file name. The input file has the following meaning:
+
+ 1.If a
+ tool does not accept building multiple files of the primary input type
+ with one tool invocation, the input file is the file of the primary
+ input type being built.
+
+ 2.If a
+ tool accepts building multiple files of the primary input type with one
+ tool invocation the input file is undefined and the macros representing
+ the input file contain information about one of the inputs of the
+ primary input type being built.
+
+
+
+
${InputFileExt}
+
+
Text
+
+
Represents the extension
+ of the input file.
+
+
+
+
${InputFileBaseName}
+
+
Text
+
+
Represents the base name
+ of the input file. That is the file name with an extension stripped.
+
+
+
+
${InputFileRelPath}
+
+
Path(File)
+
+
Represents the input
+ file path relative to the builder current directory.
+
+
+
+
${InputDirRelPath}
+
+
Path(Dir)
+
+
Represents the input
+ file directory path relative to the builder current directory.
+
+
+
+
${OutputFileName}
+
+
Text
+
+
Represents the output
+ file name. The output file has the following meaning:
+
+ 1.If a
+ tool is not capable of producing multiple files of the primary output
+ type with one tool invocation the output file is the file of the primary
+ output type that is built with a given tool invocation.
+
+ 2.If a
+ tool is capable of producing multiple files of the primary output type
+ with one tool invocation the output file is undefined and the macros
+ representing the output file contain information about one of the files
+ of the primary output type that are built with a given tool invocation.
+
+
+
+
${OutputFileExt}
+
+
Text
+
+
Represents the output
+ file extension.
+
+
+
+
${OutputFileBaseName}
+
+
Text
+
+
Represents the output
+ file base name. That is the output file name with an extension stripped.
+
+
+
+
${OutputFileRelPath}
+
+
Path(File)
+
+
Represents the output
+ file path relative to the current builder directory.
+
+
+
+
${OutputDirRelPath}
+
+
Path(Dir)
+
+
Represents the output
+ file directory path relative to the current builder directory.
+
+
+
Configuration-specific macros
+
+
+
+
Macro
+
+
Value
+ Type
+
+
+ Description
+
+
+
+
${ConfigName}
+
+
Text
+
+
Represents the name of a
+ given configuration.
+
+
+
+
${ConfigDescription}
+
+
Text
+
+
Represents the description of a given
+ configuration.
+
+
+
+
${BuildArtifactFileName}
+
+
Text
+
+
Represents the name of the build artifact.
+
+
+
+
${BuildArtifactFileExt}
+
+
Text
+
+
Represents the extension of the build artifact.
+
+
+
+
${BuildArtifactFileBaseName}
+
+
Text
+
+
Represents the base name of the build artifact.
+
+
+
+
${BuildArtifactFilePrefix}
+
+
Text
+
+
Represents the prefix of the build artifact.
+
+
+
+
${TargetOsList}
+
+
Text-List
+
+
Represents the list of the target OS names.
+
+
+
+
${TargetArchList}
+
+
Text-List
+
+
Represents the list of the target Arch names.
+
+
+
Project-specific macros
+
+
+
+
${ProjName}
+
+
Text
+
+
Represents the name of a
+ given project.
+
+
+
+
${ProjDirPath}
+
+
Path(Dir)
+
+
Represents the absolute path of a given project.
+
+
+
+
Workspace-specific macros
+
+
+
+
${WorkspaceDirPath}
+
+
Path(Dir)
+
+
Represents the workspace absolute path.
+
+
+
+
${DirectoryDelimiter}
+
+
Text
+
+
Represents the directory delimiter used on the
+ system. That is the “\? for Win32 systems and the “/? for Unix-like
+ systems
+
This could be useful, e.g. in the case a user needs
+ the absolute path of an input file. The absolute path would be
+ represented in the following way: ${CWD}${DirectoryDelimiter}${InputFileRelPath}
+
+
+
+
${PathDelimiter}
+
+
Text
+
+
Represents the default path delimiter used on the
+ system to separate paths in the path environment variables. That is the
+ “;? for Win32 systems and the “:? for Unix-like systems
+
This might be used in the environment variable
+ definitions
+
+
+
CDT/Eclipse installation-specific macros
+
+
+
+
${EclipseVersion}
+
+
Text
+
+
Represents the current eclipse version.
+
+
+
+
${CDTVersion}
+
+
Text
+
+
Represents the current CDT version.
+
+
+
+
${MBSVersion}
+
+
Text
+
+
Represents the current MBS version.
+
+
+
+
${HostOsName}
+
+
Text
+
+
Represents the operating system name on which
+ eclipse is running.
+
+
+
+
${HostArchName}
+
+
Text
+
+
Represents the architecture name on which eclipse
+ is running.
diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_cindexer.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_cindexer.htm
index 6f29059abe5..fc39943c1c4 100644
--- a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_cindexer.htm
+++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_cindexer.htm
@@ -16,7 +16,7 @@ function changeSize(theImage,wd,ht) {
New Project Wizard - Managed Make, C/C++ Indexer
-
You can select whether to enable the C/C++ Indexer for your project from this page of the wizard. The indexer is necessary for search and related features, like content assist.
+
You can select which C/C++ Indexer to use for your project from this page of the wizard. The indexer is necessary for search and related features, like content assist.
@@ -29,13 +29,9 @@ function changeSize(theImage,wd,ht) {
-
Enable C++ Indexing
-
When selected C++ Indexing is enabled for this project.
+
Available Indexers
+
Select the Indexer to use for this project, or No Indexer to disable indexing. Some indexers will display additional options below the indexer selection box.
-
-
C++ Index problem reporting
-
Select the categories of index related errors that will be reported.
-
diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_name.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_name.htm
index 2825ffc0081..b75e533252a 100644
--- a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_name.htm
+++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_name.htm
@@ -36,7 +36,7 @@ function changeSize(theImage,wd,ht) {
-
Location
+
Directory
If Use Default Location is not selected, enter the location where the project is to be created.
diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_proj.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_proj.htm
index 3812eb63098..2723cfb5201 100644
--- a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_proj.htm
+++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_new_proj_wiz_m_proj.htm
@@ -28,7 +28,7 @@ function changeSize(theImage,wd,ht) {
-
Select Project References
+
Referenced C/C++ Projects
If you have any other projects in your workspace, you can select them as references for this new C or C++ project.
You can select a project type from the drop down list.
@@ -25,11 +24,16 @@
Configurations
Specifies which build configurations will be supported for your project.
-
-
+
+
Show All Project Types
-
If selected, all known project types will appear in the Configurations window, by default, the list is filtered so that only project types for the host OS are shown.
-
+
If selected, all known project types will appear in the Project Type list.
+ By default, the list is filtered so that only project types that are buildable on the host system are shown.
+
+
+
Show All Configurations
+
If selected, all known default configurations will appear in the Configurations window.
+ By default, the list is filtered so that only configurations that are buildable on the host system are shown.
How you update your CDT 1.x project to CDT 2.1 depends upon whether the
+
How you update your CDT 1.x project to CDT 3.0 depends upon whether the
project is a Standard Make project or a Managed Make project. For a Standard
Make project, see Convert to C/C++ Make Project Wizard below.
Updating a Managed Make Project
@@ -22,7 +22,7 @@ convert your project when it attempts to read the Managed Build project
information and discovers that the project needs to be updated. You will be prompted to update the project.
Click Yes and the project will be updated. The updated Managed
-Build information can no longer be loaded by CDT 1.x or CDT 2.0. Select
+Build information can no longer be loaded by CDT 1.x or CDT 2.x. Select
No and the project will not be updated. You will be able to view the
Managed Build settings, but no changes will be saved when you close the project
or exit Eclipse.
diff --git a/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_convert_mbs20_proj.htm b/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_convert_mbs20_proj.htm
index c46979c7527..f2fb156405e 100644
--- a/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_convert_mbs20_proj.htm
+++ b/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_convert_mbs20_proj.htm
@@ -4,20 +4,20 @@
-Converting CDT 2.0 Managed Make Projects
+Converting CDT 2.x Managed Make Projects
-
Converting CDT 2.0 Managed Make Projects
+
Converting CDT 2.x Managed Make Projects
-
For a CDT 2.0 Managed Make project, the Managed Build system will prompt you to
+
For a CDT 2.x Managed Make project, the Managed Build system will prompt you to
convert your project when it attempts to read the Managed Build project
information and discovers that the project needs to be updated. You will be prompted to update the project.
-
+
Click Yes and the project will be updated. The updated Managed
-Build information can no longer be loaded by CDT 2.0. Select
+Build information can no longer be loaded by CDT 2.x. Select
No and the project will not be updated. You will be able to view the
Managed Build settings, but no changes will be saved when you close the project
or exit Eclipse.
diff --git a/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_error_parser.htm b/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_error_parser.htm
index 9d9bb55f268..57f891a32f2 100644
--- a/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_error_parser.htm
+++ b/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_error_parser.htm
@@ -30,7 +30,8 @@ project properties in the Preferences window for future standard make projects.<
Do one of the following:
To set properties for future Standard Make projects, click Window > Preferences . ExpandC/C++, and click New Make Projects.
-
In the C/C++ Projects view, right-click a standard make project, and select Properties. Select C/C++ Make Project from the list.
+
For a Standard Make project, in the C/C++ Projects view, right-click the project, and select Properties. Select C/C++ Make Project from the list.
+
For a Managed Make project, in the C/C++ Projects view, right-click the project, and select Properties. Select C/C++ Build from the list.
diff --git a/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_parser.htm b/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_parser.htm
index 1d613da2e6e..b2b9cfe6003 100644
--- a/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_parser.htm
+++ b/doc/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_parser.htm
@@ -18,14 +18,14 @@ project, you can view the components of the .o file in the C/C++ Projects view
and view the contents of the .o file in the C/C++ editor. You can also easily browse for the executable when
defining run/debug configurations.
-
You can define the properties on a per project basis from the New Project
+
For a Standard Make project, you can define the properties on a per project basis from the New Project
wizard, in the C/C++ Projects view or in the Navigator view. You can also define
project properties in the Preferences window for future standard make projects.
-
To select a binary parser:
+
To set properties for future Standard Make projects:
-
To set properties for future Standard Make projects, click Window >
+
Click Window >
Preferences . Expand C/C++, click New Make Projects.
Click the Binary Parser tab.
@@ -38,6 +38,13 @@ project properties in the Preferences window for future standard make projects.<
Click OK.
+
For a Managed Make project:
+
+
In the C/C++ Projects view, right-click the project, and select Properties.
For managed make projects, you need to select the platform on which you plan
-to deploy your program. You also need to select a release or debug configuration for your project.
+
For Managed Make projects, you need to select the type of project that you plan to create, and the
+default configurations for your project.
-
To select a deployment platform:
+
To select a project type:
-
In the C/C++ Projects view, right-click a project, and select Properties.
Select C/C++
- Build from the list.
-
To create a configuration with optimization flags enabled and debug
- symbols disabled, in the Configurations list, select Release.
-
To create a configuration with optimization flags disabled and debug
- symbols enabled, in the Configurations list, select Debug.
+
Select a project type from the list. By default, this dialog dispays only the project types
+ that are buildable on the system on which Eclipse is running.
+ You can view all installed project types by selecting the Show All Project Types button.
+
Select the configurations that you want added to your project.
+ By default, this dialog dispays only the configurations
+ that are buildable on the system on which Eclipse is running.
+ You can view all default configurations by selecting the Show All Configurations button.
@@ -35,9 +36,6 @@ to deploy your program. You also need to select a release or debug configuration