You can through project settings set --cmd_file with options for compiler / armcl. That is set / passed correctly.
But the same file is not correctly passed to linker, or to be more correct : if you want to pass exactly same file (because you want to pass same set of --defines) to linker, you need to explicitly add it as extra input.
E.g.:
Invoking: Arm Linker
"/opt/ti/ccs1030/ccs/tools/compiler/ti-cgt-arm_20.2.5.LTS/bin/armcl" --cmd_file=<myflie here which workes nicely during linking>
That file, will not then actually gets processed by the linker.
You can however explicitly change Arm Linker-> Command-line pattern and add this file at the end, after ${output} <myfile here .. > Then, same set of --define's can be passed to both.
I'm not sure what's the CCS intended behaviour: because, at the last - linking -step, I would think there is nothing else to pass to armcl, and you want to pass that file the linker. However, if you have also only compiler specific commands there then you would need separate command files.. With a shared defines (duh).