Monday, November 19, 2018

Expecting Qt 6

Qt 5 was officially released on 19 December 2012 - almost 6 years ago. So it is time to wait for new major release - Qt 6. According to information from Qt Contributor Summit 2018 Qt 6 is planned for November 2020. What should we expect in this major release?

  • There will be no major breaking changes comparing to Qt 5, will be easy to migrate
  • Qt 5.15 will be the last release for Qt 5 and it will be LTS release
  • The build system will be changed, it won't be qmake any more (probably qbs)
  • Qt 6 will use C++ 17
For sure, there will be much more information about Qt 6 next year so stay tuned :)

Tuesday, February 20, 2018

Inno Setup, Part 9. Compiling installer from command line.

Sometimes you may need to compile your Inno Setup installer (*.iss file) from command line, script or another application. Basically this is done with the help of ISCC.exe which is being installed together with Inno Setup:

iscc "c:\My scripts\my script.iss"

Note double quotes, they are necessary in case path contains any whitespaces. Also you may need to specify path to iscc itself. Now let's describe how you can do the same thing from C# application.

   Process process = new Process();
   ProcessStartInfo startInfo = new ProcessStartInfo();
   startInfo.WindowStyle = ProcessWindowStyle.Hidden;
   startInfo.FileName = "cmd.exe";
   string compiler = @"C:\Program Files (x86)\Inno Setup 5\ISCC.exe";
   string outputName = "output";
   string installer = @"D:\MyInstallerIsHere.iss";
   startInfo.FileName = "\"" + compiler + "\"";
   startInfo.Arguments = " /Q " + "\""+ installer+ "\"" + " /F" + "\""+outputName + "\"";
   process.StartInfo = startInfo;
   process.Start();
   process.WaitForExit();      

ProcessWindowStyle.Hidden will for Process will help us to hide console window. What we are doing here is launching again ISCC.exe with iss script name as main argument. Other arguments are: /Q for quiet compilation, /F - for overriding output installer name (you can skip this if default name is OK for your purposes).