| # Copyright 2015 The Emscripten Authors. All rights reserved. |
| # Emscripten is available under two separate licenses, the MIT license and the |
| # University of Illinois/NCSA Open Source License. Both these licenses can be |
| # found in the LICENSE file. |
| |
| import os |
| import shutil |
| import logging |
| |
| TAG = 'version_1' |
| HASH = 'a19ede8a4339f2745a490c22f3893899e1a5eae9d2b270e49d88d3a85239fbbaa26c9a352d0e6fb8bb69b4f45bd00c1ae9eff29b60cf03e79c5df45a4409992f' |
| |
| |
| def get(ports, settings, shared): |
| if settings.USE_LIBPNG != 1: |
| return [] |
| |
| ports.fetch_project('libpng', 'https://github.com/emscripten-ports/libpng/archive/' + TAG + '.zip', 'libpng-' + TAG, sha512hash=HASH) |
| |
| libname = ports.get_lib_name('libpng') |
| |
| def create(): |
| logging.info('building port: libpng') |
| |
| source_path = os.path.join(ports.get_dir(), 'libpng', 'libpng-' + TAG) |
| dest_path = os.path.join(shared.Cache.get_path('ports-builds'), 'libpng') |
| |
| shutil.rmtree(dest_path, ignore_errors=True) |
| shutil.copytree(source_path, dest_path) |
| |
| open(os.path.join(dest_path, 'pnglibconf.h'), 'w').write(pnglibconf_h) |
| ports.install_headers(dest_path) |
| |
| final = os.path.join(ports.get_build_dir(), 'libpng', libname) |
| ports.build_port(dest_path, final, flags=['-s', 'USE_ZLIB=1'], exclude_files=['pngtest'], exclude_dirs=['scripts', 'contrib']) |
| return final |
| |
| return [shared.Cache.get(libname, create, what='port')] |
| |
| |
| def clear(ports, shared): |
| shared.Cache.erase_file(ports.get_lib_name('libpng')) |
| |
| |
| def process_dependencies(settings): |
| if settings.USE_LIBPNG == 1: |
| settings.USE_ZLIB = 1 |
| |
| |
| def process_args(ports, args, settings, shared): |
| if settings.USE_LIBPNG == 1: |
| get(ports, settings, shared) |
| return args |
| |
| |
| def show(): |
| return 'libpng (USE_LIBPNG=1; zlib license)' |
| |
| |
| pnglibconf_h = r'''/* libpng 1.6.17 STANDARD API DEFINITION */ |
| |
| /* pnglibconf.h - library build configuration */ |
| |
| /* Libpng version 1.6.17 - March 26, 2015 */ |
| |
| /* Copyright (c) 1998-2014 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 */ |
| |
| /* pnglibconf.h */ |
| /* Machine generated file: DO NOT EDIT */ |
| /* Derived from: scripts/pnglibconf.dfa */ |
| #ifndef PNGLCONF_H |
| #define PNGLCONF_H |
| /* options */ |
| #define PNG_16BIT_SUPPORTED |
| #define PNG_ALIGNED_MEMORY_SUPPORTED |
| /*#undef PNG_ARM_NEON_API_SUPPORTED*/ |
| /*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ |
| #define PNG_BENIGN_ERRORS_SUPPORTED |
| #define PNG_BENIGN_READ_ERRORS_SUPPORTED |
| /*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ |
| #define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED |
| #define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED |
| #define PNG_COLORSPACE_SUPPORTED |
| #define PNG_CONSOLE_IO_SUPPORTED |
| #define PNG_CONVERT_tIME_SUPPORTED |
| #define PNG_EASY_ACCESS_SUPPORTED |
| /*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ |
| #define PNG_ERROR_TEXT_SUPPORTED |
| #define PNG_FIXED_POINT_SUPPORTED |
| #define PNG_FLOATING_ARITHMETIC_SUPPORTED |
| #define PNG_FLOATING_POINT_SUPPORTED |
| #define PNG_FORMAT_AFIRST_SUPPORTED |
| #define PNG_FORMAT_BGR_SUPPORTED |
| #define PNG_GAMMA_SUPPORTED |
| #define PNG_GET_PALETTE_MAX_SUPPORTED |
| #define PNG_HANDLE_AS_UNKNOWN_SUPPORTED |
| #define PNG_INCH_CONVERSIONS_SUPPORTED |
| #define PNG_INFO_IMAGE_SUPPORTED |
| #define PNG_IO_STATE_SUPPORTED |
| #define PNG_MNG_FEATURES_SUPPORTED |
| #define PNG_POINTER_INDEXING_SUPPORTED |
| #define PNG_PROGRESSIVE_READ_SUPPORTED |
| #define PNG_READ_16BIT_SUPPORTED |
| #define PNG_READ_ALPHA_MODE_SUPPORTED |
| #define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED |
| #define PNG_READ_BACKGROUND_SUPPORTED |
| #define PNG_READ_BGR_SUPPORTED |
| #define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED |
| #define PNG_READ_COMPOSITE_NODIV_SUPPORTED |
| #define PNG_READ_COMPRESSED_TEXT_SUPPORTED |
| #define PNG_READ_EXPAND_16_SUPPORTED |
| #define PNG_READ_EXPAND_SUPPORTED |
| #define PNG_READ_FILLER_SUPPORTED |
| #define PNG_READ_GAMMA_SUPPORTED |
| #define PNG_READ_GET_PALETTE_MAX_SUPPORTED |
| #define PNG_READ_GRAY_TO_RGB_SUPPORTED |
| #define PNG_READ_INTERLACING_SUPPORTED |
| #define PNG_READ_INT_FUNCTIONS_SUPPORTED |
| #define PNG_READ_INVERT_ALPHA_SUPPORTED |
| #define PNG_READ_INVERT_SUPPORTED |
| #define PNG_READ_OPT_PLTE_SUPPORTED |
| #define PNG_READ_PACKSWAP_SUPPORTED |
| #define PNG_READ_PACK_SUPPORTED |
| #define PNG_READ_QUANTIZE_SUPPORTED |
| #define PNG_READ_RGB_TO_GRAY_SUPPORTED |
| #define PNG_READ_SCALE_16_TO_8_SUPPORTED |
| #define PNG_READ_SHIFT_SUPPORTED |
| #define PNG_READ_STRIP_16_TO_8_SUPPORTED |
| #define PNG_READ_STRIP_ALPHA_SUPPORTED |
| #define PNG_READ_SUPPORTED |
| #define PNG_READ_SWAP_ALPHA_SUPPORTED |
| #define PNG_READ_SWAP_SUPPORTED |
| #define PNG_READ_TEXT_SUPPORTED |
| #define PNG_READ_TRANSFORMS_SUPPORTED |
| #define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED |
| #define PNG_READ_USER_CHUNKS_SUPPORTED |
| #define PNG_READ_USER_TRANSFORM_SUPPORTED |
| #define PNG_READ_bKGD_SUPPORTED |
| #define PNG_READ_cHRM_SUPPORTED |
| #define PNG_READ_gAMA_SUPPORTED |
| #define PNG_READ_hIST_SUPPORTED |
| #define PNG_READ_iCCP_SUPPORTED |
| #define PNG_READ_iTXt_SUPPORTED |
| #define PNG_READ_oFFs_SUPPORTED |
| #define PNG_READ_pCAL_SUPPORTED |
| #define PNG_READ_pHYs_SUPPORTED |
| #define PNG_READ_sBIT_SUPPORTED |
| #define PNG_READ_sCAL_SUPPORTED |
| #define PNG_READ_sPLT_SUPPORTED |
| #define PNG_READ_sRGB_SUPPORTED |
| #define PNG_READ_tEXt_SUPPORTED |
| #define PNG_READ_tIME_SUPPORTED |
| #define PNG_READ_tRNS_SUPPORTED |
| #define PNG_READ_zTXt_SUPPORTED |
| #define PNG_SAVE_INT_32_SUPPORTED |
| #define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED |
| #define PNG_SEQUENTIAL_READ_SUPPORTED |
| #define PNG_SETJMP_SUPPORTED |
| #define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED |
| #define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED |
| #define PNG_SET_OPTION_SUPPORTED |
| #define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED |
| #define PNG_SET_USER_LIMITS_SUPPORTED |
| #define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED |
| #define PNG_SIMPLIFIED_READ_BGR_SUPPORTED |
| #define PNG_SIMPLIFIED_READ_SUPPORTED |
| #define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED |
| #define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED |
| #define PNG_SIMPLIFIED_WRITE_SUPPORTED |
| #define PNG_STDIO_SUPPORTED |
| #define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED |
| #define PNG_TEXT_SUPPORTED |
| #define PNG_TIME_RFC1123_SUPPORTED |
| #define PNG_UNKNOWN_CHUNKS_SUPPORTED |
| #define PNG_USER_CHUNKS_SUPPORTED |
| #define PNG_USER_LIMITS_SUPPORTED |
| #define PNG_USER_MEM_SUPPORTED |
| #define PNG_USER_TRANSFORM_INFO_SUPPORTED |
| #define PNG_USER_TRANSFORM_PTR_SUPPORTED |
| #define PNG_WARNINGS_SUPPORTED |
| #define PNG_WRITE_16BIT_SUPPORTED |
| #define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED |
| #define PNG_WRITE_BGR_SUPPORTED |
| #define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED |
| #define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED |
| #define PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED |
| #define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED |
| #define PNG_WRITE_FILLER_SUPPORTED |
| #define PNG_WRITE_FILTER_SUPPORTED |
| #define PNG_WRITE_FLUSH_SUPPORTED |
| #define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED |
| #define PNG_WRITE_INTERLACING_SUPPORTED |
| #define PNG_WRITE_INT_FUNCTIONS_SUPPORTED |
| #define PNG_WRITE_INVERT_ALPHA_SUPPORTED |
| #define PNG_WRITE_INVERT_SUPPORTED |
| #define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED |
| #define PNG_WRITE_PACKSWAP_SUPPORTED |
| #define PNG_WRITE_PACK_SUPPORTED |
| #define PNG_WRITE_SHIFT_SUPPORTED |
| #define PNG_WRITE_SUPPORTED |
| #define PNG_WRITE_SWAP_ALPHA_SUPPORTED |
| #define PNG_WRITE_SWAP_SUPPORTED |
| #define PNG_WRITE_TEXT_SUPPORTED |
| #define PNG_WRITE_TRANSFORMS_SUPPORTED |
| #define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED |
| #define PNG_WRITE_USER_TRANSFORM_SUPPORTED |
| #define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED |
| #define PNG_WRITE_bKGD_SUPPORTED |
| #define PNG_WRITE_cHRM_SUPPORTED |
| #define PNG_WRITE_gAMA_SUPPORTED |
| #define PNG_WRITE_hIST_SUPPORTED |
| #define PNG_WRITE_iCCP_SUPPORTED |
| #define PNG_WRITE_iTXt_SUPPORTED |
| #define PNG_WRITE_oFFs_SUPPORTED |
| #define PNG_WRITE_pCAL_SUPPORTED |
| #define PNG_WRITE_pHYs_SUPPORTED |
| #define PNG_WRITE_sBIT_SUPPORTED |
| #define PNG_WRITE_sCAL_SUPPORTED |
| #define PNG_WRITE_sPLT_SUPPORTED |
| #define PNG_WRITE_sRGB_SUPPORTED |
| #define PNG_WRITE_tEXt_SUPPORTED |
| #define PNG_WRITE_tIME_SUPPORTED |
| #define PNG_WRITE_tRNS_SUPPORTED |
| #define PNG_WRITE_zTXt_SUPPORTED |
| #define PNG_bKGD_SUPPORTED |
| #define PNG_cHRM_SUPPORTED |
| #define PNG_gAMA_SUPPORTED |
| #define PNG_hIST_SUPPORTED |
| #define PNG_iCCP_SUPPORTED |
| #define PNG_iTXt_SUPPORTED |
| #define PNG_oFFs_SUPPORTED |
| #define PNG_pCAL_SUPPORTED |
| #define PNG_pHYs_SUPPORTED |
| #define PNG_sBIT_SUPPORTED |
| #define PNG_sCAL_SUPPORTED |
| #define PNG_sPLT_SUPPORTED |
| #define PNG_sRGB_SUPPORTED |
| #define PNG_tEXt_SUPPORTED |
| #define PNG_tIME_SUPPORTED |
| #define PNG_tRNS_SUPPORTED |
| #define PNG_zTXt_SUPPORTED |
| /* end of options */ |
| /* settings */ |
| #define PNG_API_RULE 0 |
| #define PNG_COST_SHIFT 3 |
| #define PNG_DEFAULT_READ_MACROS 1 |
| #define PNG_GAMMA_THRESHOLD_FIXED 5000 |
| #define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE |
| #define PNG_INFLATE_BUF_SIZE 1024 |
| #define PNG_MAX_GAMMA_8 11 |
| #define PNG_QUANTIZE_BLUE_BITS 5 |
| #define PNG_QUANTIZE_GREEN_BITS 5 |
| #define PNG_QUANTIZE_RED_BITS 5 |
| #define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) |
| #define PNG_TEXT_Z_DEFAULT_STRATEGY 0 |
| #define PNG_USER_CHUNK_CACHE_MAX 1000 |
| #define PNG_USER_CHUNK_MALLOC_MAX 8000000 |
| #define PNG_USER_HEIGHT_MAX 1000000 |
| #define PNG_USER_WIDTH_MAX 1000000 |
| #define PNG_WEIGHT_SHIFT 8 |
| #define PNG_ZBUF_SIZE 8192 |
| #define PNG_ZLIB_VERNUM 0 /* unknown */ |
| #define PNG_Z_DEFAULT_COMPRESSION (-1) |
| #define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 |
| #define PNG_Z_DEFAULT_STRATEGY 1 |
| #define PNG_sCAL_PRECISION 5 |
| #define PNG_sRGB_PROFILE_CHECKS 2 |
| /* end of settings */ |
| #endif /* PNGLCONF_H */ |
| ''' |