Search code examples
armcommand-line-interfaceeclipse-cdtcortex-miar

Headless build using Eclipse CDT with the IAR plugin


I have a C project which was created with Renesas e2studio for Synergy and compiled with IAR Embedded Workbench for Renesas Synergy.

I would like to take advantage of Eclipse's headless build option to build it from command line. I tried this:

C:\Renesas\e2studio_v2022-10_ssp_v2.4.0\eclipse\e2studioc.exe -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data \tempWorkspace -import \Projects\My_S7G2_FW -vmargs -Diar.sdkprovider.arm.v8.location="C:\Program Files (x86)\IAR Systems\Embedded Workbench for Synergy 8.23.3" -cleanBuild My_S7G2_FW/Release

And got:

Create.
Opening 'My_S7G2_FW '.
06/22/2023 9:20:31.950 | INFO   | com.iar.ide.common.ewpath.EwPathManager  | ension configuration -- Path to EW stage not found for provider iar.sdkprovider.arm.v8. Requesting a settings dialog to be displayed...
06/22/2023 9:20:31.969 | INFO   | com.iar.ide.common.ewpath.EwPathManager  | main                 -- Path to EW stage not found for provider iar.sdkprovider.arm.v8. Requesting a settings dialog to be displayed...
06/22/2023 9:20:31.188 | INFO   | m.v7.toolchain.tables.ArmCoreFpuRegistry | ension configuration -- Enabling Cortex-*F workaround (ECL-1993) for EWARM 7.40.3
06/22/2023 9:20:32.018 | INFO   | com.iar.ide.common.ewpath.EwPathManager  | ension configuration -- Path to EW stage not found for provider iar.sdkprovider.arm.v8. Requesting a settings dialog to be displayed...
06/22/2023 9:20:32.111 | INFO   | com.iar.ide.common.ewpath.EwPathManager  | ension configuration -- Path to EW stage not found for provider iar.sdkprovider.arm.v8. Requesting a settings dialog to be displayed...
06/22/2023 9:20:32.120 | INFO   | com.iar.ide.common.ewpath.EwPathManager  | ension configuration -- Path to EW stage not found for provider iar.sdkprovider.arm.v8. Requesting a settings dialog to be displayed...
06/22/2023 9:20:32.134 | INFO   | com.iar.ide.common.ewpath.EwPathManager  | ractCProjectListener -- Path to EW stage not found for provider iar.sdkprovider.arm.v8. Requesting a settings dialog to be displayed...
06/22/2023 9:20:32.159 | INFO   | com.iar.ide.common.ewpath.EwPathManager  | ker-5: C/C++ Indexer -- Path to EW stage not found for provider iar.sdkprovider.arm.v8. Requesting a settings dialog to be displayed...
06/22/2023 9:20:32.191 | INFO   | com.iar.ide.common.ewpath.EwPathManager  | ension configuration -- Path to EW stage not found for provider iar.sdkprovider.arm.v8. Requesting a settings dialog to be displayed..

Is there another way to help the Eclipse plugin to find the IAR SDK location so that the project can be built entirely from the command line?


Solution

  • I have run into an identical issue and here is how we solved it:

    1. In Eclipse (e2studio), go to your IAR SDK plugin preferences and update the path to the IAR IDE installation directory.
    2. Export the preferences (the button is located at bottom left). Eclipse will offer the choice to "Apply and Continue".
    3. Open "MyPrefs.epf" in a Text Editor and start searching for "iar" until you hit /instance/com.iar.ide/common.ui/EWPath.iar.sdkprovider....
    4. Copy that line contents except for the prefix /instance/ and paste it to the end of C:\Renesas\Synergy\e2studio...\eclipse\plugins\com.renesas.ide.e2studio_...\plugin_customization.ini

    Now it should be possible for e2studio (Eclipse CDT) to find the IAR SDK without any further manual steps from the GUI and from the CLI.

    This procedure was quite helpful for customizing all the plugin options we needed to be set before creating the Workspace. The same procedure can be used similarly with standard Eclipse CDT instances that ships as well.

    Additionally you can also use e2studioc.exe with the --no-indexer option for speeding up things a little bit when building a project from the command line (based on your example):

    C:\Renesas\e2studio_v2022-10_ssp_v2.4.0\eclipse\e2studioc.exe
     -no-indexer
     -application org.eclipse.cdt.managedbuilder.core.headlessbuild
     -verbose
     -data \tempWorkspace
     -import \Projects\My_S7G2_FW 
     -cleanBuild My_S7G2_FW/Release