Visual Studio builds: Convert build docs to MarkDown
authorChun-wei Fan <[email protected]>
Mon, 26 Jun 2023 04:26:48 +0000 (26 12:26 +0800)
committerKjell Ahlstedt <[email protected]>
Tue, 27 Jun 2023 09:13:42 +0000 (27 11:13 +0200)
Convert the README.txt to MarkDown format so that it is easier on the eye in
terms of formatting, and update some of the info:

* ARM64 is actually supported
* Move the part on static builds as appropriate
* Some other minor tweaks

MSVC_NMake/MSVC-Builds.md [new file with mode: 0644]
MSVC_NMake/README.txt [deleted file]
MSVC_NMake/filelist.am
README.md

diff --git a/MSVC_NMake/MSVC-Builds.md b/MSVC_NMake/MSVC-Builds.md
new file mode 100644 (file)
index 0000000..4271176
--- /dev/null
@@ -0,0 +1,65 @@
+Instructions for building libsigc++ on Visual Studio
+=
+
+Building libsigc++ on Windows is now supported using Visual Studio
+versions 2017 or later in both 32-bit and 64-bit (x64 and ARM64) flavors,
+via NMake Makefiles.  Due to `C++17` usage, Visual Studio 2015 or
+earlier is not supported, and any use of the headers installed with
+this package will require the use of the `/std:c++17` compiler flag.
+
+libsigc++ itself has no external dependencies, but building the
+benchmark test program will require an installation of the Boost
+C++ libraries.
+
+Building with NMake
+-
+The following describes what items are built with the following
+targets:
+
+* `all`, `examples`: (or no target specified): The libsigc++ DLL and the example programs.
+* `tests`: The libsigc++ DLL and the test programs.
+* `benchmark`: The libsigc++ DLL and the benchmark program, the Boost C++ headers should be found in one of the paths that are in`%INCLUDE%`.
+
+Building directly from a GIT checkout is now supported, provided that a `PERL`
+installation is present (pass the `PERL` interpreter executable in your NMake
+command line by using `nmake /f Makefile.vc ... PERL=<path_to_PERL_interpreter_executable>` by using
+the `prep-git-build` target.
+
+The following are instructions for performing such a build.  A `clean` target is
+provided-it is recommended that one cleans the build and redo the build if any
+configuration option changed.  An `install` target is also provided to copy the built
+items in their appropriate
+locations under `$(PREFIX)`, which is described below.
+
+Invoke the build by issuing the command:
+`nmake /f Makefile.vc CFG=[release|debug] [PREFIX=...] <option1=1 option2=1 ...>`
+where:
+
+* `CFG`: Required.  Choose from a `release` or `debug` build.  Note that
+ all builds generate a `.pdb` file for each `.dll` and `.exe` built.
+
+* `PREFIX`: Optional.  Base directory of where the third-party headers, libraries
+and needed tools can be found, i.e. headers in `$(PREFIX)\include`,
+libraries in `$(PREFIX)\lib` and tools and DLLs in `$(PREFIX)\bin`.  If not
+specified, `$(PREFIX)` is set as `$(srcroot)\..\vs$(X)\$(platform)`, where
+`$(platform)` is `win32` for 32-bit builds or `x64` for 64-bit (Intel/AMD)
+builds or `arm64` for 64-bit (ARM) builds, and `$(X)` is the short version of the
+Visual Studio used, as follows:
+  * 2017: `15`
+  * 2019: `16`
+  * 2022: `17`
+
+* `USE_COMPAT_LIBS`: Build the libsigc++ DLL and .lib with the filename
+`sigc-vc150(d)-3_0` for all builds.  This is for compatibility reasons,
+if re-building dependent code is not convenient, for instance
+
+* Options, set by `<option>=1`:
+
+   * `BOOST_DLL`: When building the benchmark, link to a DLL build of the Boost
+libraries.  Required if your installation of the Boost libraries are built as DLLs.
+Note that debug builds must link to debug builds of Boost and release builds must
+link to release builds of Boost.
+
+  *  `STATIC`: Optional.  Set if building libsigc++ as a static library. Note that
+for building items that use this static build, `/DLIBSIGCXX_STATIC`
+must be passed into the compiler flags.
diff --git a/MSVC_NMake/README.txt b/MSVC_NMake/README.txt
deleted file mode 100644 (file)
index 5438335..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-Instructions for building libsigc++ on Visual Studio\r
-====================================================\r
-Building the libsigc++ on Windows is now supported using Visual Studio\r
-versions 2017 or later in both 32-bit and 64-bit (x64) flavors,\r
-via NMake Makefiles.  Due to C++-17 usage, Visual Studio 2015 or\r
-earlier is not supported, and any use of the headers installed with\r
-this package will require the use of the /std:c++17 compiler flag.\r
-\r
-libsigc++ itself has no external dependencies, but building the\r
-benchmark test program will require an installation of the Boost\r
-C++ libraries.\r
-\r
-The following describes what items are built with the following\r
-targets:\r
-\r
--all (or no target specified): The libsigc++ DLL and the example programs.\r
--examples: The libsigc++ DLL and the example programs.\r
--tests: The libsigc++ DLL and the test programs.\r
--benchmark: The libsigc++ DLL and the benchmark program.\r
-\r
-Building directly from a GIT checkout is now supported, provided that a PERL\r
-installation is present (pass the PERL interpreter executable in your NMake\r
-command line by using 'PERL=<path_to_PERL_interpreter_executable>' by using\r
-the 'prep-git-build' target.\r
-\r
-The following are instructions for performing such a build.  A 'clean' target is\r
-provided-it is recommended that one cleans the build and redo the build if any\r
-configuration option changed.  An\r
-'install' target is also provided to copy the built items in their appropriate\r
-locations under $(PREFIX), which is described below.\r
-\r
-Invoke the build by issuing the command:\r
-nmake /f Makefile.vc CFG=[release|debug] [PREFIX=...] <option1=1 option2=1 ...>\r
-where:\r
-\r
-CFG: Required.  Choose from a release or debug build.  Note that\r
-     all builds generate a .pdb file for each .dll and .exe built--this refers\r
-     to the C/C++ runtime that the build uses.\r
-\r
-PREFIX: Optional.  Base directory of where the third-party headers, libraries\r
-        and needed tools can be found, i.e. headers in $(PREFIX)\include,\r
-        libraries in $(PREFIX)\lib and tools in $(PREFIX)\bin.  If not\r
-        specified, $(PREFIX) is set as $(srcroot)\..\vs$(X)\$(platform), where\r
-        $(platform) is win32 for 32-bit builds or x64 for 64-bit builds, and\r
-        $(X) is the short version of the Visual Studio used, as follows:\r
-        2017: 15\r
-\r
-STATIC: Optional.  Set if building libsigc++ as a static library. Note that\r
-        for building items that use this static build, /DLIBSIGCXX_STATIC\r
-        must be passed into the compiler flags.\r
-\r
-USE_COMPAT_LIBS: Build the sigc++ DLL and .lib with the filename\r
-                 'sigc-vc150(d)-3_0' for all builds.  This is for\r
-                 compatibility reasons, if re-building dependent code is not\r
-                 convenient, for instance\r
-\r
-Explanation of options, set by <option>=1:\r
-------------------------------------------\r
-BOOST_DLL: When building the benchmark, link to a DLL build of the Boost\r
-           libraries.  Required if your installation of the Boost libraries\r
-           are built as DLLs.  Note that debug builds must link to debug\r
-           builds of Boost and release builds must link to release builds\r
-           of Boost.\r
index 90cab7e..d2a41b4 100644 (file)
@@ -10,6 +10,6 @@ msvc_nmake_data =             \
        info-msvc.mak           \
        install.mak             \
        Makefile.vc             \
-       README.txt              \
+       MSVC-Builds.md          \
        sigc++config.h          \
        sigc.rc
index dfc32e9..d0b8afd 100644 (file)
--- a/README.md
+++ b/README.md
@@ -148,4 +148,4 @@ $ make
 
 ## Building with Microsoft Visual C++
 
-See MSVC_NMake/README.txt.
+See MSVC_NMake/MSVC-Builds.md.