General setup: Install QtSDK. Install CMake. Copy C:\QtSDK\mingw\bin\* to C:\QtSDK\mingw\libexec\gcc\mingw32\4.4.0\ (version may vary). Copy libgcc_s_dw2-1.dll from your MinGW bin directory to your CMake bin directory. Downloading projects: git clone git://anongit.kde.org/smokegen git clone git://anongit.kde.org/smokeqt git clone -b assemblies git://gitorious.org/assemblygen/assemblygen.git smokegen: In CMake, set your source directory to point to smokegen, and your build directory to smokegen-build (in the same directory as smokegen). Press the "Configure button", When asked to specify the generator, select "MinGW Makefiles" and "Specify native compilers". Set the C compiler to the MinGW compiler in your Qt directory (e.g. "C:/QtSDK/mingw/bin/gcc.exe") and the C++ compiler similarly (e.g. "C:/QtSDK/mingw/bin/g++.exe"). Once Configure finishes, set CMAKE_BUILD_TYPE to Release, and edit CMAKE_INSTALL_PREFIX to what you like (e.g. "C:\Program Files (x86)\qyoto"). All 3 projects are going to be installed into the same directory, so you may as well name it "qyoto". If it's not set, set QT_QMAKE_EXECUTABLE to the location of your qmake.ee, e.g. "C:/QtSDK/Desktop/Qt/4.7.4/mingw/bin/qmake.exe". Press the "Generate" button. Open up QT Creator and load the smokegen-build/cmake-install.cmake project. Qt will want to run CMake again; let it. If the Generator is not already set to "MinGW Generator (Mingw as a GCC for Windows targets)", set it to that. Once that finishes, Build All. When that finishes, close the project inside Qt Creator. With an MSYS window run as administrator, cd to smokegen-build and install with "mingw32-make install/fast". Rename "smokegen-build" to "smokegen-build-installed". This will prevent CMake from accidentally finding it when building later projects. smokeqt: In CMake, set your source directory to point to smokeqt, and your build directory to smokeqt-build (in the same directory as smokeqt). Press the "Configure button", When asked to specify the generator, select "MinGW Makefiles" and "Specify native compilers". Set the C compiler to the MinGW compiler in your Qt directory (e.g. "C:/QtSDK/mingw/bin/gcc.exe") and the C++ compiler similarly (e.g. "C:/QtSDK/mingw/bin/g++.exe"). Once Configure finishes, set CMAKE_BUILD_TYPE to Release, and edit CMAKE_INSTALL_PREFIX to what you set it for smokegen (e.g. "C:\Program Files (x86)\qyoto"). If it's not set, set QT_QMAKE_EXECUTABLE to the location of your qmake.ee, e.g. "C:/QtSDK/Desktop/Qt/4.7.4/mingw/bin/qmake.exe". If it's not set, set Smoke_DIR to the share/smoke/cmake directory under where you installed smokegen, e.g. "C:/Program files (x86)/qyoto/share/smoke/cmake". If you like, feel free to check "WITH_QT3_SUPPORT". It's off by default, but will build under Windows. Press the "Generate" button. Open up QT Creator and load the smokeqt-build/cmake-install.cmake project. Qt will want to run CMake again; let it. If the Generator is not already set to "MinGW Generator (Mingw as a GCC for Windows targets)", set it to that. Once that finishes, Build All. When that finishes, close the project inside Qt Creator. With an MSYS window run as administrator, cd to smokeqt-build and install with "mingw32-make install/fast". Rename "smokeqt-build" to "smokeqt-build-installed". This will prevent CMake from accidentally finding it when building later projects. qyoto: In CMake, set your source directory to point to qyoto, and your build directory to qyoto-build (in the same directory as qyoto). Press the "Configure button", When asked to specify the generator, select "MinGW Makefiles" and "Specify native compilers". Set the C compiler to the MinGW compiler in your Qt directory (e.g. "C:/QtSDK/mingw/bin/gcc.exe") and the C++ compiler similarly (e.g. "C:/QtSDK/mingw/bin/g++.exe"). Once Configure finishes, set CMAKE_BUILD_TYPE to Release, and edit CMAKE_INSTALL_PREFIX to what you set it for smokegen and smokeqt (e.g. "C:\Program Files (x86)\qyoto"). If it's not set, set QT_QMAKE_EXECUTABLE to the location of your qmake.ee, e.g. "C:/QtSDK/Desktop/Qt/4.7.4/mingw/bin/qmake.exe". If it's not set, set Smoke_DIR to the share/smoke/cmake directory under where you installed smokegen and smokeqt, e.g. "C:/Program files (x86)/qyoto/share/smoke/cmake". Press the "Generate" button. Open up QT Creator and load the qyoto-build/cmake-install.cmake project. Qt will want to run CMake again; let it. If the Generator is not already set to "MinGW Generator (Mingw as a GCC for Windows targets)", set it to that. Once that finishes, Build All. When that finishes, close the project inside Qt Creator. With an MSYS window run as administrator, cd to qyoto-build and install with "mingw32-make install/fast". Using Qyoto: Put your qyoto bin directory (e.g. "C:/Program files (x86)/qyoto/bin") into your system path. (The QtSDK installer should have already put its bin path, e.g. "C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin", into your system path. If it's not there, put it there.) The assemblies are in your qyoto lib directory (e.g. "C:/Program files (x86)/qyoto/lib"). They're not installed in the GAC directory; that's a future project. When you select them in MonoDevelop (while editing assemblies), they'll show in the ".Net Assembly" tab, where you'll have to browse the filesystem. You'll know it's a .NET assembly when you click on it and version information displays below the file-list box (e.g. "qt-dotnet, Version=4.5.0.0, Culture=neutral, PublicKeyToken=194a23ba31c08164"). That won't show up if it's a regular DLL. ======== WARNING! ======== Qyoto is not fully functional under Windows! Hopefully, they'll get found and fixed as more people use it, so we need your help. Here are some known bugs: QObject.Connect<> (source-object, SIGNAL("string"), templated-method) does not work. Instead, use QObject.Connect<> (source-object, SIGNAL("string"), target-object, SLOT("string")). Add the [Q_SLOT] attribute to the function on your target-object to make it a slot. (Note that the non-templated version of QObject.Connect() works fine.) Copying/cutting text doesn't seem to affect the clipboard -- you'll paste whatever was in the system clipboard before. Dialogs and message boxes sometimes don't work. The pattern is unclear.