Instead of overriding the compiler in the CMakeLists.txt to a specific compiler version, why not guide CMake&#39;s compiler detection from the outside and have CMake &quot;choose&quot; the one you want?  For instance, since you&#39;re already using a wrapper to drive the CMAKe build, you could call cmake with &quot;cmake -DCMAKE_C_COMPILER=/usr/bin/gcc44 -DCMAKE_CXX_COMPILER=/usr/bin/g++44 ...&quot; or inside your wrapper script, you could export the CC and CXX environment variables.  This will allow your CMake build to be clean and portable while abstracting the configuration specific to your particular environment to the wrapper script you&#39;re already using.  You could also look at using pre-defined cache files to prime a collection of commonly used settings.  Using a pre-defined cache file has actually turned out to be a good solution for my group here when we had to maintain a hand-full of commonly used build configurations.  The cache files just look like:<br>


<br>---<br>set(OPTION1 ON CACHE BOOL &quot;Doc for Option 1&quot;)<br>set(OPTION2 /path/to/foo CACHE FILEPATH &quot;Doc for Option 2&quot;)<br>set(CMAKE_CXX_COMPILER /usr/bin/g++44 CACHE FILEPATH &quot;CXX Compiler&quot;)<br>


...<br>---<br><br>And then you can instruct CMake to pre-load it&#39;s cache values via:<br>cmake -C /path/to/settings.cmake /path/to/source<br><br>A common use case for us is to have a particular set of options that are set specifically for RHEL5 and another set when building for RHEL6.  It&#39;s then often convenient to keep these in the repo with the rest of the code.<br>


<br>Just a though<br>- Chuck<br><br><br><div class="gmail_quote">On Thu, May 2, 2013 at 3:35 PM, Miller, Frank <span dir="ltr">&lt;<a href="mailto:FMiller@sjm.com" target="_blank">FMiller@sjm.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">






<div bgcolor="white" link="blue" vlink="purple" lang="EN-US">
<div>
<p class="MsoNormal"><span style="color:#1f497d">Update. The reason I didn’t have CMAKE_CXX_COMPILER in my cache is because I was doing a<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">  set(CMAKE_CXX_COMPILER /usr/bin/g++44 )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">at the top of my root CMakeLists.txt. That preempts the set( CACHE ) call that project() does. My bad.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Frank <u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext"> <a href="mailto:cmake-bounces@cmake.org" target="_blank">cmake-bounces@cmake.org</a> [mailto:<a href="mailto:cmake-bounces@cmake.org" target="_blank">cmake-bounces@cmake.org</a>]
<b>On Behalf Of </b>Miller, Frank<br>
<b>Sent:</b> Thursday, May 02, 2013 9:51 AM<br>
<b>To:</b> <a href="mailto:m.hergarden@euphoria-it.nl" target="_blank">m.hergarden@euphoria-it.nl</a><br>
<b>Cc:</b> <a href="mailto:cmake@cmake.org" target="_blank">cmake@cmake.org</a><br>
<b>Subject:</b> Re: [CMake] How to determine the compiler used outside of cmake<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="color:#1f497d">Interesting. I am running a very recent version (2.8.10.20130415) built from git. Perhaps the handling of CMAKE_CXX_COMPILER has changed recently.<u></u><u></u></span></p>



<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">I can’t believe I didn’t think to manually put it in the cache. That will work for me. Thanks.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">As for the bigger problem I am solving... I have a wrapper script that drives the build. This is done to emulate a legacy build system and add some nice-to-haves. For example, the user can call the script from
 their source tree and it will call cmake/ninja in the proper binary tree. The default compiler to be used is hard coded into the CMakeLists.txt and I would like to have the script detect when the compiler changes and do a reconfigure automatically.<u></u><u></u></span></p>



<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Now that I’m explaining the larger problem, I think I will have to put extra information in the cache to detect when the user manually overrides the default compiler. So I probably would have come around to your
 suggestion on my own.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Thanks again,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Frank<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext"> m.hergarden [<a href="mailto:m.hergarden@euphoria-it.nl" target="_blank">mailto:m.hergarden@euphoria-it.nl</a>]
