require "json"

package = JSON.parse(File.read(File.join(__dir__, "package.json")))

# package = JSON.parse(File.read('package.json'))
connectConfig = JSON.parse(File.read('../../ConnectConfig.json'))
repository = package["repository"]["url"]
useRelease = connectConfig["Connect"]["useRelease"]
dependencyName = useRelease ? 'AcousticConnect' : 'AcousticConnectDebug'
iOSVersion = connectConfig["Connect"]["iOSVersion"]
dependencyVersion = iOSVersion.to_s.empty? ? "" : ", '#{iOSVersion}'"

puts "*********react-native-acoustic-connect-beta.podspec*********"
puts "connectConfig:"
puts JSON.pretty_generate(connectConfig)
puts "repository:#{repository}"
puts "useRelease:#{useRelease}"
puts "dependencyName:#{dependencyName}"
puts "dependencyVersion:#{dependencyVersion}"
puts "connectDependency:#{dependencyName}#{dependencyVersion}"
puts "***************************************************************"

Pod::Spec.new do |s|
  s.name         = "AcousticConnectRN"
  # s.name             = package["name"]
  s.version      = package["version"]
  s.summary      = package["description"]
  s.homepage     = package["homepage"]
  s.license      = package["license"]
  s.authors      = package["author"]

  s.platforms    = { :ios => min_ios_version_supported, :visionos => 1.0 }
  s.source       = { :git => "https://github.com/ohernandezIBM/react-native-acoustic-connect-beta.git", :tag => "#{s.version}" }

  s.source_files = [
    # Implementation (Swift)
    "ios/**/*.{swift}",
    # Autolinking/Registration (Objective-C++)
    "ios/**/*.{m,mm}",
    # Build Config (Ruby)
    "ios/ConnectConfig/**/*.{rb}",
    # Implementation (C++ objects)
    "cpp/**/*.{hpp,cpp}",
  ]

  s.pod_target_xcconfig = {
    # C++ compiler flags, mainly for folly.
    "GCC_PREPROCESSOR_DEFINITIONS" => "$(inherited) FOLLY_NO_CONFIG FOLLY_CFG_NO_COROUTINES"
  }

  s.resource_bundle = {
    'AcousticConnectRNConfig' => ['ios/AcousticConnectRNConfig.json'],
  }
  s.resource = 'ios/AcousticConnectRNConfig.json'
  s.script_phase = {
    :name => 'Build Config',
    :script => %("${PODS_TARGET_SRCROOT}/ios/ConnectConfig/Build_Config.rb" "${PODS_ROOT}" "ConnectConfig.json" "${PODS_TARGET_SRCROOT}"), 
    :execution_position => :before_compile,
  }

  load 'nitrogen/generated/ios/AcousticConnectRN+autolinking.rb'
  add_nitrogen_files(s)

  s.dependency 'React-jsi'
  s.dependency 'React-callinvoker'
  s.dependency "#{dependencyName}#{dependencyVersion}"
  install_modules_dependencies(s)
end
