So now I have carefully set up my compiler include paths in Eclipse to tell the GNU compiler where to find my header files:
The question is: how can I apply these settings to another project?
One of the hidden features in Eclipse is that for the ‘list’ panel settings I can copy and paste them, see “Adding Multiple Include Paths to Build Settings in Eclipse“. So I can select one or multiple lines and then paste it into the other project settings panel.
Then use the usually way on your host to copy (CTRL-C on Windows) and paste (CTRL-V on Windows). As this works through the clipboard, you can paste the content to a text editor too and do further edit, then paste the result into the settings.
Editing the CDT Project File
Another way is to directly edit the project file. All the build tool settings of Eclipse CDT are stored in the .cproject file in the project root folder:
❗ Be careful with editing this file. If you mess up things, your project won’t work any more. Make sure that you do not have that project open in Eclipse to avoid that your file might get overwritten.
If I open that file with a text editor, it is usually easy to spot the place where the option is defined. For the case of the GNU ARM Eclipse plugins it is this:
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.852737460" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""../Sources""/> <listOptionValue builtIn="false" value=""../Project_Settings/Startup_Code""/> ... </option>
With a text editor or with a script it is now easy to change the option entries there.
Instead manually editing/adding new ‘list’ entries like the compiler include paths, it is much easier to copy-paste them directly in the option setting of the compiler settings. But I can edit the paths inside the .cproject project file too. Simply open the .cproject file with a normal text editor (or the Eclipse Editor view) and I can do any changes I want or need. And best of all: that method is not limited to include paths: I can change any settings
Happy Including 🙂