# Copyright (c) 2014-present, Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree. An additional grant
# of patent rights can be found in the PATENTS file in the same directory.

include_defs("//YOGA_DEFS")

COMPILER_FLAGS = BASE_COMPILER_FLAGS + ["-std=c++11"]

csharp_library(
    name = "yogalibnet46",
    srcs = glob(["**/*.cs"]),
    dll_name = "Facebook.Yoga.dll",
    framework_ver = "net46",
)

csharp_library(
    name = "yogalibnet45",
    srcs = glob(["**/*.cs"]),
    dll_name = "Facebook.Yoga.dll",
    framework_ver = "net45",
)

cxx_library(
    name = "yoganet",
    srcs = glob(["Yoga/YGInterop.cpp"]),
    compiler_flags = COMPILER_FLAGS,
    link_style = "static",
    link_whole = True,
    soname = "libyoga.$(ext)",
    visibility = ["PUBLIC"],
    deps = [yoga_dep(":yoga")],
)

if isdir('/Applications/Xcode.app'):
  yoganet_ios_srcs = []
  for arch in [
    'iphonesimulator-x86_64', 'iphonesimulator-i386', 'iphoneos-arm64', 'iphoneos-armv7'
  ]:
    name = 'yoganet-' + arch
    yoganet_ios_srcs.append(':' + name)
    genrule(
      name = name,
      srcs = [
        yoga_dep(':yoga#%s,static' % arch),
        yoga_dep('YogaKit:YogaKit#%s,static' % arch),
        yoga_dep('csharp:yoganet#%s,static' % arch),
      ],
      out = 'libyoga-%s.a' % arch,
      cmd = 'libtool -static -o $OUT $SRCS',
      visibility = [yoga_dep('csharp:yoganet-ios')],
    )

  genrule(
    name = 'yoganet-ios',
    srcs = yoganet_ios_srcs,
    out = 'libyoga.a',
    cmd = 'lipo $SRCS -create -output $OUT',
    visibility = ['PUBLIC'],
  )

  yoganet_macosx_target = 'csharp:yoganet#macosx-%s,dynamic'
  genrule(
    name = 'yoganet-macosx',
    srcs = [
      yoga_dep(yoganet_macosx_target % 'x86_64'),
      yoga_dep(yoganet_macosx_target % 'i386'),
    ],
    out = 'libyoga.dylib',
    cmd = 'lipo $SRCS -create -output $OUT',
    visibility = ['PUBLIC'],
  )
