Thursday, 20 August 2015

Help Qt Designer to find plugins

Qt Designer can't find plugins without QT_PLUGIN_PATH being set. You should also set QT_QPA_PLATFORM_PLUGIN_PATH for the Qt gui applications. If you're writing your own Qt exe, you can set these paths internally.
set QTDIR=C:/Qt/qt5_msvc2012_x64_build/qtbase
set QT_PLUGIN_PATH=%QTDIR%/plugins
set QT_QPA_PLATFORM_PLUGIN_PATH=%QTDIR%/plugins/platforms
Note also that Qt Designer will only load plugins built with the same libraries. And when you do a debug build of Qt, although it appends "d.dll" to its dll's, it does not append "d" to its executables. So a debug build of Qt Designer, in the same Qt distribution as release, will overwrite the release build, thus preventing your plugins from loading! So always build debug first, then release.

Cygwin connecting by ssh to remote Linux

If ssh can't add your server to its list of known hosts, you may need to create a "passwd" file in C:\cygwin\etc. Use:

mkpasswd -l -p "$(cygpath -H)" > /etc/passwd

Thursday, 6 August 2015

Using Sublime Text Search+Replace to clean Visual Studio Projects

The find-in-files functionality of Sublime Text can be used to find end remove bad settings from Visual Studio project files - handy if you have a lot of projects.

Search for: <ShowProgress>LinkVerboseLib</ShowProgress>\n
and replace it with nothing. That hides a lot of unneeded output.

Replace:

<LinkLibraryDependencies>true</LinkLibraryDependencies>

with
<LinkLibraryDependencies>false</LinkLibraryDependencies>

To stop MSBuild from linking stuff you don't want lunk.

Sunday, 19 July 2015

Windows keyboard stops working

If your keyboard in Windows ever just stops working, but it's clearly not a hardware problem as you can still log-in - it just doesn't work once you have - look for an icon in the bottom-right (the notification area) called FilterKeys.

Double-click the icon, turn off all its nonsense, and the keyboard should start working again.

Wednesday, 15 July 2015

Visual Studio to English translation

In Visual Studio, if you get an error that reads:

"This project doesn't contain the Configuration and Platform combination of Debug|Win32"

and you're not even building Debug or Win32, what Visual Studio is actually trying to tell you is:

"This project has a dependency project that isn't loaded in the current solution."


Monday, 13 July 2015

Jenkins CI on Windows - Git can't access remote submodules - even public ones.

I'm setting up Jenkins on a windows machines, looks great. But after setting up all the credentials, projects with Git submodules cause a problem - we get git authentication errors.

These errors go away if you set the environment variable HOME to the parent of your .ssh directory. There's also a JENKINS_HOME variable. Possibly setting this and copying the .ssh directory to Program Files (x86)/Jenkins might have the same effect, but I've not tested that yet.

Multi-platform CMake

The latest CMake 3.3 allows you to separately specify the generator (i.e. what compiler to make projects for) and the platform, using the -G and -A command line parameters respectively. That's especially good for Visual Studio, as you can do something like this:

cmake -G "Visual Studio 11 2012" -A x64 -D CMAKE_MAKE_PROGRAM=C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "C:workspace\source_dir"

 Even better, the -A switch recognizes "x64" as a platform, even though the generator is officially called "Visual Studio 11 2012 Win64". So that will play nicely with environment variables, e.g.
SET PLATFORM=x64