Skip to content

Commit c44d0ca

Browse files
committed
Changed how DLLs are built slightly to avoid taking a dependency on the Windows 8+ CreateFile2 function. Also swapped CreateFileW for CreateFile2 in entrypoint-win32.cpp. This should resolve issue #10. Also added a file that was missing from libpng16.
1 parent 6252e36 commit c44d0ca

File tree

23 files changed

+215
-4
lines changed

23 files changed

+215
-4
lines changed

libpng16/pnglibconf.h

Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
/* libpng 1.6.8beta03 STANDARD API DEFINITION */
2+
3+
/* pnglibconf.h - library build configuration */
4+
5+
/* Libpng version 1.6.8beta03 - November 30, 2013 */
6+
7+
/* Copyright (c) 1998-2013 Glenn Randers-Pehrson */
8+
9+
/* This code is released under the libpng license. */
10+
/* For conditions of distribution and use, see the disclaimer */
11+
/* and license in png.h */
12+
13+
/* pnglibconf.h */
14+
/* Machine generated file: DO NOT EDIT */
15+
/* Derived from: scripts/pnglibconf.dfa */
16+
#ifndef PNGLCONF_H
17+
#define PNGLCONF_H
18+
/* options */
19+
#define PNG_16BIT_SUPPORTED
20+
#define PNG_ALIGNED_MEMORY_SUPPORTED
21+
/*#undef PNG_ARM_NEON_API_SUPPORTED*/
22+
/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/
23+
#define PNG_BENIGN_ERRORS_SUPPORTED
24+
#define PNG_BENIGN_READ_ERRORS_SUPPORTED
25+
/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/
26+
#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED
27+
#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED
28+
#define PNG_COLORSPACE_SUPPORTED
29+
#define PNG_CONSOLE_IO_SUPPORTED
30+
#define PNG_CONVERT_tIME_SUPPORTED
31+
#define PNG_EASY_ACCESS_SUPPORTED
32+
/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/
33+
#define PNG_ERROR_TEXT_SUPPORTED
34+
#define PNG_FIXED_POINT_SUPPORTED
35+
#define PNG_FLOATING_ARITHMETIC_SUPPORTED
36+
#define PNG_FLOATING_POINT_SUPPORTED
37+
#define PNG_FORMAT_AFIRST_SUPPORTED
38+
#define PNG_FORMAT_BGR_SUPPORTED
39+
#define PNG_GAMMA_SUPPORTED
40+
#define PNG_GET_PALETTE_MAX_SUPPORTED
41+
#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
42+
#define PNG_INCH_CONVERSIONS_SUPPORTED
43+
#define PNG_INFO_IMAGE_SUPPORTED
44+
#define PNG_IO_STATE_SUPPORTED
45+
#define PNG_MNG_FEATURES_SUPPORTED
46+
#define PNG_POINTER_INDEXING_SUPPORTED
47+
#define PNG_PROGRESSIVE_READ_SUPPORTED
48+
#define PNG_READ_16BIT_SUPPORTED
49+
#define PNG_READ_ALPHA_MODE_SUPPORTED
50+
#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
51+
#define PNG_READ_BACKGROUND_SUPPORTED
52+
#define PNG_READ_BGR_SUPPORTED
53+
#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED
54+
#define PNG_READ_COMPOSITE_NODIV_SUPPORTED
55+
#define PNG_READ_COMPRESSED_TEXT_SUPPORTED
56+
#define PNG_READ_EXPAND_16_SUPPORTED
57+
#define PNG_READ_EXPAND_SUPPORTED
58+
#define PNG_READ_FILLER_SUPPORTED
59+
#define PNG_READ_GAMMA_SUPPORTED
60+
#define PNG_READ_GET_PALETTE_MAX_SUPPORTED
61+
#define PNG_READ_GRAY_TO_RGB_SUPPORTED
62+
#define PNG_READ_INTERLACING_SUPPORTED
63+
#define PNG_READ_INT_FUNCTIONS_SUPPORTED
64+
#define PNG_READ_INVERT_ALPHA_SUPPORTED
65+
#define PNG_READ_INVERT_SUPPORTED
66+
#define PNG_READ_OPT_PLTE_SUPPORTED
67+
#define PNG_READ_PACKSWAP_SUPPORTED
68+
#define PNG_READ_PACK_SUPPORTED
69+
#define PNG_READ_QUANTIZE_SUPPORTED
70+
#define PNG_READ_RGB_TO_GRAY_SUPPORTED
71+
#define PNG_READ_SCALE_16_TO_8_SUPPORTED
72+
#define PNG_READ_SHIFT_SUPPORTED
73+
#define PNG_READ_STRIP_16_TO_8_SUPPORTED
74+
#define PNG_READ_STRIP_ALPHA_SUPPORTED
75+
#define PNG_READ_SUPPORTED
76+
#define PNG_READ_SWAP_ALPHA_SUPPORTED
77+
#define PNG_READ_SWAP_SUPPORTED
78+
#define PNG_READ_TEXT_SUPPORTED
79+
#define PNG_READ_TRANSFORMS_SUPPORTED
80+
#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
81+
#define PNG_READ_USER_CHUNKS_SUPPORTED
82+
#define PNG_READ_USER_TRANSFORM_SUPPORTED
83+
#define PNG_READ_bKGD_SUPPORTED
84+
#define PNG_READ_cHRM_SUPPORTED
85+
#define PNG_READ_gAMA_SUPPORTED
86+
#define PNG_READ_hIST_SUPPORTED
87+
#define PNG_READ_iCCP_SUPPORTED
88+
#define PNG_READ_iTXt_SUPPORTED
89+
#define PNG_READ_oFFs_SUPPORTED
90+
#define PNG_READ_pCAL_SUPPORTED
91+
#define PNG_READ_pHYs_SUPPORTED
92+
#define PNG_READ_sBIT_SUPPORTED
93+
#define PNG_READ_sCAL_SUPPORTED
94+
#define PNG_READ_sPLT_SUPPORTED
95+
#define PNG_READ_sRGB_SUPPORTED
96+
#define PNG_READ_tEXt_SUPPORTED
97+
#define PNG_READ_tIME_SUPPORTED
98+
#define PNG_READ_tRNS_SUPPORTED
99+
#define PNG_READ_zTXt_SUPPORTED
100+
/*#undef PNG_SAFE_LIMITS_SUPPORTED*/
101+
#define PNG_SAVE_INT_32_SUPPORTED
102+
#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED
103+
#define PNG_SEQUENTIAL_READ_SUPPORTED
104+
#define PNG_SETJMP_SUPPORTED
105+
#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED
106+
#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
107+
#define PNG_SET_OPTION_SUPPORTED
108+
#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
109+
#define PNG_SET_USER_LIMITS_SUPPORTED
110+
#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED
111+
#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED
112+
#define PNG_SIMPLIFIED_READ_SUPPORTED
113+
#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
114+
#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED
115+
#define PNG_SIMPLIFIED_WRITE_SUPPORTED
116+
#define PNG_STDIO_SUPPORTED
117+
#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED
118+
#define PNG_TEXT_SUPPORTED
119+
#define PNG_TIME_RFC1123_SUPPORTED
120+
#define PNG_UNKNOWN_CHUNKS_SUPPORTED
121+
#define PNG_USER_CHUNKS_SUPPORTED
122+
#define PNG_USER_LIMITS_SUPPORTED
123+
#define PNG_USER_MEM_SUPPORTED
124+
#define PNG_USER_TRANSFORM_INFO_SUPPORTED
125+
#define PNG_USER_TRANSFORM_PTR_SUPPORTED
126+
#define PNG_WARNINGS_SUPPORTED
127+
#define PNG_WRITE_16BIT_SUPPORTED
128+
#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
129+
#define PNG_WRITE_BGR_SUPPORTED
130+
#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED
131+
#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED
132+
#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED
133+
#define PNG_WRITE_FILLER_SUPPORTED
134+
#define PNG_WRITE_FILTER_SUPPORTED
135+
#define PNG_WRITE_FLUSH_SUPPORTED
136+
#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED
137+
#define PNG_WRITE_INTERLACING_SUPPORTED
138+
#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED
139+
#define PNG_WRITE_INVERT_ALPHA_SUPPORTED
140+
#define PNG_WRITE_INVERT_SUPPORTED
141+
#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED
142+
#define PNG_WRITE_PACKSWAP_SUPPORTED
143+
#define PNG_WRITE_PACK_SUPPORTED
144+
#define PNG_WRITE_SHIFT_SUPPORTED
145+
#define PNG_WRITE_SUPPORTED
146+
#define PNG_WRITE_SWAP_ALPHA_SUPPORTED
147+
#define PNG_WRITE_SWAP_SUPPORTED
148+
#define PNG_WRITE_TEXT_SUPPORTED
149+
#define PNG_WRITE_TRANSFORMS_SUPPORTED
150+
#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
151+
#define PNG_WRITE_USER_TRANSFORM_SUPPORTED
152+
#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
153+
#define PNG_WRITE_bKGD_SUPPORTED
154+
#define PNG_WRITE_cHRM_SUPPORTED
155+
#define PNG_WRITE_gAMA_SUPPORTED
156+
#define PNG_WRITE_hIST_SUPPORTED
157+
#define PNG_WRITE_iCCP_SUPPORTED
158+
#define PNG_WRITE_iTXt_SUPPORTED
159+
#define PNG_WRITE_oFFs_SUPPORTED
160+
#define PNG_WRITE_pCAL_SUPPORTED
161+
#define PNG_WRITE_pHYs_SUPPORTED
162+
#define PNG_WRITE_sBIT_SUPPORTED
163+
#define PNG_WRITE_sCAL_SUPPORTED
164+
#define PNG_WRITE_sPLT_SUPPORTED
165+
#define PNG_WRITE_sRGB_SUPPORTED
166+
#define PNG_WRITE_tEXt_SUPPORTED
167+
#define PNG_WRITE_tIME_SUPPORTED
168+
#define PNG_WRITE_tRNS_SUPPORTED
169+
#define PNG_WRITE_zTXt_SUPPORTED
170+
#define PNG_bKGD_SUPPORTED
171+
#define PNG_cHRM_SUPPORTED
172+
#define PNG_gAMA_SUPPORTED
173+
#define PNG_hIST_SUPPORTED
174+
#define PNG_iCCP_SUPPORTED
175+
#define PNG_iTXt_SUPPORTED
176+
#define PNG_oFFs_SUPPORTED
177+
#define PNG_pCAL_SUPPORTED
178+
#define PNG_pHYs_SUPPORTED
179+
#define PNG_sBIT_SUPPORTED
180+
#define PNG_sCAL_SUPPORTED
181+
#define PNG_sPLT_SUPPORTED
182+
#define PNG_sRGB_SUPPORTED
183+
#define PNG_tEXt_SUPPORTED
184+
#define PNG_tIME_SUPPORTED
185+
#define PNG_tRNS_SUPPORTED
186+
#define PNG_zTXt_SUPPORTED
187+
/* end of options */
188+
/* settings */
189+
#define PNG_API_RULE 0
190+
#define PNG_CALLOC_SUPPORTED
191+
#define PNG_COST_SHIFT 3
192+
#define PNG_DEFAULT_READ_MACROS 1
193+
#define PNG_GAMMA_THRESHOLD_FIXED 5000
194+
#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE
195+
#define PNG_INFLATE_BUF_SIZE 1024
196+
#define PNG_MAX_GAMMA_8 11
197+
#define PNG_QUANTIZE_BLUE_BITS 5
198+
#define PNG_QUANTIZE_GREEN_BITS 5
199+
#define PNG_QUANTIZE_RED_BITS 5
200+
#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1)
201+
#define PNG_TEXT_Z_DEFAULT_STRATEGY 0
202+
#define PNG_WEIGHT_SHIFT 8
203+
#define PNG_ZBUF_SIZE 8192
204+
#define PNG_ZLIB_VERNUM 0 /* unknown */
205+
#define PNG_Z_DEFAULT_COMPRESSION (-1)
206+
#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0
207+
#define PNG_Z_DEFAULT_STRATEGY 1
208+
#define PNG_sCAL_PRECISION 5
209+
#define PNG_sRGB_PROFILE_CHECKS 2
210+
/* end of settings */
211+
#endif /* PNGLCONF_H */