<br>
<b>Sent:</b> Thursday, May 02, 2013 12:16 AM<br>
<b>To:</b> Miller, Frank<br>
<b>Cc:</b> <a href="mailto:cmake@cmake.org" target="_blank">cmake@cmake.org</a><br>
<b>Subject:</b> Re: [CMake] How to determine the compiler used outside of cmake<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">The compiler does show up in my cache: CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++, but that doesn&#39;t solve your issue.<br>
What is the bigger problem you are solving? If you really really need it in the cache, you can always write a variable yourself to make sure it&#39;s there.<br>
<br>
Regards,<br>
Micha<br>
<br>
On 05/01/2013 09:56 PM, Miller, Frank wrote:<u></u><u></u></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Greetings,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Given a configured build tree, I would like to determine the c++ compiler used without reconfiguring. I expected the CMAKE_CXX_COMPILER variable would be in the CMakeCache.txt but I was wrong. I tried to run a simple cmake script with ‘cmake
 -P’ and print the value of CMAKE_CXX_COMPILER but that does not work. I found the value in ‘CMakeFiles/2.8.10.20130415/CMakeCXXCompiler.cmake’, so I have a workaround, but that smells like the wrong solution. Does anyone know of a better way?<u></u><u></u></p>



<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Thanks as always,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Frank<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;"><br>
This communication, including any attachments, may contain information that is proprietary, privileged, confidential or legally exempt from disclosure. If you are not a named addressee, you are hereby notified that you are not authorized to read, print, retain
 a copy of or disseminate any portion of this communication without the consent of the sender and that doing so may be unlawful. If you have received this communication in error, please immediately notify the sender via return e-mail and delete it from your
 system. <br>
<br>
<u></u><u></u></span></p>
<pre>--<u></u><u></u></pre>
<pre><u></u> <u></u></pre>
<pre>Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><u></u><u></u></pre>
<pre><u></u> <u></u></pre>
<pre>Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><u></u><u></u></pre>
<pre><u></u> <u></u></pre>
<pre>Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><u></u><u></u></pre>
<pre><u></u> <u></u></pre>
<pre>Follow this link to subscribe/unsubscribe:<u></u><u></u></pre>
<pre><a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><u></u><u></u></pre>
</blockquote>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;">--
<u></u><u></u></span></p>
<p class="MsoNormal">Met vriendelijke groet,<u></u><u></u></p>
<p class="MsoNormal">Micha Hergarden<u></u><u></u></p>
<p class="MsoNormal"><img src="cid:image001.png@01CE4741.44A62AB0" alt="image001" border="0" height="84" width="200">        
<br>
<br>
Lieve Vrouweplein 9-10<br>
5038 TS Tilburg<br>
<br>
<b><span style="color:#108eb4">CONTACT</span></b><br>
<br>
<b><span style="color:#108eb4">T</span></b><span style="color:#108eb4"> </span>   <a href="tel:%2B31%20%280%29%2013%20460%2092%2080" value="+31134609280" target="_blank">+31 (0) 13 460 92 80</a><br>
<b><span style="color:#108eb4">F</span></b><span style="color:#108eb4"> </span>   <a href="tel:%2B31%20%280%29%2013%20460%2092%2081" value="+31134609281" target="_blank">+31 (0) 13 460 92 81</a><br>
<b><span style="color:#108eb4">E    </span></b><span style="color:#108eb4"><a href="mailto:m.hergarden@euphoria-it.nl" target="_blank"><span style="color:#108eb4">m.hergarden@euphoria-it.nl</span></a><br>
<b>W  </b><a href="http://www.euphoria-it.nl/" title="http://www.euphoria-it.nl/
              blocked::http://www.euphoria-it.nl/
              http://www.euphoria-it.nl/" target="_blank"><span style="color:#108eb4">www.euphoria-it.nl</span></a></span><br>
<br>
Helpdesk: 013 - 460 92 86 <br>
Storingdienst: 06-47942098<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>

<br>--<br>
<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br></blockquote></div><br>