From 6d55a14c588579511bd8b996f734c5cc9c249560 Mon Sep 17 00:00:00 2001 From: Cosmin Truta Date: Sun, 29 Jul 2018 21:51:48 -0400 Subject: [PATCH] Update projects/vstudio --- projects/vstudio/README.txt | 110 ++++++++++++++++-------------------- projects/vstudio/zlib.props | 9 ++- 2 files changed, 54 insertions(+), 65 deletions(-) diff --git a/projects/vstudio/README.txt b/projects/vstudio/README.txt index b8b4a3a8e..e28ec9549 100644 --- a/projects/vstudio/README.txt +++ b/projects/vstudio/README.txt @@ -1,76 +1,77 @@ +Instructions for building libpng using Microsoft Visual Studio +============================================================== -VisualStudio instructions - -libpng version 1.6.35 - July 15, 2018 - +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. +------------------------ +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 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. +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). diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props index 5bf6e28fb..878627966 100644 --- a/projects/vstudio/zlib.props +++ b/projects/vstudio/zlib.props @@ -2,16 +2,15 @@ - ..\..\..\..\zlib-1.2.8 + ..\..\..\..\zlib