Re: [Qt-creator] QtCreator support for Unreal Engine 4
On Mon, 2018-03-05 at 14:23 +0100, Tobias Hunger wrote: > > 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. > > I am not aware that this decision has been made yet: It's still up to > the Qt Project to decide on that eventually. And Qbs needs a serious > amount of non-trivial work between now and then. Sorry if I was wrong, this is where I got the idea: http://blog.qt.io/blog/2017/05/29/qbs-1-8-released/ "The Qt Company’s latest build tool, which is planned to be the replacement for qmake in the Qt 6 build system." ___ Qt-creator mailing list Qt-creator@qt-project.org http://lists.qt-project.org/mailman/listinfo/qt-creator
Re: [Qt-creator] QtCreator support for Unreal Engine 4
Hi, I would personally look at something more battle-hardened than qbs, especially considering that UE4 already supports more build systems from what I understand. Maybe one of those that are already supported will work better with Qt Creator than qmake already? CMake is a likely candidate, as that will most likely have seen way more testing and polish than the .pro files on the UE4 side. On Mon, Mar 5, 2018 at 1:22 PM, wrote: > 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. I am not aware that this decision has been made yet: It's still up to the Qt Project to decide on that eventually. And Qbs needs a serious amount of non-trivial work between now and then. Best Regards, Tobias ___ Qt-creator mailing list Qt-creator@qt-project.org http://lists.qt-project.org/mailman/listinfo/qt-creator
Re: [Qt-creator] QtCreator support for Unreal Engine 4
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 > 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 > > 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 (a
Re: [Qt-creator] QtCreator support for Unreal Engine 4
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 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 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 > ___ Qt-creator mailing list Qt-creator@qt-project.org http://lists.qt-project.org/mailman/listinfo/qt-creator
Re: [Qt-creator] QtCreator support for Unreal Engine 4
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 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
Re: [Qt-creator] QtCreator support for Unreal Engine 4
Hi Sander, > I was wondering if QtCreator could see some improvements in supporting > third-party builds systems and/or integration with bigger projects. Unreal > Engine 4 is one of the biggest game engines and, when you agree with > their terms, you get access to the full source code. This helped quite a > bit in supporting other platforms. I have no plans at this time to support Unreal Engine. Contributions are of course welcome, but I don't think this is something that we should offer in the core Qt Creator. It would be a wonderful 3rd party plugin though. > One of the weaker points with this engine is that for each platform you > require > to adapt to a another IDE or build process. Unreal uses their own build > system, > which can generate projectfiles/-solutions for various other build systems > (e.g. CMake) and IDEs. If QtCreator could integrate better with UE4 there > would be a single IDE that works on all platforms. Sure, Creator is a great IDE and if Unreal sees value in having a nice cross-platform IDE, then they are free to contribute or fork or do whatever the license allows:-) I do not see why the Qt Project should do that work though. > The official UE4 docs[1] already mention QtCreator Nice! I was not aware of that. > but if you take the time > to look at the steps the integration is very weak. Changing a build target, > variant or platform means changing the builds steps by hand. This is one > of the reasons people often recommend CodeLite for development on > Linux because that IDE allows you to switch target and variant by using > the drop down menus just like you would on Visual Studio. According to the documentation you link you should be able to switch between debug/release via creator's UI just as well, once you did the initial setup. > Is if there is willingness to add UE4 support in QtCreator I am willing to answer questions on build system integration into Creator, but I do not plan to work on this myself. > or are there ways to improve the current integration? Nothing obvious. Maybe another supported build system would work better than the half-baked .pro-file they ask you to load? I do not have UE around to test, so I don't know. Best Regards, Tobias -- Tobias Hunger, Senior Software Engineer | The Qt Company The Qt Company GmbH, Rudower Chaussee 13, D-12489 Berlin Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho. Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B ___ Qt-creator mailing list Qt-creator@qt-project.org http://lists.qt-project.org/mailman/listinfo/qt-creator
[Qt-creator] QtCreator support for Unreal Engine 4
Hi, I was wondering if QtCreator could see some improvements in supporting third-party builds systems and/or integration with bigger projects. Unreal Engine 4 is one of the biggest game engines and, when you agree with their terms, you get access to the full source code. This helped quite a bit in supporting other platforms. One of the weaker points with this engine is that for each platform you require to adapt to a another IDE or build process. Unreal uses their own build system, which can generate projectfiles/-solutions for various other build systems (e.g. CMake) and IDEs. If QtCreator could integrate better with UE4 there would be a single IDE that works on all platforms. The official UE4 docs[1] already mention QtCreator but if you take the time to look at the steps the integration is very weak. Changing a build target, variant or platform means changing the builds steps by hand. This is one of the reasons people often recommend CodeLite for development on Linux because that IDE allows you to switch target and variant by using the drop down menus just like you would on Visual Studio. Is if there is willingness to add UE4 support in QtCreator or are there ways to improve the current integration? Cheers, .san [1] - https://docs.unrealengine.com/latest/INT/Platforms/Linux/BeginnerLinuxDeveloper/SettingUpQtCreator/ ___ Qt-creator mailing list Qt-creator@qt-project.org http://lists.qt-project.org/mailman/listinfo/qt-creator