On 6/14/07, <b class="gmail_sendername">Clark J. Wang</b> &lt;<a href="mailto:dearvoid@gmail.com">dearvoid@gmail.com</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<span class="q">On 6/14/07, <b class="gmail_sendername">Alan W. Irwin</b> &lt;<a href="mailto:irwin@beluga.phys.uvic.ca" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">irwin@beluga.phys.uvic.ca</a>
&gt; wrote:</span><div><span class="q"><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On 2007-06-14 08:58+0800 Clark J. Wang wrote:<br><br>&gt; Shared libs have different suffixes on different OSes. For example on Linux<br>&gt; the suffix is `.so&#39; and on Mac OS X it&#39;s `.dylib&#39;. I want to use `dlopen()&#39;
<br>&gt; in my code so I want to get the suffix and then define it in a header file.<br>&gt; Can I do that in CMake? And how?<br><br>You could write a CMake test to create a shared object, gets its full name,<br>and parse for the suffix.&nbsp;&nbsp;However, that is a non-trivial amount of cmake
<br>script development (at least it would be for me) so let me discuss an<br>alternative that might work a little easier for you.</blockquote></span><div><br>I&#39;ll try to write a script to do that later.<br></div><span class="q">
</span></div></blockquote></div><br>It&#39;s not so difficult as I imanged:<br><br>
PROJECT(hello)<br>
ADD_LIBRARY(hello SHARED hello.c)<br>
GET_TARGET_PROPERTY(fullPath hello LOCATION)<br>
GET_FILENAME_COMPONENT(suffix ${fullPath} EXT)<br>
MESSAGE(&quot;suffix = ${suffix}&quot;)<br><br>To define the suffix in a header file we can call CONFIGURE_FILE.<br>