{
  "targets": [
    {
      "target_name": "odin",
      "sources": [
        "cppsrc/binding.cpp",
        "cppsrc/odinbindings.cpp",
        "cppsrc/odinclient.cpp",
        "cppsrc/odinroom.cpp",
        "cppsrc/odinmedia.cpp",
        "cppsrc/odincipher.cpp",
        "cppsrc/utilities.cpp"
      ],
      "include_dirs": [
        "<!@(node -p \"require('node-addon-api').include\")",
        "<(module_root_dir)/libs/include"
      ],
      "dependencies": [
        "<!(node -p \"require('node-addon-api').gyp\")"
      ],
      "conditions": [
        ["OS=='linux'", {
          "libraries": [
            "-L<(module_root_dir)/libs/bin/linux/<(target_arch)",
            "-lodin",
            "-lodin_crypto"
          ],
          "ldflags": [
            "-Wl,-rpath,'$$ORIGIN'",
            "-static-libstdc++",
            "-static-libgcc"
          ]
        }],
        ["OS=='mac'", {
          "cflags+": [
            "-fvisibility=hidden"
          ],
          "xcode_settings": {
            "GCC_SYMBOLS_PRIVATE_EXTERN": "YES",
            "OTHER_CFLAGS": [
              "-arch x86_64",
              "-arch arm64"
            ],
            "OTHER_LDFLAGS": [
              "-Wl,-rpath,@loader_path/",
              "-L<(module_root_dir)/libs/bin/macos/universal",
              "-lodin",
              "-lodin_crypto",
              "-arch x86_64",
              "-arch arm64"
            ]
          }
        }],
        ["OS=='win'", {
          "msvs_settings": {
            "VCCLCompilerTool": {
              "AdditionalOptions": [ "/MD" ]
            }
          },
          "libraries": [
            "<(module_root_dir)/libs/bin/windows/<(target_arch)/odin.lib",
            "<(module_root_dir)/libs/bin/windows/<(target_arch)/odin_crypto.lib",
            "-lws2_32",
            "-lbcrypt",
            "-lucrt",
            "-lvcruntime",
            "-lwinmm",
            "-lntdll"
          ]
        }]
      ],
      "defines": [ "NAPI_CPP_EXCEPTIONS" ],
      "cflags!": [ "-fno-exceptions" ],
      "cflags_cc!": [ "-fno-exceptions" ],
      "cflags_cc": [ "-fexceptions" ],
      "xcode_settings": {
        "GCC_ENABLE_CPP_EXCEPTIONS": "YES",
        "CLANG_CXX_LIBRARY": "libc++",
        "MACOSX_DEPLOYMENT_TARGET": "10.12",
      },
    }
  ]
}
