Hi San, Before we continue: Creator supports more than just qmake as a build system. Is there any that works better?
On Sat, Mar 3, 2018 at 9:57 AM, Sander Smid <sander.s...@gmail.com> wrote: > Thanks Tobias for your reply. > > So I've been looking into what QtCreator already provides, what steps are > already done on the UE4 side of things and what is missing to get proper > integration. What UE4 currently provides is a qmake project file (.pro) and > a few project include files (.pri) which mainly list all the project source > and header files. The UE4.pro file does contain some description of targets > but not all of them are picked up when the user configures the project file. > All of the settings that actually deal with defines (UE4Defines.pri) seem > stubbed and don't contain actual build defines. Probably because it is > required by qmake but simply doesn't have a purpose as UE4 uses its own > build system. > > The current UE4 documentation recommends each user needs to create a > UE4.pro.user file in which the qmake build and clean steps are removed and > (manually) replaced with a make command. This is all described in an array > of "ProjectExplorer.Project.Target" structures in the UE4.pro.user that > define the build and run settings. As a quick test I moved that part over to > a UE4.pro.shared file as that file is intended to be shared. Unfortunately > QtCreator prompts me to configure the project so I assume this isn't > supported. Moving that to a .shared file will not work: The kit ids will not match and then get ignored. Kit-specific stuff like build steps currently can not effectively get shared in creator. > The alternative would be to generate the UE4.pro.user file in a similar way > the .pro file is generated (I should have all the information at that the > moment the .pro and .pri files are being generated) however I got the > impression that is not the recommended way to go about this. I doubt that would work for the same reason as the .shared files fail: You do not know the right kit Ids to put into the .user file. > This bring me to the following set of questions: > > Fixing the qmake build steps: > > Each user currently needs to define their kits (which makes sense as it > includes build target locations) but after generating them not all the > targets as described in UE4.pro are not all available. Can you what steps > are missing here? No idea. Everything in a .pro file should get picked up. > Can you see any reason why the qmake project files are not working? Bugs? :-) I am actually not sure whether creator is supposed to show aux targets or not. > I know > this is a broad question so feel free to skip this. > Is there any other place than the .pro.user files where QtCreator stored > information about project configurations that might be relevant (e.g > ~/.config)? No. All the project-specific data is stored in the .user-file. > Use qmake project as a shell for code navigation and focus on getting build > and run configurations working with make: Why qmake? > I'm thinking to generate a set of "ProjectExplorer.Project.Target" > structures that call 'make' to build the projects. I think I can generate > the structure for a UE4.pro.user but that conflicts with the kit > generation/configure step. Is there any other place where I can store this > structure so it is available to all users? No. > And is this a sane approach? No, it is user specific:-/ > I'm > a bit worried about some of the Ids in there (e.g. > ProjectExplorer.ProjectConfiguration.Id and EnvironmentId) will bite me once > I got the UE4.pro.user file generated. Any ideas on that? It will not work. That is a known problem for a while now. My plan is to eventually have project-specific wizards that can do the necessary magic. But those are not there yet (and I am currently poking into other corners, so do not hold your breath). > For reference I attached the generated .pro and .pri files which might help > filling in the blanks where my explanation (with very limited experience > with qmake) might fall short. So basically you are defining custom targets for the things you actually want to build? I am not sure that this is supported in creator, it will definitely not be supported well. Best Regards, Tobias _______________________________________________ Qt-creator mailing list Qt-creator@qt-project.org http://lists.qt-project.org/mailman/listinfo/qt-creator