docs: Migrate to generated solution files with CMake and msbuild on Windows

This commit is contained in:
Sebastian Pipping 2019-08-29 01:36:55 +02:00
parent f42417b92c
commit 7ae689fd95
3 changed files with 18 additions and 31 deletions

View file

@ -36,7 +36,7 @@ Visual Studio Command Prompt or when using mingw, you must open a cmd.exe and
make sure that gcc can be called. On Windows, you also might want to specify a
special Generator for CMake:
for Visual Studio builds do:
cmake .. -G "Visual Studio 10" && vcexpress expat.sln
cmake .. -G "Visual Studio 15 2017" && msbuild /m expat.sln
for mingw builds do:
cmake .. -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=D:\expat-install
&& gmake && gmake install

View file

@ -276,9 +276,11 @@ directions or Unix directions below.</p>
<p>If you're using the GNU compiler under cygwin, follow the Unix
directions in the next section. Otherwise if you have Microsoft's
Developer Studio installed, then from Windows Explorer double-click on
"expat.vcxproj" in the lib directory and build and install in the usual
manner.</p>
Developer Studio installed,
you can use CMake to generate a <code>.sln</code> file, e.g.
<code>
cmake -G"Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=RelWithDebInfo .
</code>, and build Expat using <code>msbuild /m expat.sln</code> after.</p>
<p>Alternatively, you may download the Win32 binary package that
contains the "expat.h" include file and a pre-built DLL.</p>

View file

@ -6,16 +6,17 @@ Expat can be built on Windows in two ways:
This follows the Unix build procedures.
* MS Visual Studio 2013, 2015 and 2017:
A solution file for Visual Studio 2013 is provided: expat.sln.
The associated project files (*.vcxproj) reside in the appropriate
project directories. This solution file can be opened in VS 2015 or VS 2017
and should be upgraded automatically if VS 2013 is not also installed.
Note: Tests have their own solution files.
Use CMake to generate a solution file for Visual Studio, then use msbuild
to compile. For example:
md build
cd build
cmake -G"Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
msbuild /m expat.sln
* All MS C/C++ compilers:
The output for all projects will be generated in the win32\bin
directory, intermediate files will be located in project-specific
subdirectories of win32\tmp.
The output for all projects will be generated in the <CMAKE_BUILD_TYPE>\
and xmlwf\<CMAKE_BUILD_TYPE>\ directories.
* Creating MinGW dynamic libraries from MS VC++ DLLs:
@ -45,31 +46,15 @@ Expat can be built on Windows in two ways:
The "w" indicates the UTF-16 version of the library.
One rarely uses other versions of the Dll, but they can
be built easily by specifying a different RTL linkage in
the IDE on the C/C++ tab under the category Code Generation.
be built with -DMSVC_USE_STATIC_CRT=OFF.
Static Linking:
Static Linking: (through -DBUILD_shared=OFF)
The libraries should be named like this:
Single-theaded: libexpat(w)ML.lib
Multi-threaded: libexpat(w)MT.lib
Multi-threaded Dll: libexpat(w)MD.lib
The suffixes conform to the compiler switch settings
/ML, /MT and /MD for MS VC++.
Note: In Visual Studio 2005 (Visual C++ 8.0) and later, the
single-threaded runtime library is not supported anymore.
By default, the expat-static and expatw-static projects are set up
to link statically against the multithreaded run-time library,
so they will build libexpatMT.lib or libexpatwMT.lib files.
To build the other versions of the static library,
go to Project - Settings:
- specify a different RTL linkage on the C/C++ tab
under the category Code Generation.
- then, on the Library tab, change the output file name
accordingly, as described above
/MT and /MD for MS VC++.
An application linking to the static libraries must
have the global macro XML_STATIC defined.