NetDesk 1.5.0 — source release
This commit is contained in:
commit
40318aafdd
227 files changed
+80798
No files matched your search
@@ -0,0 +1,60 @@
|
||||
# NetDesk by Akronlogic — iOS Podfile TEMPLATE.
|
||||
#
|
||||
# packaging/build-ios.sh installs this as ui/ios/Podfile when `flutter create`
|
||||
# has not already produced one. It is the stock Flutter iOS Podfile with two
|
||||
# NetDesk changes: the platform min is uncommented (13.0, to match
|
||||
# NetDeskCore.xcframework) and the netdesk_core pod is linked into Runner.
|
||||
#
|
||||
# If a Podfile already exists, build-ios.sh leaves it in place and only injects
|
||||
# the `pod 'netdesk_core'` line (and uncomments the platform) rather than
|
||||
# overwriting it.
|
||||
|
||||
platform :ios, '13.0'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
||||
project 'Runner', {
|
||||
'Debug' => :debug,
|
||||
'Profile' => :release,
|
||||
'Release' => :release,
|
||||
}
|
||||
|
||||
def flutter_root
|
||||
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
|
||||
unless File.exist?(generated_xcode_build_settings_path)
|
||||
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
|
||||
end
|
||||
|
||||
File.foreach(generated_xcode_build_settings_path) do |line|
|
||||
matches = line.match(/FLUTTER_ROOT\=(.*)/)
|
||||
return matches[1].strip if matches
|
||||
end
|
||||
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
|
||||
end
|
||||
|
||||
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
|
||||
|
||||
flutter_ios_podfile_setup
|
||||
|
||||
target 'Runner' do
|
||||
use_frameworks!
|
||||
use_modular_headers!
|
||||
|
||||
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
|
||||
|
||||
# NetDesk Rust core — vendored static xcframework assembled by
|
||||
# packaging/build-ios.sh. Provides VideoToolbox H.264 decode, E2E crypto,
|
||||
# signaling and transport; the Flutter UI binds to it in Phase 3.
|
||||
pod 'netdesk_core', :path => '.'
|
||||
|
||||
target 'RunnerTests' do
|
||||
inherit! :search_paths
|
||||
end
|
||||
end
|
||||
|
||||
post_install do |installer|
|
||||
installer.pods_project.targets.each do |target|
|
||||
flutter_additional_ios_build_settings(target)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,65 @@
|
||||
#
|
||||
# NetDesk by Akronlogic — CocoaPods spec that links the compiled Rust core
|
||||
# (NetDeskCore.xcframework) into the Flutter iOS Runner.
|
||||
#
|
||||
# This file is a TEMPLATE kept under version control in packaging/ios/.
|
||||
# packaging/build-ios.sh copies it to ui/ios/netdesk_core.podspec next to the
|
||||
# freshly-assembled NetDeskCore.xcframework, then adds
|
||||
# pod 'netdesk_core', :path => '.'
|
||||
# to ui/ios/Podfile so `flutter build ipa` links it automatically.
|
||||
#
|
||||
# The xcframework is a *static* library (libnetdesk_core.a, one slice per
|
||||
# platform: ios-arm64 device + ios-arm64-simulator). CocoaPods auto-selects the
|
||||
# right slice per build, so there are no hardcoded slice paths here.
|
||||
#
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'netdesk_core'
|
||||
s.version = '0.1.0'
|
||||
s.summary = 'NetDesk native Rust core (static) for iOS — Akronlogic.'
|
||||
s.description = <<-DESC
|
||||
The compiled NetDesk engine: signaling, end-to-end crypto, the media
|
||||
transport and VideoToolbox H.264 hardware decode (core/src/decode_vt.rs).
|
||||
Vendored as a static xcframework; the Flutter UI binds to it over dart:ffi /
|
||||
flutter_rust_bridge in Phase 3.
|
||||
DESC
|
||||
s.homepage = 'https://akronlogic.com'
|
||||
s.license = { :type => 'Proprietary', :text => 'Copyright Akronlogic. All rights reserved.' }
|
||||
s.author = { 'Akronlogic' => 'https://akronlogic.com' }
|
||||
s.platform = :ios, '13.0'
|
||||
s.source = { :path => '.' }
|
||||
|
||||
# The Rust core, assembled by packaging/build-ios.sh (xcodebuild -create-xcframework).
|
||||
s.vendored_frameworks = 'NetDeskCore.xcframework'
|
||||
|
||||
# System frameworks the VideoToolbox decode path links with
|
||||
# #[link(kind = "framework")] in core/src/decode_vt.rs. A static Rust lib
|
||||
# records these in its metadata but does NOT pull them in at the final app
|
||||
# link, so they must be named here.
|
||||
# CoreMedia — CMVideoFormatDescription / CMSampleBuffer / CMBlockBuffer
|
||||
# VideoToolbox — VTDecompressionSession*
|
||||
# CoreVideo — CVPixelBuffer*
|
||||
# CoreFoundation — CFDictionary/CFString/CFRelease (core-foundation-sys)
|
||||
s.frameworks = 'VideoToolbox', 'CoreMedia', 'CoreVideo', 'CoreFoundation'
|
||||
|
||||
# Vendored static xcframework, no public headers yet (the C ABI header is
|
||||
# generated with cbindgen when Phase 3's core/src/ffi.rs lands — see
|
||||
# docs/build-ios.md). CocoaPods links the archive normally; once the Phase-3
|
||||
# Dart bindings reference the symbols they are retained automatically.
|
||||
#
|
||||
# Before those bindings exist, nothing references the archive, so the linker
|
||||
# may drop it. That is harmless for the build. If you want to *prove* the
|
||||
# archive links end-to-end before Phase 3, force it in by uncommenting:
|
||||
#
|
||||
# s.user_target_xcconfig = {
|
||||
# 'OTHER_LDFLAGS' => '-force_load "${PODS_XCFRAMEWORKS_BUILD_DIR}/netdesk_core/libnetdesk_core.a"'
|
||||
# }
|
||||
#
|
||||
# (Do not combine -force_load with Phase-3 symbol references, or you may hit
|
||||
# duplicate-symbol errors — pick one.)
|
||||
|
||||
s.pod_target_xcconfig = {
|
||||
'DEFINES_MODULE' => 'YES',
|
||||
# Keep the Rust/FFI symbols discoverable for dart:ffi lookups.
|
||||
'STRIP_STYLE' => 'non-global',
|
||||
}
|
||||
end
|
||||
Reference in new issue
Block a user