{
  "targets": [
    {
      "target_name": "storm-replay",
      "sources": [
        "src/storm-replay.cpp",

        "src/StormLib/src/adpcm/adpcm.cpp",
        "src/StormLib/src/huffman/huff.cpp",
        "src/StormLib/src/sparse/sparse.cpp",
        "src/StormLib/src/FileStream.cpp",
        "src/StormLib/src/SBaseCommon.cpp",
        "src/StormLib/src/SBaseDumpData.cpp",
        "src/StormLib/src/SBaseFileTable.cpp",
        "src/StormLib/src/SBaseSubTypes.cpp",
        "src/StormLib/src/SCompression.cpp",
        "src/StormLib/src/SFileAddFile.cpp",
        "src/StormLib/src/SFileAttributes.cpp",
        "src/StormLib/src/SFileCompactArchive.cpp",
        "src/StormLib/src/SFileCreateArchive.cpp",
        "src/StormLib/src/SFileExtractFile.cpp",
        "src/StormLib/src/SFileFindFile.cpp",
        "src/StormLib/src/SFileGetFileInfo.cpp",
        "src/StormLib/src/SFileListFile.cpp",
        "src/StormLib/src/SFileOpenArchive.cpp",
        "src/StormLib/src/SFileOpenFileEx.cpp",
        "src/StormLib/src/SFilePatchArchives.cpp",
        "src/StormLib/src/SFileReadFile.cpp",
        "src/StormLib/src/SFileVerify.cpp",

        "src/StormLib/src/libtomcrypt/src/hashes/sha1.c",
        "src/StormLib/src/libtomcrypt/src/hashes/hash_memory.c",
        "src/StormLib/src/libtomcrypt/src/hashes/md5.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_hash_is_valid.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_prng_descriptor.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_register_prng.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_ltc_mp_descriptor.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_find_hash.c",
        "src/StormLib/src/libtomcrypt/src/misc/zeromem.c",
        "src/StormLib/src/libtomcrypt/src/misc/base64_decode.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_register_hash.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_find_prng.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_prng_is_valid.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_hash_descriptor.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_libc.c",
        "src/StormLib/src/libtomcrypt/src/misc/crypt_argchk.c",
        "src/StormLib/src/libtomcrypt/src/math/multi.c",
        "src/StormLib/src/libtomcrypt/src/math/ltm_desc.c",
        "src/StormLib/src/libtomcrypt/src/math/rand_prime.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_bit_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_boolean.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_choice.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_ia5_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_integer.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_object_identifier.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_octet_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_printable_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_sequence_ex.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_sequence_flexi.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_sequence_multi.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_short_integer.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_utctime.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_decode_utf8_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_bit_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_boolean.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_ia5_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_integer.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_object_identifier.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_octet_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_printable_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_sequence_ex.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_sequence_multi.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_set.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_setof.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_short_integer.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_utctime.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_encode_utf8_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_bit_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_boolean.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_ia5_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_integer.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_object_identifier.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_octet_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_printable_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_sequence.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_utctime.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_sequence_free.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_utf8_string.c",
        "src/StormLib/src/libtomcrypt/src/pk/asn1/der_length_short_integer.c",
        "src/StormLib/src/libtomcrypt/src/pk/ecc/ltc_ecc_projective_dbl_point.c",
        "src/StormLib/src/libtomcrypt/src/pk/ecc/ltc_ecc_mulmod.c",
        "src/StormLib/src/libtomcrypt/src/pk/ecc/ltc_ecc_projective_add_point.c",
        "src/StormLib/src/libtomcrypt/src/pk/ecc/ltc_ecc_map.c",
        "src/StormLib/src/libtomcrypt/src/pk/ecc/ltc_ecc_points.c",
        "src/StormLib/src/libtomcrypt/src/pk/ecc/ltc_ecc_mul2add.c",
        "src/StormLib/src/libtomcrypt/src/pk/pkcs1/pkcs_1_v1_5_decode.c",
        "src/StormLib/src/libtomcrypt/src/pk/pkcs1/pkcs_1_v1_5_encode.c",
        "src/StormLib/src/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_decode.c",
        "src/StormLib/src/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_encode.c",
        "src/StormLib/src/libtomcrypt/src/pk/pkcs1/pkcs_1_mgf1.c",
        "src/StormLib/src/libtomcrypt/src/pk/pkcs1/pkcs_1_oaep_decode.c",
        "src/StormLib/src/libtomcrypt/src/pk/rsa/rsa_make_key.c",
        "src/StormLib/src/libtomcrypt/src/pk/rsa/rsa_free.c",
        "src/StormLib/src/libtomcrypt/src/pk/rsa/rsa_verify_simple.c",
        "src/StormLib/src/libtomcrypt/src/pk/rsa/rsa_import.c",
        "src/StormLib/src/libtomcrypt/src/pk/rsa/rsa_verify_hash.c",
        "src/StormLib/src/libtomcrypt/src/pk/rsa/rsa_sign_hash.c",
        "src/StormLib/src/libtomcrypt/src/pk/rsa/rsa_exptmod.c",
        "src/StormLib/src/libtommath/bn_mp_exptmod_fast.c",
        "src/StormLib/src/libtommath/bn_mp_jacobi.c",
        "src/StormLib/src/libtommath/bn_mp_mod.c",
        "src/StormLib/src/libtommath/bn_mp_signed_bin_size.c",
        "src/StormLib/src/libtommath/bn_mp_invmod.c",
        "src/StormLib/src/libtommath/bn_mp_is_square.c",
        "src/StormLib/src/libtommath/bn_mp_neg.c",
        "src/StormLib/src/libtommath/bn_mp_reduce_2k.c",
        "src/StormLib/src/libtommath/bn_mp_xor.c",
        "src/StormLib/src/libtommath/bn_mp_karatsuba_mul.c",
        "src/StormLib/src/libtommath/bn_mp_dr_setup.c",
        "src/StormLib/src/libtommath/bn_mp_mul.c",
        "src/StormLib/src/libtommath/bn_mp_init_multi.c",
        "src/StormLib/src/libtommath/bn_mp_clear.c",
        "src/StormLib/src/libtommath/bn_s_mp_sqr.c",
        "src/StormLib/src/libtommath/bn_mp_rshd.c",
        "src/StormLib/src/libtommath/bn_s_mp_sub.c",
        "src/StormLib/src/libtommath/bn_mp_sub.c",
        "src/StormLib/src/libtommath/bn_mp_toradix.c",
        "src/StormLib/src/libtommath/bn_mp_reduce.c",
        "src/StormLib/src/libtommath/bn_mp_prime_is_prime.c",
        "src/StormLib/src/libtommath/bn_mp_prime_next_prime.c",
        "src/StormLib/src/libtommath/bn_mp_exptmod.c",
        "src/StormLib/src/libtommath/bn_mp_mod_2d.c",
        "src/StormLib/src/libtommath/bn_reverse.c",
        "src/StormLib/src/libtommath/bn_mp_init.c",
        "src/StormLib/src/libtommath/bn_fast_s_mp_sqr.c",
        "src/StormLib/src/libtommath/bn_mp_sqr.c",
        "src/StormLib/src/libtommath/bn_mp_cnt_lsb.c",
        "src/StormLib/src/libtommath/bn_mp_clear_multi.c",
        "src/StormLib/src/libtommath/bn_mp_exch.c",
        "src/StormLib/src/libtommath/bn_fast_s_mp_mul_digs.c",
        "src/StormLib/src/libtommath/bn_mp_grow.c",
        "src/StormLib/src/libtommath/bn_mp_read_radix.c",
        "src/StormLib/src/libtommath/bn_mp_mul_2.c",
        "src/StormLib/src/libtommath/bn_mp_shrink.c",
        "src/StormLib/src/libtommath/bn_mp_div_2.c",
        "src/StormLib/src/libtommath/bn_fast_mp_invmod.c",
        "src/StormLib/src/libtommath/bn_mp_prime_miller_rabin.c",
        "src/StormLib/src/libtommath/bn_mp_to_unsigned_bin.c",
        "src/StormLib/src/libtommath/bn_mp_prime_rabin_miller_trials.c",
        "src/StormLib/src/libtommath/bn_mp_2expt.c",
        "src/StormLib/src/libtommath/bn_mp_cmp_mag.c",
        "src/StormLib/src/libtommath/bn_mp_to_signed_bin.c",
        "src/StormLib/src/libtommath/bn_mp_get_int.c",
        "src/StormLib/src/libtommath/bn_mp_montgomery_reduce.c",
        "src/StormLib/src/libtommath/bn_mp_dr_reduce.c",
        "src/StormLib/src/libtommath/bn_mp_fwrite.c",
        "src/StormLib/src/libtommath/bn_mp_and.c",
        "src/StormLib/src/libtommath/bn_mp_exteuclid.c",
        "src/StormLib/src/libtommath/bn_fast_mp_montgomery_reduce.c",
        "src/StormLib/src/libtommath/bn_s_mp_mul_high_digs.c",
        "src/StormLib/src/libtommath/bn_mp_reduce_setup.c",
        "src/StormLib/src/libtommath/bn_mp_lcm.c",
        "src/StormLib/src/libtommath/bn_mp_abs.c",
        "src/StormLib/src/libtommath/bn_mp_cmp.c",
        "src/StormLib/src/libtommath/bn_mp_submod.c",
        "src/StormLib/src/libtommath/bn_mp_div_d.c",
        "src/StormLib/src/libtommath/bn_s_mp_mul_digs.c",
        "src/StormLib/src/libtommath/bn_mp_mul_d.c",
        "src/StormLib/src/libtommath/bn_mp_to_unsigned_bin_n.c",
        "src/StormLib/src/libtommath/bn_mp_prime_random_ex.c",
        "src/StormLib/src/libtommath/bn_mp_rand.c",
        "src/StormLib/src/libtommath/bn_mp_div_2d.c",
        "src/StormLib/src/libtommath/bn_mp_addmod.c",
        "src/StormLib/src/libtommath/bn_mp_init_copy.c",
        "src/StormLib/src/libtommath/bn_mp_read_unsigned_bin.c",
        "src/StormLib/src/libtommath/bn_mp_toradix_n.c",
        "src/StormLib/src/libtommath/bn_fast_s_mp_mul_high_digs.c",
        "src/StormLib/src/libtommath/bn_mp_toom_sqr.c",
        "src/StormLib/src/libtommath/bn_mp_to_signed_bin_n.c",
        "src/StormLib/src/libtommath/bn_mp_reduce_2k_setup_l.c",
        "src/StormLib/src/libtommath/bn_mp_div.c",
        "src/StormLib/src/libtommath/bn_prime_tab.c",
        "src/StormLib/src/libtommath/bn_mp_karatsuba_sqr.c",
        "src/StormLib/src/libtommath/bn_mp_gcd.c",
        "src/StormLib/src/libtommath/bn_mp_prime_is_divisible.c",
        "src/StormLib/src/libtommath/bn_mp_set_int.c",
        "src/StormLib/src/libtommath/bn_mp_prime_fermat.c",
        "src/StormLib/src/libtommath/bn_mp_cmp_d.c",
        "src/StormLib/src/libtommath/bn_mp_add.c",
        "src/StormLib/src/libtommath/bn_mp_sub_d.c",
        "src/StormLib/src/libtommath/bn_s_mp_exptmod.c",
        "src/StormLib/src/libtommath/bn_mp_init_size.c",
        "src/StormLib/src/libtommath/bncore.c",
        "src/StormLib/src/libtommath/bn_mp_radix_smap.c",
        "src/StormLib/src/libtommath/bn_mp_reduce_2k_l.c",
        "src/StormLib/src/libtommath/bn_mp_montgomery_calc_normalization.c",
        "src/StormLib/src/libtommath/bn_mp_mod_d.c",
        "src/StormLib/src/libtommath/bn_mp_set.c",
        "src/StormLib/src/libtommath/bn_mp_or.c",
        "src/StormLib/src/libtommath/bn_mp_sqrt.c",
        "src/StormLib/src/libtommath/bn_mp_invmod_slow.c",
        "src/StormLib/src/libtommath/bn_mp_count_bits.c",
        "src/StormLib/src/libtommath/bn_mp_read_signed_bin.c",
        "src/StormLib/src/libtommath/bn_mp_div_3.c",
        "src/StormLib/src/libtommath/bn_mp_unsigned_bin_size.c",
        "src/StormLib/src/libtommath/bn_mp_mulmod.c",
        "src/StormLib/src/libtommath/bn_mp_clamp.c",
        "src/StormLib/src/libtommath/bn_mp_reduce_2k_setup.c",
        "src/StormLib/src/libtommath/bn_mp_toom_mul.c",
        "src/StormLib/src/libtommath/bn_mp_montgomery_setup.c",
        "src/StormLib/src/libtommath/bn_mp_expt_d.c",
        "src/StormLib/src/libtommath/bn_mp_copy.c",
        "src/StormLib/src/libtommath/bn_mp_dr_is_modulus.c",
        "src/StormLib/src/libtommath/bn_mp_sqrmod.c",
        "src/StormLib/src/libtommath/bn_mp_reduce_is_2k_l.c",
        "src/StormLib/src/libtommath/bn_mp_mul_2d.c",
        "src/StormLib/src/libtommath/bn_mp_fread.c",
        "src/StormLib/src/libtommath/bn_mp_init_set.c",
        "src/StormLib/src/libtommath/bn_mp_add_d.c",
        "src/StormLib/src/libtommath/bn_mp_zero.c",
        "src/StormLib/src/libtommath/bn_s_mp_add.c",
        "src/StormLib/src/libtommath/bn_mp_radix_size.c",
        "src/StormLib/src/libtommath/bn_mp_init_set_int.c",
        "src/StormLib/src/libtommath/bn_mp_n_root.c",
        "src/StormLib/src/libtommath/bn_mp_lshd.c",
        "src/StormLib/src/libtommath/bn_mp_reduce_is_2k.c",
        "src/StormLib/src/pklib/implode.c",
        "src/StormLib/src/pklib/crc32.c",
        "src/StormLib/src/pklib/explode.c",
        "src/StormLib/src/zlib/crc32.c",
        "src/StormLib/src/zlib/trees.c",
        "src/StormLib/src/zlib/compress.c",
        "src/StormLib/src/zlib/adler32.c",
        "src/StormLib/src/zlib/inftrees.c",
        "src/StormLib/src/zlib/inffast.c",
        "src/StormLib/src/zlib/deflate.c",
        "src/StormLib/src/zlib/inflate.c",
        "src/StormLib/src/zlib/zutil.c",
        "src/StormLib/src/lzma/C/LzFind.c",
        "src/StormLib/src/lzma/C/LzmaEnc.c",
        "src/StormLib/src/lzma/C/LzmaDec.c",
        "src/StormLib/src/jenkins/lookup3.c"
      ],
      'include_dirs': [
        'src/'
        'StormLib/src/',
          "<!(node -e \"require('nan')\")"
      ],
      'conditions': [
        [ 'OS=="mac"',
            {
                'sources!': [
                    "src/StormLib/src/lzma/C/LzFind.c",
                    "src/StormLib/src/lzma/C/LzmaEnc.c",
                    "src/StormLib/src/lzma/C/LzmaDec.c",
                ],
                'cflags': [
                    '-Wall',
                    '-D__SYS_BZLIB',
                    '-D__SYS_ZLIB',
                    '-D_7ZIP_ST',
                    '-arch x86_64',
                    '-shared'
                ],
                'link_settings': {
                    'libraries': [
                        '-lbz2',
                        '-lz',
                        '-framework Carbon',
                    ]
                },
            },
         'OS=="linux"',
            {
                'cflags': [
                    '-Wall',
                    '-fPIC',
                    '-D__SYS_BZLIB',
                    '-D__SYS_ZLIB',
                    '-D_7ZIP_ST',
                ],
                'link_settings': {
                    'libraries': [
                        '-lbz2',
                        '-lz',
                    ]
                },
            }
        ]
      ]
    }
  ]
}
