{
  "name": "libqrencode",
  "version": "3.4.2",
  "source": {
    "git": "https://github.com/fukuchi/libqrencode.git",
    "tag": "v3.4.2"
  },
  "source_files": "*.{h,c}",
  "exclude_files": [
    "qrenc.c",
    "qrencode_inner.h"
  ],
  "homepage": "http://fukuchi.org/works/qrencode/",
  "authors": {
    "Kentaro Fukuchi": "kentaro@fukuchi.org"
  },
  "summary": "Libqrencode is a C library for encoding data in a QR Code symbol.",
  "license": {
    "type": "BSD",
    "text": "Copyright (c) 2006-2012 Kentaro Fukuchi\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n  notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n  notice, this list of conditions and the following disclaimer in the\n  documentation and/or other materials provided with the distribution.\n3. Neither the name of Kentaro Fukuchi nor the names of its contributors\n  may be used to endorse or promote products derived from this software\n  without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT OWNER AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  "prepare_command": "echo \"/* config.h.  Generated from config.h.in by configure.  */\n/* config.h.in.  Generated from configure.ac by autoheader.  */\n\n/* Define to 1 if you have the <dlfcn.h> header file. */\n#define HAVE_DLFCN_H 1\n\n/* Define if you have the iconv() function and it works. */\n/* #undef HAVE_ICONV */\n\n/* Define to 1 if you have the <inttypes.h> header file. */\n#define HAVE_INTTYPES_H 1\n\n/* Define to 1 if using pthread is enabled. */\n#define HAVE_LIBPTHREAD 1\n\n/* Define to 1 if you have the <memory.h> header file. */\n#define HAVE_MEMORY_H 1\n\n/* Define to 1 if you have the <stdint.h> header file. */\n#define HAVE_STDINT_H 1\n\n/* Define to 1 if you have the <stdlib.h> header file. */\n#define HAVE_STDLIB_H 1\n\n/* Define to 1 if you have the \\`strdup' function. */\n#define HAVE_STRDUP 1\n\n/* Define to 1 if you have the <strings.h> header file. */\n#define HAVE_STRINGS_H 1\n\n/* Define to 1 if you have the <string.h> header file. */\n#define HAVE_STRING_H 1\n\n/* Define to 1 if you have the <sys/stat.h> header file. */\n#define HAVE_SYS_STAT_H 1\n\n/* Define to 1 if you have the <sys/types.h> header file. */\n#define HAVE_SYS_TYPES_H 1\n\n/* Define to 1 if you have the <unistd.h> header file. */\n#define HAVE_UNISTD_H 1\n\n/* Define to the sub-directory in which libtool stores uninstalled libraries.\n   */\n#define LT_OBJDIR \\\".libs/\\\"\n\n/* Major version number */\n#define MAJOR_VERSION 3\n\n/* Micro version number */\n#define MICRO_VERSION 2\n\n/* Minor version number */\n#define MINOR_VERSION 4\n\n/* Define to 1 if your C compiler doesn't accept -c and -o together. */\n/* #undef NO_MINUS_C_MINUS_O */\n\n/* Name of package */\n#define PACKAGE \\\"qrencode\\\"\n\n/* Define to the address where bug reports for this package should be sent. */\n#define PACKAGE_BUGREPORT \\\"\\\"\n\n/* Define to the full name of this package. */\n#define PACKAGE_NAME \\\"\\\"\n\n/* Define to the full name and version of this package. */\n#define PACKAGE_STRING \\\"\\\"\n\n/* Define to the one symbol short name of this package. */\n#define PACKAGE_TARNAME \\\"\\\"\n\n/* Define to the home page for this package. */\n#define PACKAGE_URL \\\"\\\"\n\n/* Define to the version of this package. */\n#define PACKAGE_VERSION \\\"\\\"\n\n/* Define to 1 if you have the ANSI C header files. */\n#define STDC_HEADERS 1\n\n/* Version number of package */\n#define VERSION \\\"3.4.2\\\"\n\n/* Define to empty if \\`const' does not conform to ANSI C. */\n/* #undef const */\n\n/* Define to \\`__inline__' or \\`__inline' if that's what the C compiler\n   calls it, or to nothing if 'inline' is not supported under any name.  */\n#ifndef __cplusplus\n/* #undef inline */\n#endif\n\n/* Define to 'static' if no test programs will be compiled. */\n#define __STATIC static\n/* #undef WITH_TESTS */\" > config.h\n",
  "prefix_header_contents": "#define HAVE_CONFIG_H 1\n",
  "requires_arc": false
}
