<br><br><div class="gmail_quote">On Sun, Mar 20, 2011 at 11:13 PM, Deepayan Sarkar <span dir="ltr">&lt;<a href="mailto:deepayan.sarkar@gmail.com">deepayan.sarkar@gmail.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><div></div><div class="h5">On Mon, Mar 21, 2011 at 5:39 AM, Michael Lawrence<br>
&lt;<a href="mailto:lawrence.michael@gene.com">lawrence.michael@gene.com</a>&gt; wrote:<br>
&gt; Hi guys,<br>
&gt;<br>
&gt; On Windows, we want to embed the Qt DLLs in the package. Looks like it makes<br>
&gt; the package about 60 MB in size, which is probably OK. The main issue is<br>
&gt; that we need to load the library in .onLoad(), after we set the PATH, which<br>
&gt; means we cannot use the NAMESPACE useDynLib(qtbase, .registration=TRUE).<br>
&gt; Thus, we lose automatic assignment of the registered native symbols in the<br>
&gt; namespace. This means using .Call(&quot;foo&quot;, PACKAGE=&quot;qtbase&quot;) instead of<br>
&gt; .Call(foo). The latter is obviously a lot cleaner, but it&#39;s a small price to<br>
&gt; pay to get things smoothly working on Windows. One alternative would be<br>
&gt; statically linking with Qt. That would require us to maintain our own Qt<br>
&gt; static libs (converted from the DLLs). That in my opinion is worse than the<br>
&gt; more complex .Call syntax.<br>
<br>
</div></div>I&#39;m fine with the .Call(&quot;foo&quot;, PACKAGE=&quot;qtbase&quot;) form.<br>
<br>
Is it another option to require user-installed Qt as on Linux? (Of<br>
course not a good idea, but just wanted to check).<br>
<font color="#888888"><br></font></blockquote><div><br>It is an option, but yes something we want to avoid. Another option would be to perform the registration manually in .onLoad, but that would require &quot;declaring&quot; the symbols as NULL or something in the package. That would present a maintenance headache. Or we could define them in a separate environment and have .Call(native$foo). Another option is to have a .QtCall wrapper that simulates it.<br>
<br>I&#39;ve gone ahead and switched the syntax of the .Call invocations. The Windows version seems to work fine now, without a separate installation of Qt! Next step is to get this for the other packages, qtpaint and qtutils. And then it&#39;s CRAN time.<br>
<br><br>Michael<br><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><font color="#888888">
-Deepayan<br>
</font></blockquote></div><br>