Building ATK with Visual Studio =============================== Meson is now the supported method of building ATK using Visual Studio. Building ATK requires GLib, which should preferably be built with the same compiler that is now being used to build ATK. If building the introspection files are desired, GObject-Introspection is also needed. You will need the following tools to build ATK, in addition to Visual Studio (2008 and later are supported). -Python 3.6.x. You will then need to install or update Meson by using pip. -The Ninja build tool, required for Visual Studio 2008, 2012 and 2013 builds, and optional for 2010, 2015 and 2017 builds, where Visual Studio projects can be generated instead of the Ninja build files. -GIT for Windows is highly recommended, in the case where some required dependencies are not found, and Meson makes use of GIT to download the sources to build in the build process. -pkg-config or pkgconf is highly recommended (pkg-config is used to denote this from this point on). Note that pkg-config 0.29.1 and later can be built with Visual Studio directly from the sources since we need GLib here already. Note that the pkg-config files for GLib needs to be found by pkg-config, possibly by setting PKG_CONFIG_PATH in the current Visual Studio command prompt to contain the path that GLib's pkg-config files are located. Note that you will need GLib, which should preferably be built with the same compiler that is now being used to build GLib. As GLib and GObject-Introspection are also built using Meson on Visual Studio, ensure that their pkg-config (.pc) files can be found by pkg-config, possibly by setting the PKG_CONFIG_PATH environment variable in the Visual Studio command prompt that is being used to build ATK. One can also refer to the following page for building the dependencies: https://wiki.gnome.org/Projects/GTK%2B/Win32/MSVCCompilationOfGTKStack To do a build using Meson, do the following: -Open a Visual Studio (or SDK) command prompt that matches the Visual Studio version and build platform (Win32/x86, x64, etc.) that will be used in all the following steps. -Create an empty directory/folder for the build. It needs to be in the same drive as where your ATK sources are located (i.e. $(ATK_SRCDIR)). cd into that directory/folder. -Setup your PATH envvar: set PATH=%PATH%;$(PYTHON_INSTALL_DIR);$(NINJA_DIR) where PYTHON_INSTALL_DIR is where Python 3.6.x+ is installed to, and NINJA_DIR is where your ninja executable can be found. The NINJA_DIR can be omitted if one passes --backend=vs to the Meson configuration line, for Visual Studio 2010, 2015 and 2017 builds. -Configure the build using Meson: python $(PYTHON_INSTALL_DIR)\scripts\meson.py $(ATK_SRCDIR) --buildtype=$(build_configuration) --prefix=$(INSTALL_PREFIX) [--backend=vs] Please see the Meson docs for an explanation for --buildtype, the path passed for --prefix need not to be on the same drive as where the build is carried out, but it is recommended to use forward slashes for this path. The --backend=vs can be used if the Visual Studio project generator is preferred over using Ninja, for Visual Studio 2010, 2015 and 2017 builds. -Build, test and install the build: Run ninja (and ninja test and ninja install) or open the generated Visual Studio projects to compile, test and install the build. Note that if building the sources with Visual Studio 2008, note the following additional items: -You need to run the following lines from your build directory, to embed the manifests that are generated during the build, assuming the built binaries are installed to $(PREFIX), after a successful build/installation: for /r %f in (*.dll.manifest) do if exist $(PREFIX)\bin\%~nf mt /manifest %f $(PREFIX)\bin\%~nf;2 for /r %f in (*.exe.manifest) do if exist $(PREFIX)\bin\%~nf mt /manifest %f $(PREFIX)\bin\%~nf;1