Controlling Custom Build execution
Technical Note 83760
11/13/2020 4:36 PM
The generic feature named Custom Build can give unexpected results, such as messages about missing files.
When Custom Build is not working as expected, typically files generated by the tool (invoked by Custom Build) are reported as missing. For example:
Fatal Error[Pe1696]: cannot open source file [...]
The reason is that the project build engine executes the Custom Build tool in parallel with the compiler and the assembler. Thus, files used when compiling might be missing (for example a header file), files that the Custom Build tool will be generating.
Solution for IDE versions 7.1.5 to 8.x.x
In order to make sure that the tool called from Custom Build executes before any files are compiled, select the option Run this tool before all other tools.
There are also situations where it is desirable to run the Custom Build tool prior to linking. In IDE versions up to 8.x.x that is not possible. (For such situations, build from the command line.)
Possible solution for older IDE versions
Rename the files that the Custom Build tool invokes and then force the project dependencies to be rebuilt.
- Change the filename of the input files to be alphabetically sorted before all C, C++, and assembler source files. (For example, a file named
input.xxxcan be renamed to
_input.xxxto be sorted first alphabetically.)
- Choose Project>Clean (This removes the .dep file and forces the project dependencies to be rebuilt.)
- Choose Project>Make
Steps 2 and 3 must be repeated twice (or more times), so that the dependency file (extension .dep) will be properly rebuilt.
In IDE versions 7.1.5 to 8.x.x, Custom Build can run prior to compilation.
For IDE versions older than 7.1.5, this technical note gives a possible solution.
All product names are trademarks or registered trademarks of their respective owners.