{
  "targets": [
    {
      "target_name": "tytorch_native",
      "sources": [
        "src/native/addon.cpp",
        "src/native/tensor.cpp",
        "src/native/utils.cpp",
        "src/native/ops/add.cpp",
        "src/native/ops/add_.cpp",
        "src/native/ops/sub.cpp",
        "src/native/ops/sub_.cpp",
        "src/native/ops/mul.cpp",
        "src/native/ops/mul_.cpp",
        "src/native/ops/div.cpp",
        "src/native/ops/div_.cpp",
        "src/native/ops/matmul.cpp",
        "src/native/ops/sum.cpp",
        "src/native/ops/mean.cpp",
        "src/native/ops/cpu.cpp",
        "src/native/ops/cuda.cpp",
        "src/native/ops/mps.cpp",
        "src/native/ops/float.cpp",
        "src/native/ops/double.cpp",
        "src/native/ops/int.cpp",
        "src/native/ops/long.cpp",
        "src/native/ops/to.cpp",
        "src/native/ops/shape.cpp",
        "src/native/ops/dtype.cpp",
        "src/native/ops/device.cpp",
        "src/native/ops/to_string.cpp",
        "src/native/ops/to_array.cpp",
        "src/native/ops/reshape.cpp",
        "src/native/ops/flatten.cpp",
        "src/native/ops/unsqueeze.cpp",
        "src/native/ops/squeeze.cpp",
        "src/native/ops/transpose.cpp",
        "src/native/ops/permute.cpp",
        "src/native/ops/requires_grad.cpp",
        "src/native/ops/backward.cpp",
        "src/native/ops/grad.cpp",
        "src/native/ops/zero_grad.cpp",
        "src/native/ops/detach.cpp",
        "src/native/ops/no_grad.cpp",
        "src/native/ops/relu.cpp",
        "src/native/ops/sigmoid.cpp",
        "src/native/ops/tanh.cpp",
        "src/native/ops/softmax.cpp",
        "src/native/ops/log_softmax.cpp",
        "src/native/ops/mse_loss.cpp",
        "src/native/ops/cross_entropy.cpp",
        "src/native/ops/nll_loss.cpp",
        "src/native/ops/binary_cross_entropy.cpp"
      ],
      "include_dirs": [
        "<!@(node -p \"require('node-addon-api').include\")",
        "/opt/homebrew/lib/python3.11/site-packages/torch/include",
        "/opt/homebrew/lib/python3.11/site-packages/torch/include/torch/csrc/api/include"
      ],
      "libraries": [
        "-L/opt/homebrew/lib/python3.11/site-packages/torch/lib",
        "-ltorch",
        "-ltorch_cpu",
        "-lc10"
      ],
      "cflags!": ["-fno-exceptions", "-fno-rtti"],
      "cflags_cc!": ["-fno-exceptions", "-fno-rtti"],
      "cflags_cc": ["-frtti"],
      "xcode_settings": {
        "GCC_ENABLE_CPP_EXCEPTIONS": "YES",
        "GCC_ENABLE_CPP_RTTI": "YES",
        "CLANG_CXX_LIBRARY": "libc++",
        "MACOSX_DEPLOYMENT_TARGET": "10.15",
        "OTHER_CPLUSPLUSFLAGS": [
          "-std=c++17",
          "-stdlib=libc++",
          "-frtti"
        ],
        "OTHER_LDFLAGS": [
          "-Wl,-rpath,/opt/homebrew/lib/python3.11/site-packages/torch/lib"
        ]
      },
      "conditions": [
        [
          "OS=='mac'",
          {
            "cflags+": ["-fvisibility=hidden"],
            "xcode_settings": {
              "GCC_SYMBOLS_PRIVATE_EXTERN": "YES"
            }
          }
        ]
      ]
    }
  ]
}
