<div class="gmail_quote">On Sun, Dec 19, 2010 at 3:50 PM, Mike McQuaid <span dir="ltr">&lt;<a href="mailto:mike@mikemcquaid.com">mike@mikemcquaid.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On 16 December 2010 08:34, Andreas Mohr &lt;<a href="mailto:andi@lisas.de">andi@lisas.de</a>&gt; wrote:<br>
&gt; I&#39;d like to know how to possibly detect this within CMake code.<br>
<br>
</div>This works for me:<br>
INSTALL( CODE &quot;<br>
IF( \${CMAKE_INSTALL_PREFIX} MATCHES .*/_CPack_Packages/.* )<br>
....<br>
ENDIF( \${CMAKE_INSTALL_PREFIX} MATCHES .*/_CPack_Packages/.* )<br>
&quot; )<br>
<br>
However, you then need to put all your CMake logic in INSTALL(CODE<br>
...) logic. Either later tonight or tomorrow I&#39;ll post my suggestions<br>
to this list for possible patches I will try and get included to<br>
improve this situation as INSTALL(CODE ...) escaping isn&#39;t trivial.<br>
<font color="#888888"><br>
--<br>
Mike McQuaid<br>
<a href="http://mikemcquaid.com" target="_blank">http://mikemcquaid.com</a><br>
</font><div><div></div><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br><br>When you find yourself in the &quot;must escape too much&quot; situation in an INSTALL(CODE scenario.... you should switch to writing out a script that you then include with an INSTALL(SCRIPT command. They are absolutely equivalent, except with CODE you specify the code inline when it does not need significant escaping, or if it&#39;s just a line or two. If it does need lots of escaping or is longer than 1-3 lines, I would say it should be the SCRIPT form anyway.<br>
<br>And honestly, I think that Eric&#39;s suggestion of using a CPACK_PROJECT_CONFIG_FILE is the way to go here. If you have one, CPack will include it before running your install rules. You can use any sentinel you like within that file: it will only ever be included by CPack, so if you&#39;re in its context, then you know you&#39;re being run by CPack.<br>
<br><br>HTH,<br>David<br><br>