Update projects/vstudio

This commit is contained in:
Cosmin Truta 2018-07-29 21:51:48 -04:00
parent 8440326590
commit 6d55a14c58
2 changed files with 54 additions and 65 deletions

View File

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

View File

@ -2,16 +2,15 @@
<!-- <!--
* zlib.props - location of zlib source * zlib.props - location of zlib source
* *
* libpng version 1.6.35 - July 15, 2018 * Copyright (c) 2018 Cosmin Truta
*
* Copyright (c) 1998-2011 Glenn Randers-Pehrson * Copyright (c) 1998-2011 Glenn Randers-Pehrson
* *
* This code is released under the libpng license. * This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer * For conditions of distribution and use, see the disclaimer
* and license in png.h * and license in png.h
* You must edit this file to record the location of the zlib * You may need to edit this file in order to update the location
* source code. * of the zlib source code.
--> -->
<Project ToolsVersion="4.0" <Project ToolsVersion="4.0"
@ -32,7 +31,7 @@
versions do not match. The zlib version used in this build is recorded versions do not match. The zlib version used in this build is recorded
below: below:
--> -->
<ZLibSrcDir>..\..\..\..\zlib-1.2.8</ZLibSrcDir> <ZLibSrcDir>..\..\..\..\zlib</ZLibSrcDir>
<!-- The following line allows compilation for an ARM target with Visual <!-- The following line allows compilation for an ARM target with Visual
Studio 2012. Notice that this is not supported by the Visual Studio Studio 2012. Notice that this is not supported by the Visual Studio