Skip to content

Commit a84ec78

Browse files
fanc999-1kjellahl
authored andcommitted
Visual Studio builds: Convert build docs to MarkDown
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: * Note that although Visual Studio 2013 is supported to build libsigc++, but Visual Studio 2015 or later is likely needed to build packages that use libsigc++ * ARM64 is actually supported * Update info on build from GIT checkout. * Move the part on static builds as appropriate * Some other minor tweaks
1 parent 13d183b commit a84ec78

File tree

4 files changed

+72
-60
lines changed

4 files changed

+72
-60
lines changed

MSVC_NMake/MSVC-Builds.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
Instructions for building libsigc++ on Visual Studio
2+
=
3+
4+
Building libsigc++ on Windows is now supported using Visual Studio
5+
versions 2013 or later in both 32-bit and 64-bit (x64 and ARM64) flavors,
6+
via NMake Makefiles. Due to `C++11` usage, Visual Studio 2012 or
7+
earlier is not supported, and packages using libsigc++ may require Visual
8+
Studio 2015 or later as C++-11 is supported more comprehensively in later
9+
Visual Studio versions.
10+
11+
libsigc++ itself has no external dependencies, but building the
12+
benchmark test program will require an installation of the Boost
13+
C++ libraries.
14+
15+
Building with NMake
16+
-
17+
The following describes what items are built with the following
18+
targets:
19+
20+
* `all`, `examples`: (or no target specified): The libsigc++ DLL and the example programs.
21+
* `tests`: The libsigc++ DLL and the test programs.
22+
* `benchmark`: The libsigc++ DLL and the benchmark program, the Boost C++ headers should be found in one of the paths that are in`%INCLUDE%`.
23+
24+
Building directly from a GIT checkout is now supported, provided that a `PERL`
25+
installation is present, along with the `m4` executable that can be optained
26+
by installing CygWin or MSYS2 (add the location of your `m4` executable to the
27+
end of your `%PATH%` and pass the `PERL` interpreter executable in your NMake
28+
command line by using `nmake /f Makefile.vc ... PERL=<path_to_PERL_interpreter_executable>`).
29+
30+
The following are instructions for performing such a build. A `clean` target is
31+
provided-it is recommended that one cleans the build and redo the build if any
32+
configuration option changed. An `install` target is also provided to copy the
33+
built items in their appropriate locations under `$(PREFIX)`, which is described
34+
below.
35+
36+
A 'forceclean' target is also provided to cover the actions under the target
37+
'clean', but also to remove any traces of the headers and sources that were
38+
generated. This may be useful if one wants to re-generate the sources and headers
39+
from the m4 templates.
40+
41+
Invoke the build by issuing the command:
42+
`nmake /f Makefile.vc CFG=[release|debug] [PREFIX=...] <option1=1 option2=1 ...>`
43+
where:
44+
45+
* `CFG`: Required. Choose from a `release` or `debug` build. Note that
46+
all builds generate a `.pdb` file for each `.dll` and `.exe` built.
47+
48+
* `PREFIX`: Optional. Base directory of where the third-party headers, libraries
49+
and needed tools can be found, i.e. headers in `$(PREFIX)\include`,
50+
libraries in `$(PREFIX)\lib` and tools and DLLs in `$(PREFIX)\bin`. If not
51+
specified, `$(PREFIX)` is set as `$(srcroot)\..\vs$(X)\$(platform)`, where
52+
`$(platform)` is `win32` for 32-bit builds or `x64` for 64-bit (Intel/AMD)
53+
builds or `arm64` for 64-bit (ARM) builds, and `$(X)` is the short version of the
54+
Visual Studio used, as follows:
55+
* 2013: `12`
56+
* 2015: `14`
57+
* 2017: `15`
58+
* 2019: `16`
59+
* 2022: `17`
60+
61+
* Options, set by `<option>=1`:
62+
63+
* `BOOST_DLL`: When building the benchmark, link to a DLL build of the Boost
64+
libraries. Required if your installation of the Boost libraries are built as DLLs.
65+
Note that debug builds must link to debug builds of Boost and release builds must
66+
link to release builds of Boost.
67+
68+
* `STATIC`: Optional. Set if building libsigc++ as a static library. Note that
69+
for building items that use this static build, `/DLIBSIGCXX_STATIC`
70+
must be passed into the compiler flags.

MSVC_NMake/README.txt

Lines changed: 0 additions & 58 deletions
This file was deleted.

MSVC_NMake/filelist.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ msvc_nmake_data = \
1010
info-msvc.mak \
1111
install.mak \
1212
Makefile.vc \
13-
README.txt \
13+
MSVC-Builds.md \
1414
sigc++config.h \
1515
sigc.rc

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,4 @@ $ make dist
132132

133133
## Building with Microsoft Visual C++
134134

135-
See MSVC_NMake/README.txt.
135+
See MSVC_NMake/MSVC-Builds.md.

0 commit comments

Comments
 (0)