<html 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=utf-8">
<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:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Are we now able to clearly distinguish classic flang vs. flang with preprocessor macros?
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I think that would be a pre-requisite before filing a bug report/feature request with the CMake team.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">It is good to hear that they are engaged because of their involvement with ECP.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-left:.5in"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">flang-dev <flang-dev-bounces@lists.llvm.org> on behalf of Michael Kruse via flang-dev <flang-dev@lists.llvm.org><br>
<b>Reply-To: </b>Michael Kruse <llvm@meinersbur.de><br>
<b>Date: </b>Thursday, July 1, 2021 at 10:55 AM<br>
<b>To: </b>Andrzej Warzynski <andrzej.warzynski@arm.com><br>
<b>Cc: </b>via flang-dev <flang-dev@lists.llvm.org><br>
<b>Subject: </b>Re: [flang-dev] Flang + CMake<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Am Do., 1. Juli 2021 um 08:20 Uhr schrieb Andrzej Warzynski<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><<a href="mailto:andrzej.warzynski@arm.com">andrzej.warzynski@arm.com</a>>:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0in 0in 0in 4.0pt;margin-left:3.75pt;margin-right:0in" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class="MsoNormal" style="margin-left:.5in">These upper-case predefinitions were added to CMake long before LLVM<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Flang [1]. I think that it is safe to assume that they were meant for<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">"classic Flang" rather than LLVM Flang.<o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">The repository linked in [1] is classic flang.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0in 0in 0in 4.0pt;margin-left:3.75pt;margin-right:0in" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class="MsoNormal" style="margin-left:.5in">`__flang__`, `__flang_major__`, `__flang_minor__` and<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">`__flang_patchlevel__` are defined by the driver rather then the<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">preprocessor. These pre-definitions are consistent with Clang.<o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">From the programmer's perspective there is no difference which<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">component defines a macro. They are expanded the same in CMake's<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">introspection program.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">From what I have seen it seems to me that there is no version of new<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">flang/f18 that defined a __FLANG_MAJOR__ etc. preprocessor macro<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">itself. Is this wrong?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">What additional macros does the preprocessor define?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Which macros should CMake use to detect new flang/f18 and distinguish<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">it from classic flang?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">The CMake maintainers are quite responsive and have an interest in<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">making flang work due their involvement in ECP. I suggest to open a<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">bug report in the CMake bug tracker to coordinate above questions with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">them.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Michael<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">_______________________________________________<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">flang-dev mailing list<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><a href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
</div>
</body>
</html>