appletv.mk 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. ifeq ($(_THEOS_TARGET_LOADED),)
  2. _THEOS_TARGET_LOADED := 1
  3. THEOS_TARGET_NAME := appletv
  4. _THEOS_TARGET_CC := clang
  5. _THEOS_TARGET_CXX := clang++
  6. # A version specified as a target argument overrides all previous definitions.
  7. _SDKVERSION := $(or $(__THEOS_TARGET_ARG_$(word 1,$(_THEOS_TARGET_ARG_ORDER))),$(SDKVERSION_$(THEOS_CURRENT_ARCH)),$(SDKVERSION))
  8. _THEOS_TARGET_SDK_VERSION := $(or $(_SDKVERSION),latest)
  9. _THEOS_TARGET_INCLUDE_SDK_VERSION := $(or $(INCLUDE_SDKVERSION),$(INCLUDE_SDKVERSION_$(THEOS_CURRENT_ARCH)),latest)
  10. _SDK_DIR := $(THEOS_PLATFORM_SDK_ROOT)/Platforms/AppleTVOS.platform/Developer/SDKs
  11. _IOS_SDKS := $(sort $(patsubst $(_SDK_DIR)/AppleTVOS%.sdk,%,$(wildcard $(_SDK_DIR)/AppleTVOS*.sdk)))
  12. ifeq ($(words $(_IOS_SDKS)),0)
  13. before-all::
  14. @$(PRINT_FORMAT_ERROR) "You do not have an SDK in $(_SDK_DIR)." >&2; exit 1
  15. endif
  16. _LATEST_SDK := $(lastword $(_IOS_SDKS))
  17. ifeq ($(_THEOS_TARGET_SDK_VERSION),latest)
  18. override _THEOS_TARGET_SDK_VERSION := $(_LATEST_SDK)
  19. endif
  20. ifeq ($(_THEOS_TARGET_INCLUDE_SDK_VERSION),latest)
  21. override _THEOS_TARGET_INCLUDE_SDK_VERSION := $(_LATEST_SDK)
  22. endif
  23. _THEOS_TARGET_DEFAULT_APPLETVOS_DEPLOYMENT_VERSION := 9.0
  24. _THEOS_TARGET_APPLETVOS_DEPLOYMENT_VERSION := 9.0
  25. ifeq ($(_THEOS_TARGET_APPLETVOS_DEPLOYMENT_VERSION),latest)
  26. override _THEOS_TARGET_APPLETVOS_DEPLOYMENT_VERSION := $(_LATEST_SDK)
  27. endif
  28. ifeq ($(SYSROOT),)
  29. SYSROOT ?= $(_SDK_DIR)/AppleTVOS$(_THEOS_TARGET_INCLUDE_SDK_VERSION).sdk
  30. ISYSROOT ?= $(_SDK_DIR)/AppleTVOS$(_THEOS_TARGET_INCLUDE_SDK_VERSION).sdk
  31. else
  32. ISYSROOT ?= $(SYSROOT)
  33. endif
  34. TARGET_STRIP_FLAGS ?= -x
  35. TARGET_CODESIGN ?= ldid2
  36. TARGET_CODESIGN_FLAGS ?= -S
  37. TARGET_PRIVATE_FRAMEWORK_PATH = $(SYSROOT)/System/Library/PrivateFrameworks
  38. TARGET_PRIVATE_FRAMEWORK_INCLUDE_PATH = $(ISYSROOT)/System/Library/PrivateFrameworks
  39. include $(THEOS_MAKE_PATH)/targets/_common/darwin.mk
  40. include $(THEOS_MAKE_PATH)/targets/_common/darwin_flat_bundle.mk
  41. TARGET_CC ?= xcrun -sdk appletvos $(_THEOS_TARGET_CC)
  42. TARGET_CXX ?= xcrun -sdk appletvos $(_THEOS_TARGET_CXX)
  43. TARGET_SWIFT = xcrun -sdk appletvos swift
  44. TARGET_LD ?= xcrun -sdk appletvos $(_THEOS_TARGET_CXX)
  45. TARGET_STRIP ?= xcrun -sdk appletvos strip
  46. TARGET_CODESIGN_ALLOCATE ?= "$(shell xcrun -sdk appletvos -find codesign_allocate)"
  47. TARGET_IBTOOL ?= xcrun -sdk appletvos ibtool
  48. ARCHS ?= arm64
  49. NEUTRAL_ARCH = arm64
  50. MODULESFLAGS := -fmodules -fcxx-modules -fmodule-name=$(THEOS_CURRENT_INSTANCE) -fbuild-session-file=$(_THEOS_BUILD_SESSION_FILE) -fmodules-prune-after=345600 -fmodules-prune-interval=86400 -fmodules-validate-once-per-build-session
  51. IBMODULESFLAGS := --module $(THEOS_CURRENT_INSTANCE)
  52. VERSIONFLAGS := -mtvos-version-min=$(_THEOS_TARGET_APPLETVOS_DEPLOYMENT_VERSION)
  53. _THEOS_TARGET_CFLAGS += -isysroot "$(ISYSROOT)" $(SDKFLAGS) $(VERSIONFLAGS) $(MODULESFLAGS)
  54. _THEOS_TARGET_LDFLAGS += -isysroot "$(SYSROOT)" $(SDKFLAGS) $(VERSIONFLAGS) $(LEGACYFLAGS) -multiply_defined suppress
  55. _THEOS_TARGET_SWIFTFLAGS := -sdk "$(ISYSROOT)" $(SDKFLAGS)
  56. _THEOS_TARGET_SWIFT_TARGET := apple-tvos$(_THEOS_TARGET_SDK_VERSION)
  57. _THEOS_TARGET_SWIFT_LDPATH := $(THEOS_PLATFORM_SDK_ROOT)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/appletvos
  58. _THEOS_TARGET_SWIFT_OBJPATH := $(THEOS_PLATFORM_SDK_ROOT)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift_static/appletvos
  59. _THEOS_TARGET_SWIFT_VERSION = $(shell $(TARGET_SWIFT) --version | head -1 | cut -d' ' -f4)
  60. _THEOS_TARGET_IBFLAGS = --auto-activate-custom-fonts --minimum-deployment-target $(_THEOS_TARGET_SDK_VERSION) $(IBMODULESFLAGS)
  61. _THEOS_TARGET_DEFAULT_PACKAGE_FORMAT := deb
  62. TARGET_INSTALL_REMOTE := $(_THEOS_TRUE)
  63. endif