mirror of
https://github.com/openharmony/third_party_libsoup.git
synced 2026-07-01 15:14:10 -04:00
build: Add README.msvc
Add instructions on how to build libsoup with Visual Studio via Meson.
This commit is contained in:
+77
@@ -0,0 +1,77 @@
|
||||
Building with Visual Studio using Meson
|
||||
=======================================
|
||||
|
||||
Meson is now the supported method of building libsoup using Visual Studio.
|
||||
|
||||
Note that you will need libxml2, SQLite3, libpsl and optionally MIT
|
||||
Kerberos, in addition to GLib and all its dependencies. You will also need
|
||||
a set of GIO modules that implement TLS functionality, which needs to be
|
||||
found and loadable by GLib (GIO). glib-openssl is the
|
||||
only supported option for this at this time of writing for Visual Studio
|
||||
builds. Note that these should be built with the same compiler that is being
|
||||
used to build libsoup.
|
||||
|
||||
For libxml2, SQLite3 and MIT Kerberos (for GSSAPI functionality), ensure that
|
||||
their headers, .lib's and DLLs can be found in the paths defined in your INCLUDE,
|
||||
LIB and PATH environmental variables, while you need to set PKG_CONFIG_PATH to
|
||||
contain the path to the pkg-config (.pc) files for the various components of GLib
|
||||
and for libpsl. If GObject-Introspection is found via pkg-config files, the
|
||||
introspection files are built as well.
|
||||
|
||||
One can also refer to the following page for building the dependencies:
|
||||
|
||||
https://wiki.gnome.org/Projects/GTK%2B/Win32/MSVCCompilationOfGTKStack
|
||||
|
||||
You will also need the following items:
|
||||
-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.
|
||||
|
||||
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 libsoup sources are located (i.e. $(LIBSOUP_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 $(LIBSOUP_SRCDIR) --buildtype=$(build_configuration) --prefix=$(INSTALL_PREFIX) [--backend=vs]
|
||||
|
||||
Also pass in -Dgssapi=false if not building with GSSAPI support.
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user