<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have encountered a problem with response file usage for includes.<o:p></o:p></p>
<p class="MsoNormal">My project is using tasking compiler.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>Issue:<o:p></o:p></b></p>
<p class="MsoNormal">Response file link flag “CMAKE_C_RESPONSE_FILE_LINK_FLAG” is not customizable for include paths.<o:p></o:p></p>
<p class="MsoNormal">Cmake generated the *.rsp file always using @ but this is not accepted by tasking compiler. Tasking compiler expects -f instead of @.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">…<o:p></o:p></p>
<p class="MsoNormal">C_INCLUDES = <b><span style="color:red">@</span></b>CMakeFiles/dummyTarget/includes_C.rsp<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This issue is only with includes response file. For objects, CMAKE_C_RESPONSE_FILE_LINK_FLAG works.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>Project setup:<o:p></o:p></b></p>
<p class="MsoNormal">set(CMAKE_C_RESPONSE_FILE_LINK_FLAG "-f ")<o:p></o:p></p>
<p class="MsoNormal">set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1)<o:p></o:p></p>
<p class="MsoNormal">set(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES 1)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>Possible cause:<o:p></o:p></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The @ symbol is hardcoded in “cmMakefileTargetGenerator::AddIncludeFlags” function in file https://gitlab.kitware.com/cmake/cmake/blob/master/Source/cmMakefileTargetGenerator.cxx.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  if (useResponseFile) {<o:p></o:p></p>
<p class="MsoNormal">    std::string name = "includes_";<o:p></o:p></p>
<p class="MsoNormal">    name += lang;<o:p></o:p></p>
<p class="MsoNormal">    name += ".rsp";<o:p></o:p></p>
<p class="MsoNormal">    std::string arg = "@" +<o:p></o:p></p>
<p class="MsoNormal">      this->CreateResponseFile(name.c_str(), includeFlags,<o:p></o:p></p>
<p class="MsoNormal">                               this->FlagFileDepends[lang]);<o:p></o:p></p>
<p class="MsoNormal">    this->LocalGenerator->AppendFlags(flags, arg);<o:p></o:p></p>
<p class="MsoNormal">  }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">However, the implementation should be like in “cmMakefileTargetGenerator::CreateObjectLists” function.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    // Lookup the response file reference flag.<o:p></o:p></p>
<p class="MsoNormal">    std::string responseFlagVar = "CMAKE_";<o:p></o:p></p>
<p class="MsoNormal">    responseFlagVar +=<o:p></o:p></p>
<p class="MsoNormal">      this->GeneratorTarget->GetLinkerLanguage(this->ConfigName);<o:p></o:p></p>
<p class="MsoNormal">    responseFlagVar += "_RESPONSE_FILE_LINK_FLAG";<o:p></o:p></p>
<p class="MsoNormal">    const char* responseFlag = this->Makefile->GetDefinition(responseFlagVar);<o:p></o:p></p>
<p class="MsoNormal">    if (!responseFlag) {<o:p></o:p></p>
<p class="MsoNormal">      responseFlag = "@";<o:p></o:p></p>
<p class="MsoNormal">    }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><span lang="FR-BE" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:FR-BE">Lenindarbi Jayakumar<o:p></o:p></span></b></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="FR-BE" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:FR-BE">Software Engineer<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="FR-BE" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black;mso-fareast-language:FR-BE"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><b><span lang="NL-BE" style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:FR-BE">Magna Electronics Europe GmbH & Co. OHG<o:p></o:p></span></b></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="NL-BE" style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:FR-BE">Kurfürst-Eppstein-Ring 9<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="NL-BE" style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:FR-BE">63877 Sailauf<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="FR-BE" style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:FR-BE">OFFICE +49 6093 9942 6462 
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="FR-BE" style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:FR-BE">FAX +49 6093 9942 6001<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="FR-BE" style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:FR-BE">MOBILE
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="FR-BE" style="font-size:8.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:FR-BE">Lenindarbi.Jayakumar@magna.com<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DE" style="font-size:7.5pt;font-family:"Arial",sans-serif;color:gray"><a href="http://www.magnaelectronics.com/"><span lang="EN-US" style="color:gray">http://www.magna.com</span></a></span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:gray"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">Magna Electronics Europe GmbH & Co.
</span><span lang="DE" style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">OHG<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DE" style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">Geschäftsführende Gesellschaft: Magna Electronics Europe Verwaltungs GmbH
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DE" style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">Geschäftsführer: Rainer Bruns, Cornelius Wolber<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DE" style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">Sitz der geschäftsführenden Gesellschaft: Sailauf, Deutschland
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DE" style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">Registergericht: Aschaffenburg / HRB 8778
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DE" style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">Sitz der Gesellschaft (OHG): 63877 Sailauf, Deutschland
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DE" style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">Registergericht: Aschaffenburg / HRA 4616
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DE" style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">Diese Nachricht ist ausschließlich für den oben bezeichneten Adressaten bestimmt und enthält möglicherweise vertrauliche Informationen. Sollten Sie nicht
 der oben bezeichnete Adressat sein oder diese Nachricht irrtümlich erhalten haben, ersuchen wir Sie, diese Nachricht nicht weiterzugeben, zu kopieren oder im Vertrauen darauf zu handeln, sondern uns unter Lenindarbi.Jayakumar@magna.com zu verständigen und
 diese Nachricht samt allfälliger Anlagen sofort zu löschen. </span><span style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">Vielen Dank.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray">This message is intended only for use by the named addressee and may contain privileged and/or confidential information. If you are not the named addressee, you should
 not disseminate, copy, or take any action in reliance on it. If you have received this message in error, please immediately notify Lenindarbi.Jayakumar@magna.com and delete this message and any attachment. Thank you.</span><span lang="DE" style="font-size:6.0pt;font-family:"Arial",sans-serif;color:gray"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>