<commit_before>
Expat can be built on Windows in two ways:
  using MS Visual Studio .NET or Cygwin.

* Cygwin:
  This follows the Unix build procedures.

* MS Visual Studio 2013, 2015 and 2017:
  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 <CMAKE_BUILD_TYPE>\
  and xmlwf\<CMAKE_BUILD_TYPE>\ directories.
  
* Creating MinGW dynamic libraries from MS VC++ DLLs:
  
  On the command line, execute these steps:
  pexports libexpat.dll > expat.def
  pexports libexpatw.dll > expatw.def
  dlltool -d expat.def -l libexpat.a
  dlltool -d expatw.def -l libexpatw.a
  
  The *.a files are mingw libraries.

* Special note about MS VC++ and runtime libraries:

  There are three possible configurations: using the
  single threaded or multithreaded run-time library,
  or using the multi-threaded run-time Dll. That is, 
  one can build three different Expat libraries depending
  on the needs of the application.

  Dynamic Linking:

  By default the Expat Dlls are built to link statically
  with the multi-threaded run-time library. 
  The libraries are named
  - libexpat(w).dll 
  - libexpat(w).lib (import library)
  The "w" indicates the UTF-16 version of the library.

  One rarely uses other versions of the Dll, but they can
  be built with -DMSVC_USE_STATIC_CRT=OFF.

  Static Linking:  (through -DBUILD_shared=OFF)

  The libraries should be named like this:
  Multi-threaded:     libexpat(w)MT.lib
  Multi-threaded Dll: libexpat(w)MD.lib
  The suffixes conform to the compiler switch settings
  /MT and /MD for MS VC++.

  An application linking to the static libraries must
  have the global macro XML_STATIC defined.<commit_msg>win32: Get readme back in sync with CMake<commit_after>
Expat can be built on Windows in two ways:
  using MS Visual Studio .NET or Cygwin.

* Cygwin:
  This follows the Unix build procedures.

* MS Visual Studio 2013, 2015 and 2017:
  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 <CMAKE_BUILD_TYPE>\
  and xmlwf\<CMAKE_BUILD_TYPE>\ directories.
  
* Creating MinGW dynamic libraries from MS VC++ DLLs:
  
  On the command line, execute these steps:
  pexports libexpat.dll > expat.def
  pexports libexpatw.dll > expatw.def
  dlltool -d expat.def -l libexpat.a
  dlltool -d expatw.def -l libexpatw.a
  
  The *.a files are mingw libraries.

* Special note about MS VC++ and runtime libraries:

  There are three possible configurations: using the
  single threaded or multithreaded run-time library,
  or using the multi-threaded run-time Dll. That is, 
  one can build three different Expat libraries depending
  on the needs of the application.

  Dynamic Linking:

  By default the Expat Dlls are built to link dynamically
  with the multi-threaded run-time library. 
  The libraries are named
  - libexpat(w).dll 
  - libexpat(w).lib (import library)
  The "w" indicates the UTF-16 version of the library.

  Versions that are statically linking with the multi-threaded run-time library
  can be built with -DMSVC_USE_STATIC_CRT=ON.

  Static Linking:  (through -DBUILD_shared=OFF)

  The libraries should be named like this:
  Multi-threaded:     libexpat(w)MT.lib
  Multi-threaded Dll: libexpat(w)MD.lib
  The suffixes conform to the compiler switch settings
  /MT and /MD for MS VC++.

  An application linking to the static libraries must
  have the global macro XML_STATIC defined.
{'fraction_non_alphanumeric': 0.060969254820218866, 'fraction_numerical': 0.010943199583116207, 'mean_word_length': 3.505868544600939, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4000532', 'n_tokens_mistral': 1304, 'n_tokens_neox': 1178, 'n_words': 510}