forked from GNOME/at-spi2-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.msvc
79 lines (59 loc) · 3.89 KB
/
README.msvc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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