 We've talked about third-party installers and frameworks, and well, there's really no de facto way of doing things. Each operating system is different, each operating system comes with its own set of headaches. Qt comes with an installer framework that runs on Linux, Mac, and Windows. And it's complex. But it'll do almost anything you want it to do. Unfortunately, because it's so complex, there's no way we can possibly cover everything in this one video. We're going to cover just enough to get you started. The first step is to make sure that it's actually installed. You'll need to go to your Qt installation directory, run the maintenance tool, hit Next, add-remove components, and then go to Developer and Design Tools. Install one of the framework versions I'm using, version 3, although there's an older and a newer version. Not a huge download, it's actually pretty fast, and I'm actually really surprised how small this is for all the features that it has. Which it's installed, you can go to Tools, Cue Installer Framework, go to your specific version, Bend, and make sure there's a binary crater in there. That's what's going to do all the heavy lifting later. Their documentation is superb, but one thing they should highlight, right up front you'll need 7zip. If you don't have it, go out to 7-zip.org and download it. Most Linux distributions either already have it built in, or it's just a command line away. And definitely go through and read all of the documentation. It's a lot of it. Understand the workflows and how those all function, but they have a beautiful tutorial that walks you right through the complexity of all of this. Really I can summarize this tutorial as dead simple. It's ridiculously simple. You just have to read and understand all of their documentation before you even try it. So once you really understand what you're doing, it's very straightforward. In summary, you basically make a directory structure, make a few XML files, and make a 7zip file. We're going to walk through that. So you need to create the directory structure, and right off the bat you should have a config and a packages folder. So let's look at our folder here. I've got the folder structure already set up. We have config and packages. Config directory just has an XML file, and this is your installer's configuration, and it just shows what are you trying to do. And they even have the XML. You can just copy and paste right into the file and modify to your needs. From here, you're going to have to make individual package information, and this takes a little bit of explaining. But basically, you'll have a package folder at your root, and then a folder for each package. Now think of a package as each thing you want the user to be able to select or unselect. For example, if you have multiple applications or multiple components or plugins for that application, each one will need a unique directory name, and then each one has a data folder and a meta folder. The data folder just has a 7-zip archive, which is why you really should download and install 7-zip. And you have those files actually in the same structure you want them installed. So for example, if you did the Windows Qt deploy or the Mac Qt deploy or Linux Qt deploy, it makes that directory structure. That's what you'd put into the 7-zip file. For demonstration purposes, I just have an app image. So you can 100% put an app image or a static build or an entire directory tree in here. It just has to be exactly the way you want it installed. Jumping back out here, you'll have the meta folder, and it just has package information. And once again, it's just XML. That's simple. They give you the XML. You just change it to suit your needs. You can have everything from just basic description to license agreements to scripts that actually run and custom user interfaces, which was really what makes this thing so complex is it's so highly customizable. Finally, once you get ready to run this, you just simply run that binary creator. And once again, this is very straightforward because they give you an example of exactly what you need to do. So basically, you go out to the root of your project, you point it to the config file, you tell it where your packages are located, and then tell it what you want it to make. So I'm going to go out here, and we're going to go back up to our root. So we've got our config and packages going to open the command line here. And we're just going to do the old magic of copy and paste. Be sure this is pointing to the Q installer framework with the version that you want to work with, and that it's pointing to the binary creator. The dash C points to the config with the XML in there. The P says use this packages directory, and then what you actually want to create. Very fast, very easy. That's it. You're done. Obviously, you should 100% test your installer before you give it to the end user, but it just works. Next, next, you can choose your installation directory. You can choose the packages that you have in there. And then you can just click install and you're good to go. Let's just face it. Q is extremely complex and it has a massive learning curve. But once you learn it, you can do just about anything. Unfortunately, learning Q is a challenge in itself. And if you've tried learning straight from the docs, you've probably become easily frustrated. While they do a really good job, they're arguably some of the best documentation in the world. They don't go that extra step and leave a lot of people guessing what to do. How do all these things interconnect? That's why I started developing videos. I've done videos not just on my own YouTube channel, which you're watching now, but also on the official Q Studio's channel. And I've started doing video courses out on udemy.com. Right now, I have the Qt Core series. It covers beginners, intermediate, advanced, so it'll take you straight from Hello World all the way up to building a complex, multi-threaded, encrypted TCP server. On top of that, if you don't want any of this, you can still join the Voidrom's Facebook group, which has a pretty flourishing group of developers. And we discuss everything, not just Qt. I hope to see you there.