win32/N3888_RefImpl/DLL build instructions.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ DLL build instructions. These are provided "AS IS" with no warranties or guarant
3030

3131
9. In the VS 2013 command prompt window, build zlib using the following commands:
3232
nmake -f win32\Makefile.msc clean
33-
nmake -f win32\Makefile.msc
33+
nmake -f win32\Makefile.msc LOC=-D_INC_WINAPIFAMILY
3434

3535
10. In the VS 2013 command prompt window, cd to the libpng directory.
3636

@@ -76,6 +76,6 @@ DLL build instructions. These are provided "AS IS" with no warranties or guarant
7676
make -f Makefile.win32 CFG=debug clean
7777
make -f Makefile.win32 CFG=debug
7878

79-
25. If you get linker errors with messages about trying to link x86 and x64 files when trying to build cairo, go into the "cairo/src/debug/win32" folder (replace "debug" with "release" if you are creating a release build) and delete all of the .obj files in that folder. Then run the make command again (the last one without the clean) and it should work fine and finish building.
79+
25. If you get "fatal error LNK1112: module machine type '???' conflicts with target machine type '???'" (with the ??? being either X86 or x64), go into the "cairo/src/debug/win32" folder (replace "debug" with "release" if you are creating a release build) and delete all of the .obj files in that folder. Then run the make command again (the last one without the clean) and it should work fine and finish building.
8080

8181
25. When cairo finishes building, it will list various files for you to copy. Copy those files to the correct place (it's up to you to decide where that should be). You will also need cairo.lib and zlib.lib in order to link against their respective DLLs. The .lib files should be added as linker inputs in your project's project properties in Visual Studio and the DLL files will need to be copied to the same directory as your program executable after it is built and before it runs in order to ensure that it can run correctly.
512 Bytes
Binary file not shown.
24 KB
Binary file not shown.
0 Bytes
Binary file not shown.
8 KB
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
24 KB
Binary file not shown.

0 commit comments

Comments
 (0)