<div dir="ltr">Hi,<div><br></div><div>I had similar issues when I once tried to set up dependencies via Qt Creator. I believe that using project configurations in Qt creator is just not the right approach for your use case.</div><div><br></div><div>One way to solve the 32/64 bit dependency would be to change the build output to a location that depends on debug/release, on 32/64 bits and possibly on the compiler type, and to just include the library from that fixed location based on the same lookup rules in the other project. I did that for a while, but e.g. trying out new Qt versions with such a project structure gets a mess quickly in my opinion. Another possibility (the one I am using since) would be to use a toplevel subdirs project with the library and your application inside: That way you can select the kit and debug/release together for both the library and the applications. This approach is also heavily used inside Qt's sources. The downside is that one actually has to compile the library more often, On the other hand, you can exclude the library in the case that you mentioned that does not need the library.</div><div><br></div><div>The different editions of your project are also something where I would not use the project configurations in QtC. I would actually first question if you really need to setup different builds for each or if you can change the behaviour using e.g. feature flags, license keys or whatever: Working with the same builds for all use cases drastically reduces maintenace effort in my opinion. That said, I have one case where I did not manage this and really needed a seperate build. For this one, I create a symlink to my toplevel .pro file in the same directory but with a different name, and for the symlinked version I set a qmake flag in the build configuration. Using a symlink here has some drawbacks, it's sometimes an issue to get that under version control and changing two files at once when editing one file might be unexpected at the beginning.</div><div><br></div><div>Hope this helps</div><div>Markus</div><div></div><div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Di., 2. Juni 2020 um 18:42 Uhr schrieb David M. Cotter <<a href="mailto:dave@kjams.com">dave@kjams.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">my app ("kJams") has multiple "editions".  consumer, pro, and superpro, named "Lite", "Pro", and "2", respectively.  (i know the names are dumb, please let's not talk about that part)<div><br></div><div>each edition has debug and release configs.  and each config can be 32 or 64bit.</div><div><br></div><div>that's 12 unique configs.</div><div><br></div><div>but then they also have a dependency on a library created separately.  that lib (called "CFLite", unrelated to the "Lite" edition of the app above) comes in debug and release, and 32 and 64bit editions.</div><div><br></div><div>so my app configs look like this:</div><div><br></div><div><img id="gmail-m_-81738584671069592054C150E93-AA11-4B39-825F-7F6FED83752E" width="264" height="161" src="cid:17278fe6371d09c1cdc1"></div><div><br></div><div><br></div><div>my library configs:</div><div><img id="gmail-m_-8173858467106959205BE16BA82-400D-484C-8607-83C49DEC44A2" width="241" height="82" src="cid:17278fe6371709e98672"></div><div><br></div><div>and the dependency for the app looks like this:</div><div><img id="gmail-m_-81738584671069592052B157E2C-09CD-4A37-BB29-FF8D6EDF2E84" width="194" height="188" src="cid:17278fe6371d2dcf9653"></div><div>the problem as you can imagine is that if i've recently selected to build the 32bit "CFLite" but then switch to my app and select the 64bit version, when i go to build, there's no awareness of WHICH EDITION of the library to build.</div><div><br></div><div>to wit:</div><div><div></div></div><blockquote type="cite"><div><div><font face="Courier" color="#000000">09:33:54: Running steps for project CFLite_win...</font></div><div><font face="Courier" color="#000000">09:33:54: Starting: "C:\Users\davec\Developer\Qt\5.15.0\msvc2019\bin\qmake.exe" Z:\CF\opencflite-476.17.2\Qt\CFLite\CFLite_win.pro -spec win32-msvc "CONFIG+=debug" "TARGET=\"CFLite Debug\""</font></div><div><font face="Courier" color="#000000">Project MESSAGE: ------------------------------</font></div><div><font face="Courier" color="#000000">Project MESSAGE: Windows</font></div><div><font face="Courier" color="#000000">Project MESSAGE: build_type: debug</font></div><div><font face="Courier" color="#e32400">Project MESSAGE: target: CFLite Debug (32bit)</font></div><div><font face="Courier" color="#000000">09:33:58: The process "C:\Users\davec\Developer\Qt\5.15.0\msvc2019\bin\qmake.exe" exited normally.</font></div><div><font face="Courier" color="#000000">09:33:58: Starting: "C:\Users\davec\Developer\Qt\Tools\QtCreator\bin\jom.exe" -f "Z:/CF/opencflite-476.17.2/Qt/win_32-CFLite Debug/Makefile" qmake_all</font></div><div><font face="Courier" color="#000000"><br></font></div><div><font face="Courier" color="#000000">jom 1.1.3 - empower your cores</font></div><div><font face="Courier" color="#000000"><br></font></div><div><font face="Courier" color="#000000">09:33:58: The process "C:\Users\davec\Developer\Qt\Tools\QtCreator\bin\jom.exe" exited normally.</font></div><div><font face="Courier" color="#000000">09:33:58: Starting: "C:\Users\davec\Developer\Qt\Tools\QtCreator\bin\jom.exe" </font></div><div><font face="Courier" color="#000000">09:33:58: The process "C:\Users\davec\Developer\Qt\Tools\QtCreator\bin\jom.exe" exited normally.</font></div><div><font face="Courier" color="#000000">09:33:58: Running steps for project kJams_win...</font></div><div><font face="Courier" color="#000000">09:33:58: Starting: "C:\Windows\system32\cmd.exe" /c python pre_build_kjams_qt.py 64 kJams 2 Debug</font></div><div><font face="Courier" color="#000000">deleting: kJams 2 Debug</font></div><div><font face="Courier" color="#000000">09:33:59: The process "C:\Windows\system32\cmd.exe" exited normally.</font></div><div><font face="Courier" color="#000000">09:33:59: Starting: "C:\Users\davec\Developer\Qt\5.15.0\msvc2019_64\bin\qmake.exe" Z:\kJams\Development\qt\kJams\kJams_win.pro -spec win32-msvc "CONFIG+=debug" "TARGET=\"kJams 2 Debug\"" DEFINES+=kDEBUG DEFINES+=KJAMS_PRO DEFINES+=KJAMS_2</font></div><div><font face="Courier" color="#000000">Project MESSAGE: ------------------------------</font></div><div><font face="Courier" color="#000000">Project MESSAGE: build_type: debug</font></div><div><font face="Courier" color="#e32400">Project MESSAGE: kJams 2 Debug 64bit</font></div></div></blockquote><div><br></div><div>note above when i went to build "kJams 2" "debug" "<font color="#e32400">64bit</font>" that the DEPENDENCY decided to build the <font color="#e32400">32bit</font> version of the library.</div><div><br></div><div>i filed this bug here:</div><div><a href="https://bugreports.qt.io/browse/QTCREATORBUG-22619?filter=-2" target="_blank">https://bugreports.qt.io/browse/QTCREATORBUG-22619?filter=-2</a></div><div><br></div><div>but they told me "this is too hard.  just change the names of your configs"</div><div><br></div><div>but if you've been paying attention, you know that i CAN'T change the config names, because they are critical to getting the results that i need (they build very different versions of the app) (lots of build options are dependent on the build config name)</div><div><br></div><div>so my Q is:</div><div>what's the point of allowing unlimited number of custom build configuration, and also allowing dependencies, if the only ones actually supported are ones where have perfectly synced names?</div><div><br></div><div>how can i possibly accomplish what i want?</div><div><br></div><div>-dave</div></div>_______________________________________________<br>
Interest mailing list<br>
<a href="mailto:Interest@qt-project.org" target="_blank">Interest@qt-project.org</a><br>
<a href="https://lists.qt-project.org/listinfo/interest" rel="noreferrer" target="_blank">https://lists.qt-project.org/listinfo/interest</a><br>
</blockquote></div>