<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16587" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=686353709-04022008></SPAN><FONT
face=Arial><FONT color=#0000ff><FONT size=2>M<SPAN class=686353709-04022008>y
plugin interface declaration is:</SPAN></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN
class=686353709-04022008></SPAN></FONT></FONT></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN
class=686353709-04022008>interface.h</SPAN></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN
class=686353709-04022008></SPAN></FONT></FONT></FONT><B><FONT color=#7f0055
size=2>
<P align=left>#ifndef</B></FONT><FONT size=2> INTERFACES_H</P></FONT><B><FONT
color=#7f0055 size=2>
<P align=left>#define</B></FONT><FONT size=2> INTERFACES_H</P>
<P align=left></P></FONT><B><FONT color=#7f0055 size=2>
<P align=left>#include</B></FONT><FONT size=2> </FONT><FONT color=#2a00ff
size=2><QtPlugin></P></FONT><FONT size=2>
<P align=left></P></FONT><B><FONT color=#7f0055 size=2>
<P align=left>#include</B></FONT><FONT size=2> </FONT><FONT color=#2a00ff
size=2><QString></P></FONT><FONT size=2>
<P align=left></P></FONT><B><FONT color=#7f0055 size=2>
<P align=left>class</B></FONT><FONT size=2> </FONT><FONT color=#005032
size=2>MyPluginInterface</FONT><FONT size=2> {</P></FONT><B><FONT color=#7f0055
size=2>
<P align=left>public</B></FONT><FONT size=2>:</P>
<P align=left></FONT><FONT color=#3f7f5f size=2>//virtual ~MyPluginInterface()
{</P></FONT><FONT size=2>
<P align=left></FONT><FONT color=#3f7f5f size=2>//}</P></FONT><FONT size=2>
<P align=left></P>
<P align=left></FONT><B><FONT color=#7f0055 size=2>virtual</B></FONT><FONT
size=2> </FONT><FONT color=#005032 size=2>QString</FONT><FONT size=2>
<B>name</B>() </FONT><B><FONT color=#7f0055 size=2>const</B></FONT><FONT size=2>
= 0;</P>
<P align=left>};</P>
<P align=left></P>
<P align=left>Q_DECLARE_INTERFACE(MyPluginInterface,</P>
<P align=left></FONT><FONT color=#2a00ff
size=2>"com.trolltech.PlugAndPaint.MypluginInterface/1.0"</FONT><FONT
size=2>)</P>
<P align=left></P></FONT><B><FONT color=#7f0055 size=2>
<P>#endif</B></FONT><FONT size=2> </FONT></P>
<P><SPAN class=686353709-04022008><FONT color=#7f0055
size=2><STRONG></STRONG></FONT></SPAN> </P>
<P><SPAN class=686353709-04022008><FONT size=2><FONT color=#0000ff><FONT
face=Arial>M<SPAN class=686353709-04022008>y plugin declaration
is:</SPAN></FONT></FONT></FONT></SPAN></P>
<P><SPAN class=686353709-04022008><FONT size=2><FONT color=#0000ff><FONT
face=Arial><SPAN
class=686353709-04022008>Myplugin.h</SPAN></FONT></FONT></FONT></SPAN></P><B><FONT
color=#7f0055 size=2>
<P align=left>#ifndef</B></FONT><FONT size=2> MYPLUGIN_H</P></FONT><B><FONT
color=#7f0055 size=2>
<P align=left>#define</B></FONT><FONT size=2> MYPLUGIN_H</P>
<P align=left></P></FONT><B><FONT color=#7f0055 size=2>
<P align=left>#include</B></FONT><FONT size=2> </FONT><FONT color=#2a00ff
size=2>"interface.h"</P></FONT><FONT size=2>
<P align=left></P></FONT><B><FONT color=#7f0055 size=2>
<P align=left>class</B></FONT><FONT size=2> </FONT><FONT color=#005032
size=2>MyPlugin</FONT><FONT size=2>: </FONT><FONT color=#005032
size=2>QObject</FONT><FONT size=2>,MyPluginInterface</P>
<P align=left>{</P>
<P align=left>Q_OBJECT</P>
<P align=left>Q_INTERFACES(MyPluginInterface)</P></FONT><B><FONT color=#7f0055
size=2>
<P align=left>public</B></FONT><FONT size=2>:</P>
<P align=left></FONT><FONT color=#005032 size=2>QString</FONT><FONT size=2>
<B>name</B>();</P></FONT><B><FONT color=#7f0055 size=2>
<P align=left>private</B></FONT><FONT size=2>:</P>
<P align=left></FONT><FONT color=#005032 size=2>QString</FONT><FONT size=2>
</FONT><FONT color=#0000c0 size=2>mName</FONT><FONT size=2>;</P>
<P align=left>};</P>
<P align=left></P>
<P align=left> </P></FONT><FONT color=#7f0055>
<P><FONT size=2><STRONG>#endif</STRONG></FONT></P>
<P><FONT size=2></FONT> </P>
<P><SPAN class=686353709-04022008><FONT face=Arial color=#0000ff size=2>and
myplugin.cpp</FONT></SPAN></P><SPAN class=686353709-04022008><FONT
color=#0000ff><B><U><FONT color=#0000ff>
<P align=left><FONT face=Arial size=2>#include</FONT></B><FONT face=Arial
size=2> "interface.h"</FONT></P></U></FONT><B><FONT color=#7f0055>
<P align=left><FONT face=Arial size=2>#include</FONT></B></FONT><FONT
face=Arial><FONT size=2><FONT color=#000000> </FONT><FONT
color=#2a00ff>"myplugin.h"</P></FONT></FONT></FONT><FONT face=Arial size=2>
<P align=left></P></FONT><FONT color=#005032>
<P align=left><FONT face=Arial size=2>QString</FONT></FONT><FONT face=Arial
color=#000000 size=2> <B>MyPlugin::name</B>()</FONT></P>
<P align=left><FONT face=Arial size=2>{</FONT></P>
<P align=left><B><FONT color=#7f0055><FONT face=Arial
size=2>return</FONT></B></FONT><FONT size=2><FONT face=Arial> <FONT
color=#0000c0>mName</FONT></FONT><FONT face=Arial>;</FONT></FONT></P>
<P><FONT face=Arial size=2>}</FONT></P>
<P><SPAN class=686353709-04022008><FONT face=Arial
size=2></FONT></SPAN> </P></FONT></SPAN></FONT><BR></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Tomasz Piotrowski
[mailto:tomaszpio@gmail.com] <BR><B>Sent:</B> Monday, February 04, 2008 9:20
AM<BR><B>To:</B> Yang, Y.<BR><B>Subject:</B> Re: [CMake] [Help] Build Qt Plugin
with CMake<BR></FONT><BR></DIV>
<DIV></DIV>How do you define plugin interface. I'v also use cmake to generate Qt
plugins and it's works. <BR>Add your headers then we can say more. It's also
important that your application and plugin should use the same Qt version.
<BR><BR>
<DIV><SPAN class=gmail_quote>2008/2/3, Yang, Y. <<A
href="mailto:Y.Yang@tue.nl">Y.Yang@tue.nl</A>>:</SPAN>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Hi
All,<BR><BR>when I try to build a plugin with my qt application on windows, I
found that the dll build successfully, but when I launch my application it
failed with a message that myplugin.dll is not a valid Qt
plugin.<BR><BR><BR>The following file is my CMakeLists.txt. Is there anything
wrong?<BR>**************************************************<BR>project(myplugin)<BR><BR>set(myplugin_SRCS<BR> myplugin.cpp<BR>)<BR><BR>set(myplugin_MOC_HDRS<BR> myplugin.h<BR> )<BR><BR><BR>include_directories(${QT_INCLUDES}
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../../core)<BR><BR>add_definitions(${QT_DEFINITIONS})<BR>add_definitions(-DQT_PLUGIN)<BR>add_definitions(-DQT_SHARED)<BR>add_definitions(-DQT_NO_DEBUG)<BR><BR>qt4_wrap_cpp(myplugin_MOC_SRCS
${myplugin_MOC_HDRS})<BR>add_library(myplugin SHARED ${myplugin_SRCS}
${myplugin_MOC_SRCS})<BR>target_link_libraries(myplugin
${QT_LIBRARIES} ${QT_QTXML_LIBRARY}
mycore)<BR><BR>_______________________________________________<BR>CMake
mailing list<BR><A href="mailto:CMake@cmake.org">CMake@cmake.org</A><BR><A
href="http://www.cmake.org/mailman/listinfo/cmake">http://www.cmake.org/mailman/listinfo/cmake</A><BR></BLOCKQUOTE></DIV><BR></BODY></HTML>