summaryrefslogtreecommitdiff
path: root/libpng/projects/vstudio/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'libpng/projects/vstudio/README.txt')
-rw-r--r--libpng/projects/vstudio/README.txt114
1 files changed, 52 insertions, 62 deletions
diff --git a/libpng/projects/vstudio/README.txt b/libpng/projects/vstudio/README.txt
index 71d3ba239..e28ec9549 100644
--- a/libpng/projects/vstudio/README.txt
+++ b/libpng/projects/vstudio/README.txt
@@ -1,76 +1,77 @@
+Instructions for building libpng using Microsoft Visual Studio
+==============================================================
-VisualStudio instructions
-
-libpng version 1.6.34 - September 29, 2017
-
+Copyright (c) 2018 Cosmin Truta
Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson
This code is released under the libpng license.
-For conditions of distribution and use, see the disclaimer
-and license in png.h
+For conditions of distribution and use, see the disclaimer and license
+in png.h
-This directory contains support for building libpng under MicroSoft
-VisualStudio 2010. It may also work under later versions of VisualStudio.
-You should be familiar with VisualStudio before using this directory.
+This directory contains a solution for building libpng under Microsoft
+Visual Studio 2010. It may also work under later versions of Visual
+Studio. You should be familiar with Visual Studio before using this
+solution.
Initial preparations
-====================
-You must enter some information in zlib.props before attempting to build
-with this 'solution'. Please read and edit zlib.props first. You will
-probably not be familiar with the contents of zlib.props - do not worry,
-it is mostly harmless.
+--------------------
+You must enter some information in zlib.props before attempting to
+build with this 'solution'. Please read and edit zlib.props first.
+You will probably not be familiar with the contents of zlib.props -
+do not worry, it is mostly harmless.
This is all you need to do to build the 'release' and 'release library'
configurations.
Debugging
-=========
+---------
The release configurations default to /Ox optimization. Full debugging
-information is produced (in the .pdb), but if you encounter a problem the
-optimization may make it difficult to debug. Simply rebuild with a lower
-optimization level (e.g. /Od.)
+information is produced (in the .pdb), but if you encounter a problem
+the optimization may make it difficult to debug. Simply rebuild with a
+lower optimization level (e.g. /Od.)
Linking your application
-========================
-Normally you should link against the 'release' configuration. This builds a
-DLL for libpng with the default runtime options used by Visual Studio 2010.
-In particular the runtime library is the "MultiThreaded DLL" version.
-If you use Visual Studio defaults to build your application you will have no
-problems.
-
-If you don't use the Visual Studio defaults your application must still be
-built with the default runtime option (/MD). If, for some reason, it is not
-then your application will crash inside libpng16.dll as soon as libpng
-tries to read from a file handle you pass in.
-
-If you do not want to use the DLL, for example for a very small application,
-the 'release library' configuration may be more appropriate. This is built
-with a non-standard runtime library - the "MultiThreaded" version. When you
-build your application it must be compiled with this option (/MT), otherwise
-it will not build (if you are lucky) or crash (if you are not.) See the
-WARNING file that is distributed along with this readme.txt.
+------------------------
+Normally you should link against the 'release' configuration. This
+builds a DLL for libpng with the default runtime options used by Visual
+Studio. In particular the runtime library is the "MultiThreaded DLL"
+version. If you use Visual Studio defaults to build your application,
+you should have no problems.
+
+If you don't use the Visual Studio defaults your application must still
+be built with the default runtime option (/MD). If, for some reason,
+it is not then your application will crash inside libpng16.dll as soon
+as libpng tries to read from a file handle you pass in.
+
+If you do not want to use the DLL, and prefer static linking instead,
+you may choose the 'release library' configuration. This is built with
+a non-standard runtime library - the "MultiThreaded" version. When you
+build your application, it must be compiled with this option (/MT),
+otherwise it will not build (if you are lucky) or it will crash (if you
+are not.) See the WARNING file that is distributed with this README.
Stop reading here
-=================
+-----------------
You have enough information to build a working application.
Debug versions have limited support
-===================================
-This solution includes limited support for debug versions of libpng. You
-do not need these unless your own solution itself uses debug builds (it is
-far more effective to debug on the release builds, there is no point building
-a special debug build unless you have heap corruption problems that you can't
-track down.)
+-----------------------------------
+This solution includes limited support for debug versions of libpng.
+You do not need these unless your own solution itself uses debug builds
+(it is far more effective to debug on the release builds, there is no
+point building a special debug build unless you have heap corruption
+problems that you can't track down.)
-The debug build of libpng is minimally supported. Support for debug builds of
-zlib is also minimal. You really don't want to do this.
+The debug build of libpng is minimally supported. Support for debug
+builds of zlib is also minimal. Please keep this in mind, if you want
+to use it.
WARNING
-=======
-Libpng 1.6.x does not use the default run-time library when building static
-library builds of libpng; instead of the shared DLL runtime it uses a static
-runtime. If you need to change this make sure to change the setting on all the
-relevant projects:
+-------
+Libpng 1.6.x does not use the default run-time library when building
+static library builds of libpng; instead of the shared DLL runtime, it
+uses a static runtime. If you need to change this, make sure to change
+the setting on all the relevant projects:
libpng
zlib
@@ -82,16 +83,5 @@ The runtime library settings for each build are as follows:
DLL /MD /MDd
Library /MT /MTd
-NOTICE that libpng 1.5.x erroneously used /MD for Debug DLL builds; if you used
-the debug builds in your app and you changed your app to use /MD you will need
-to change it back to /MDd for libpng 1.6.0 and later.
-
-The Visual Studio 2010 defaults for a Win32 DLL or Static Library project are
-as follows:
-
- Release Debug
- DLL /MD /MDd
- Static Library /MD /MDd
-
-Also, be sure to build libpng, zlib, and your project all for the same
+Also, be sure to build libpng, zlib, and your project, all for the same
platform (e.g., 32-bit or 64-bit).