[Qt-creator] QtCreator support for Unreal Engine 4

timur.kristof at gmail.com timur.kristof at gmail.com
Mon Mar 5 13:22:58 CET 2018


Hi,

Indeed this sounds like something you could do with a heavily
customized Qbs project file, using custom rules and similar. Perhaps
try asking on the Qbs mailing list about what you are trying to
accomplish and what specific issues you are facing.

As an aside, qmake is going to be deprecated eventually in favour of
Qbs, so if you start with Qbs, your work is likely to me more future-
proof.

Hope this helps,
Timur



On Mon, 2018-03-05 at 19:51 +0800, Vincent Hui wrote:
> Hi San,
> 
> I don't know whether it is easier to integrate UE4 into Qt Creator by
> QBS. Perhaps it is worth to investitage.
> 
> Cheers,
> Vincent
> 
> On 5 March 2018 at 17:20, Tobias Hunger <tobias.hunger at gmail.com>
> wrote:
> > 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.smid at 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 at qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/qt-creator
> 
> _______________________________________________
> Qt-creator mailing list
> Qt-creator at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qt-creator



More information about the Qt-creator mailing list