<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">OK, I am gathering that do this in my component plugin:<div class=""><div class=""><br class=""></div><div class=""><div style="color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Menlo, Monaco, "Courier New", monospace; line-height: 18px; white-space: pre;" class=""><div class="">    <span style="color: #569cd6;" class="">def</span> <span style="color: #dcdcaa;" class="">install</span>(<span style="color: #9cdcfe;" class="">self</span>):</div><div class="">        pyqt = <span style="color: #569cd6;" class="">self</span>.get_component(<span style="color: #ce9178;" class="">'PyQt'</span>)</div><div class="">        pyqt.install_pyqt_component(<span style="color: #569cd6;" class="">self</span>)</div></div></div><div class=""><br class=""></div><div class="">Now I’m getting unresolved symbols for my extension module, though some moc files are generated so something is happening there.</div><div class=""><br class=""></div><div class="">It looks like install_pyqt_component() loads the project file for the component, though I have no idea how it finds it. Mine is in <APPROOT>/_pkdiagram/_pkdiagram.toml.</div><div class=""><br class=""></div><div class="">My sysroot is in <APPROOT>/vendor/sysroot.toml.</div><div class=""><br class=""></div><div class="">Pyqtdeploy-build doesn’t complain if I rename my pyproject.toml even though the code says it should complain, so I know it isn’t finding the file in order to figure out where the .sip file and other sources are.</div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 24, 2020, at 12:28 AM, Phil Thompson <<a href="mailto:phil@riverbankcomputing.com" class="">phil@riverbankcomputing.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">On 24/09/2020 06:59, Patrick Stinson wrote:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">Got it.<br class="">I’ve now managed to get pyqtdeploy to use my sysroot component plugin<br class="">to add my app’s extension module source files to the qmake project. Is<br class="">there any way to tell the ExtensionModule that there is a sip file so<br class="">it will do what sip-build does by generating the C++ sources and<br class="">setting up C++ flags correctly? What about generating moc files for .h<br class="">headers?<br class="">My extension is starting to get busy with those mangled sip-build file<br class="">names, and it’s also complaining about sip.h, and I imagine more<br class="">things if I fix those problems with manual paths.<br class="">class VedanaComponent(Component):<br class="">   """ The vedana module component. """<br class="">   must_install_from_source = False<br class="">   preinstalls = ['Python', 'PyQt', 'Qt', 'SIP']<br class="">   provides = {<br class="">       '_pkdiagram':<br class="">           ExtensionModule(<br class="">               deps='PyQt:PyQt5.QtWidgets',<br class="">               source=[<br class="">                   "../../../_pkdiagram/unsafearea.cpp",<br class="">                   "../../../_pkdiagram/_pkdiagram.cpp",<br class="">                   "../../../_pkdiagram/_pkdiagram_mac.mm",<br class="">                   "../../../_pkdiagram/build/_pkdiagram/moc_unsafearea.cpp",<br class="">                   "../../../_pkdiagram/build/_pkdiagram/moc__pkdiagram.cpp",<br class="">"../../../_pkdiagram/build/_pkdiagram/sip_pkdiagramAppFilter.cpp",<br class="">"../../../_pkdiagram/build/_pkdiagram/sip_pkdiagramcmodule.cpp",<br class="">"../../../_pkdiagram/build/_pkdiagram/sip_pkdiagramCUtil.cpp",<br class="">"../../../_pkdiagram/build/_pkdiagram/sip_pkdiagramFDDocument.cpp",<br class="">"../../../_pkdiagram/build/_pkdiagram/sip_pkdiagramPathItemBase.cpp",<br class="">"../../../_pkdiagram/build/_pkdiagram/sip_pkdiagramPathItemDelegate.cpp",<br class="">"../../../_pkdiagram/build/_pkdiagram/sip_pkdiagramPersonDelegate.cpp",<br class="">"../../../_pkdiagram/build/_pkdiagram/sip_pkdiagramQMap0100QString0100QString.cpp",<br class="">               ],<br class="">               defines=[ "PK_DEBUG_BUILD=0" ],<br class="">               qmake_qt=[ 'gui', 'widgets' ]<br class="">           )<br class="">   }<br class="">   def get_archive_name(self):<br class="">       return ''<br class="">   def install(self):<br class="">       """ Install for the target. """<br class=""></blockquote><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Take a look the AbstractPyQtComponent class in abstract_pyqt_component.py (and the other abstract components in the same directory).</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">This is not documented and so is not currently part of the public API (despite what the comments say). However it may be what you are looking for. If so I'll document them properly. In the meantime have a look at the PyQtChart plugin (for example) to see how the methods implemented are used.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Phil</span></div></blockquote></div><br class=""></div></div></body></html>