pythonnative 0.40.0__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. pythonnative/__init__.py +411 -0
  2. pythonnative/_ios_log.py +92 -0
  3. pythonnative/_yoga.cp313-win_amd64.pyd +0 -0
  4. pythonnative/alerts.py +236 -0
  5. pythonnative/animated.py +1687 -0
  6. pythonnative/animation_graph.py +78 -0
  7. pythonnative/appearance.py +124 -0
  8. pythonnative/bootstrap.py +100 -0
  9. pythonnative/bridge/__init__.py +302 -0
  10. pythonnative/bridge/android.py +78 -0
  11. pythonnative/bridge/codec.py +170 -0
  12. pythonnative/bridge/commits.py +114 -0
  13. pythonnative/bridge/fake.py +243 -0
  14. pythonnative/bridge/ios.py +138 -0
  15. pythonnative/bridge/web.py +489 -0
  16. pythonnative/cli/__init__.py +7 -0
  17. pythonnative/cli/pn.py +1214 -0
  18. pythonnative/component.py +271 -0
  19. pythonnative/components/__init__.py +111 -0
  20. pythonnative/components/_base.py +166 -0
  21. pythonnative/components/controls.py +521 -0
  22. pythonnative/components/layout.py +518 -0
  23. pythonnative/components/lists.py +785 -0
  24. pythonnative/components/media.py +204 -0
  25. pythonnative/components/overlays.py +107 -0
  26. pythonnative/components/pressable.py +252 -0
  27. pythonnative/components/structural.py +167 -0
  28. pythonnative/components/text.py +291 -0
  29. pythonnative/devclient.py +824 -0
  30. pythonnative/devserver/__init__.py +34 -0
  31. pythonnative/devserver/server.py +718 -0
  32. pythonnative/devserver/static/animation_graph.js +82 -0
  33. pythonnative/devserver/static/bridge.js +147 -0
  34. pythonnative/devserver/static/colors.js +70 -0
  35. pythonnative/devserver/static/host.js +552 -0
  36. pythonnative/devserver/static/index.html +60 -0
  37. pythonnative/devserver/static/layout.js +85 -0
  38. pythonnative/devserver/static/preview.css +415 -0
  39. pythonnative/devserver/static/renderer.js +1994 -0
  40. pythonnative/devserver/static/shell.js +345 -0
  41. pythonnative/devserver/static/yoga/LICENSE +21 -0
  42. pythonnative/devserver/static/yoga/binaries/yoga-wasm-base64-esm.js +75 -0
  43. pythonnative/devserver/static/yoga/src/generated/YGEnums.d.ts +189 -0
  44. pythonnative/devserver/static/yoga/src/generated/YGEnums.js +211 -0
  45. pythonnative/devserver/static/yoga/src/generated/YGEnums.js.map +1 -0
  46. pythonnative/devserver/static/yoga/src/index.d.ts +12 -0
  47. pythonnative/devserver/static/yoga/src/index.js +16 -0
  48. pythonnative/devserver/static/yoga/src/index.js.map +1 -0
  49. pythonnative/devserver/static/yoga/src/load.d.ts +11 -0
  50. pythonnative/devserver/static/yoga/src/load.js +17 -0
  51. pythonnative/devserver/static/yoga/src/load.js.map +1 -0
  52. pythonnative/devserver/static/yoga/src/wrapAssembly.d.ts +155 -0
  53. pythonnative/devserver/static/yoga/src/wrapAssembly.js +125 -0
  54. pythonnative/devserver/static/yoga/src/wrapAssembly.js.map +1 -0
  55. pythonnative/devserver/watcher.py +267 -0
  56. pythonnative/devserver/ws.py +421 -0
  57. pythonnative/diagnostics.py +241 -0
  58. pythonnative/element.py +159 -0
  59. pythonnative/equality.py +19 -0
  60. pythonnative/events.py +231 -0
  61. pythonnative/gestures.py +1333 -0
  62. pythonnative/hooks.py +1621 -0
  63. pythonnative/hosts/__init__.py +63 -0
  64. pythonnative/hosts/base.py +596 -0
  65. pythonnative/hosts/native.py +302 -0
  66. pythonnative/hot_reload.py +585 -0
  67. pythonnative/layout.py +328 -0
  68. pythonnative/mutations.py +142 -0
  69. pythonnative/native/android/build.gradle +52 -0
  70. pythonnative/native/android/gradle.properties +3 -0
  71. pythonnative/native/android/settings.gradle +12 -0
  72. pythonnative/native/android/src/main/AndroidManifest.xml +11 -0
  73. pythonnative/native/android/src/main/cpp/CMakeLists.txt +9 -0
  74. pythonnative/native/android/src/main/cpp/yoga_jni.cpp +52 -0
  75. pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeModules.kt +5 -0
  76. pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeProps.kt +3705 -0
  77. pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +129 -0
  78. pythonnative/native/android/src/main/java/com/pythonnative/runtime/PNBridge.kt +261 -0
  79. pythonnative/native/android/src/main/java/com/pythonnative/runtime/PythonHost.kt +20 -0
  80. pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationGraph.kt +108 -0
  81. pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationSpecs.kt +141 -0
  82. pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNAnimator.kt +257 -0
  83. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/CommitState.kt +106 -0
  84. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/JsonUtil.kt +175 -0
  85. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/MainThread.kt +40 -0
  86. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNLog.kt +33 -0
  87. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNRegistry.kt +82 -0
  88. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNTransaction.kt +80 -0
  89. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/TransactionApplier.kt +117 -0
  90. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/ViewRegistry.kt +74 -0
  91. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/BuiltinComponents.kt +37 -0
  92. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ButtonManager.kt +32 -0
  93. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ComponentManager.kt +213 -0
  94. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ContainerManagers.kt +69 -0
  95. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ControlManagers.kt +186 -0
  96. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/DatePickerManager.kt +123 -0
  97. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageLoader.kt +141 -0
  98. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageManager.kt +162 -0
  99. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ModalManager.kt +134 -0
  100. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNColor.kt +201 -0
  101. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PickerManager.kt +86 -0
  102. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PortalManager.kt +55 -0
  103. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PressableManager.kt +122 -0
  104. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenStackManager.kt +110 -0
  105. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScrollViewManager.kt +214 -0
  106. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SegmentedControlManager.kt +113 -0
  107. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/StatusBarManager.kt +52 -0
  108. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TabBarManager.kt +131 -0
  109. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextInputManager.kt +250 -0
  110. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextManager.kt +233 -0
  111. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ViewStyler.kt +355 -0
  112. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/VirtualListManager.kt +159 -0
  113. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/WebViewManager.kt +149 -0
  114. pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureArbiter.kt +233 -0
  115. pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureCoordinator.kt +127 -0
  116. pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureRecognizers.kt +527 -0
  117. pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/NativeLayout.kt +145 -0
  118. pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/YogaNode.kt +29 -0
  119. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/BuiltinModules.kt +73 -0
  120. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DeviceModules.kt +316 -0
  121. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/HostModule.kt +61 -0
  122. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/MediaModules.kt +200 -0
  123. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NativeModule.kt +158 -0
  124. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NotificationsModule.kt +100 -0
  125. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PermissionsModule.kt +99 -0
  126. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/StorageModules.kt +89 -0
  127. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/SystemModules.kt +178 -0
  128. pythonnative/native/android/src/main/java/com/pythonnative/runtime/plugins/GeneratedPlugins.kt +16 -0
  129. pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNScreenFragment.kt +188 -0
  130. pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/ScreenRegistry.kt +80 -0
  131. pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNAccessibilityDelegate.kt +48 -0
  132. pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNBorderDrawable.kt +76 -0
  133. pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNEditText.kt +18 -0
  134. pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNFrameLayout.kt +49 -0
  135. pythonnative/native/android/src/test/java/com/pythonnative/runtime/AnimationSpecsTest.kt +75 -0
  136. pythonnative/native/android/src/test/java/com/pythonnative/runtime/GestureArbiterTest.kt +197 -0
  137. pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNColorTest.kt +47 -0
  138. pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNTransactionTest.kt +78 -0
  139. pythonnative/native/android/src/test/java/com/pythonnative/runtime/PromiseTest.kt +89 -0
  140. pythonnative/native/ios/Package.swift +23 -0
  141. pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimationGraph.swift +199 -0
  142. pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +312 -0
  143. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNBridge.swift +255 -0
  144. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCommit.swift +104 -0
  145. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNRegistry.swift +142 -0
  146. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNTransaction.swift +166 -0
  147. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNViewRegistry.swift +53 -0
  148. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNButtonManagers.swift +207 -0
  149. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNColor.swift +173 -0
  150. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNComponentManager.swift +183 -0
  151. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNContainerView.swift +56 -0
  152. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNControlManagers.swift +281 -0
  153. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNImageManager.swift +222 -0
  154. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNOverlayManagers.swift +243 -0
  155. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNPressableManager.swift +114 -0
  156. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScreenStackManager.swift +107 -0
  157. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScrollViewManager.swift +197 -0
  158. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTabBarManager.swift +106 -0
  159. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextInputManager.swift +297 -0
  160. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextManager.swift +230 -0
  161. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTransform.swift +82 -0
  162. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewManager.swift +86 -0
  163. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewState.swift +87 -0
  164. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewStyler.swift +340 -0
  165. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNVirtualListManager.swift +155 -0
  166. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNWebViewManager.swift +124 -0
  167. pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeModules.swift +1 -0
  168. pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeProps.swift +3775 -0
  169. pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +46 -0
  170. pythonnative/native/ios/Sources/PythonNativeKit/Gestures/PNGestureCoordinator.swift +260 -0
  171. pythonnative/native/ios/Sources/PythonNativeKit/Layout/PNLayout.swift +173 -0
  172. pythonnative/native/ios/Sources/PythonNativeKit/Modules/AlertModule.swift +92 -0
  173. pythonnative/native/ios/Sources/PythonNativeKit/Modules/HostModule.swift +80 -0
  174. pythonnative/native/ios/Sources/PythonNativeKit/Modules/LifecycleModules.swift +174 -0
  175. pythonnative/native/ios/Sources/PythonNativeKit/Modules/MediaModules.swift +177 -0
  176. pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNNativeModule.swift +168 -0
  177. pythonnative/native/ios/Sources/PythonNativeKit/Modules/PermissionModules.swift +266 -0
  178. pythonnative/native/ios/Sources/PythonNativeKit/Modules/SystemModules.swift +251 -0
  179. pythonnative/native/ios/Sources/PythonNativeKit/Plugins/PNPluginRegistration.swift +8 -0
  180. pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNScreenRegistry.swift +46 -0
  181. pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNViewController.swift +237 -0
  182. pythonnative/native/ios/Sources/PythonNativeKit/Support/PNCompat.swift +46 -0
  183. pythonnative/native/ios/Sources/PythonNativeKit/Support/PNJSON.swift +173 -0
  184. pythonnative/native/ios/Sources/PythonNativeKit/Support/PNLog.swift +47 -0
  185. pythonnative/native/ios/Sources/PythonNativeKit/Support/PNWindow.swift +51 -0
  186. pythonnative/native/ios/Tests/PythonNativeKitTests/PNAnimationGraphTests.swift +26 -0
  187. pythonnative/native/ios/Tests/PythonNativeKitTests/PNColorTests.swift +50 -0
  188. pythonnative/native/ios/Tests/PythonNativeKitTests/PNCommitTests.swift +86 -0
  189. pythonnative/native/ios/Tests/PythonNativeKitTests/PNGestureTests.swift +101 -0
  190. pythonnative/native/ios/Tests/PythonNativeKitTests/PNManagerTests.swift +126 -0
  191. pythonnative/native/ios/Tests/PythonNativeKitTests/PNModuleTests.swift +111 -0
  192. pythonnative/native/ios/Tests/PythonNativeKitTests/PNTransactionTests.swift +91 -0
  193. pythonnative/native/yoga/LICENSE +21 -0
  194. pythonnative/native/yoga/Package.swift +9 -0
  195. pythonnative/native/yoga/VENDORED.md +2 -0
  196. pythonnative/native/yoga/include/PNStyle.h +10 -0
  197. pythonnative/native/yoga/include/module.modulemap +5 -0
  198. pythonnative/native/yoga/include/yoga/YGConfig.h +158 -0
  199. pythonnative/native/yoga/include/yoga/YGEnums.h +142 -0
  200. pythonnative/native/yoga/include/yoga/YGMacros.h +99 -0
  201. pythonnative/native/yoga/include/yoga/YGNode.h +304 -0
  202. pythonnative/native/yoga/include/yoga/YGNodeLayout.h +35 -0
  203. pythonnative/native/yoga/include/yoga/YGNodeStyle.h +130 -0
  204. pythonnative/native/yoga/include/yoga/YGPixelGrid.h +29 -0
  205. pythonnative/native/yoga/include/yoga/YGValue.h +84 -0
  206. pythonnative/native/yoga/include/yoga/Yoga.h +21 -0
  207. pythonnative/native/yoga/python.cpp +16 -0
  208. pythonnative/native/yoga/style.cpp +272 -0
  209. pythonnative/native/yoga/yoga/CMakeLists.txt +41 -0
  210. pythonnative/native/yoga/yoga/YGConfig.cpp +92 -0
  211. pythonnative/native/yoga/yoga/YGConfig.h +158 -0
  212. pythonnative/native/yoga/yoga/YGEnums.cpp +262 -0
  213. pythonnative/native/yoga/yoga/YGEnums.h +142 -0
  214. pythonnative/native/yoga/yoga/YGMacros.h +99 -0
  215. pythonnative/native/yoga/yoga/YGNode.cpp +366 -0
  216. pythonnative/native/yoga/yoga/YGNode.h +304 -0
  217. pythonnative/native/yoga/yoga/YGNodeLayout.cpp +92 -0
  218. pythonnative/native/yoga/yoga/YGNodeLayout.h +35 -0
  219. pythonnative/native/yoga/yoga/YGNodeStyle.cpp +405 -0
  220. pythonnative/native/yoga/yoga/YGNodeStyle.h +130 -0
  221. pythonnative/native/yoga/yoga/YGPixelGrid.cpp +22 -0
  222. pythonnative/native/yoga/yoga/YGPixelGrid.h +29 -0
  223. pythonnative/native/yoga/yoga/YGValue.cpp +20 -0
  224. pythonnative/native/yoga/yoga/YGValue.h +84 -0
  225. pythonnative/native/yoga/yoga/Yoga.h +21 -0
  226. pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.cpp +563 -0
  227. pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.h +41 -0
  228. pythonnative/native/yoga/yoga/algorithm/Align.h +72 -0
  229. pythonnative/native/yoga/yoga/algorithm/Baseline.cpp +78 -0
  230. pythonnative/native/yoga/yoga/algorithm/Baseline.h +21 -0
  231. pythonnative/native/yoga/yoga/algorithm/BoundAxis.h +79 -0
  232. pythonnative/native/yoga/yoga/algorithm/Cache.cpp +121 -0
  233. pythonnative/native/yoga/yoga/algorithm/Cache.h +30 -0
  234. pythonnative/native/yoga/yoga/algorithm/CalculateLayout.cpp +2428 -0
  235. pythonnative/native/yoga/yoga/algorithm/CalculateLayout.h +38 -0
  236. pythonnative/native/yoga/yoga/algorithm/FlexDirection.h +120 -0
  237. pythonnative/native/yoga/yoga/algorithm/FlexLine.cpp +124 -0
  238. pythonnative/native/yoga/yoga/algorithm/FlexLine.h +75 -0
  239. pythonnative/native/yoga/yoga/algorithm/PixelGrid.cpp +132 -0
  240. pythonnative/native/yoga/yoga/algorithm/PixelGrid.h +29 -0
  241. pythonnative/native/yoga/yoga/algorithm/SizingMode.h +73 -0
  242. pythonnative/native/yoga/yoga/algorithm/TrailingPosition.h +44 -0
  243. pythonnative/native/yoga/yoga/config/Config.cpp +135 -0
  244. pythonnative/native/yoga/yoga/config/Config.h +92 -0
  245. pythonnative/native/yoga/yoga/debug/AssertFatal.cpp +53 -0
  246. pythonnative/native/yoga/yoga/debug/AssertFatal.h +29 -0
  247. pythonnative/native/yoga/yoga/debug/Log.cpp +107 -0
  248. pythonnative/native/yoga/yoga/debug/Log.h +34 -0
  249. pythonnative/native/yoga/yoga/enums/Align.h +47 -0
  250. pythonnative/native/yoga/yoga/enums/BoxSizing.h +40 -0
  251. pythonnative/native/yoga/yoga/enums/Dimension.h +40 -0
  252. pythonnative/native/yoga/yoga/enums/Direction.h +41 -0
  253. pythonnative/native/yoga/yoga/enums/Display.h +41 -0
  254. pythonnative/native/yoga/yoga/enums/Edge.h +47 -0
  255. pythonnative/native/yoga/yoga/enums/Errata.h +41 -0
  256. pythonnative/native/yoga/yoga/enums/ExperimentalFeature.h +39 -0
  257. pythonnative/native/yoga/yoga/enums/FlexDirection.h +42 -0
  258. pythonnative/native/yoga/yoga/enums/Gutter.h +41 -0
  259. pythonnative/native/yoga/yoga/enums/Justify.h +44 -0
  260. pythonnative/native/yoga/yoga/enums/LogLevel.h +44 -0
  261. pythonnative/native/yoga/yoga/enums/MeasureMode.h +41 -0
  262. pythonnative/native/yoga/yoga/enums/NodeType.h +40 -0
  263. pythonnative/native/yoga/yoga/enums/Overflow.h +41 -0
  264. pythonnative/native/yoga/yoga/enums/PhysicalEdge.h +21 -0
  265. pythonnative/native/yoga/yoga/enums/PositionType.h +41 -0
  266. pythonnative/native/yoga/yoga/enums/Unit.h +42 -0
  267. pythonnative/native/yoga/yoga/enums/Wrap.h +41 -0
  268. pythonnative/native/yoga/yoga/enums/YogaEnums.h +85 -0
  269. pythonnative/native/yoga/yoga/event/event.cpp +87 -0
  270. pythonnative/native/yoga/yoga/event/event.h +130 -0
  271. pythonnative/native/yoga/yoga/module.modulemap +21 -0
  272. pythonnative/native/yoga/yoga/node/CachedMeasurement.h +53 -0
  273. pythonnative/native/yoga/yoga/node/LayoutResults.cpp +48 -0
  274. pythonnative/native/yoga/yoga/node/LayoutResults.h +122 -0
  275. pythonnative/native/yoga/yoga/node/LayoutableChildren.h +148 -0
  276. pythonnative/native/yoga/yoga/node/Node.cpp +443 -0
  277. pythonnative/native/yoga/yoga/node/Node.h +337 -0
  278. pythonnative/native/yoga/yoga/numeric/Comparison.h +81 -0
  279. pythonnative/native/yoga/yoga/numeric/FloatOptional.h +93 -0
  280. pythonnative/native/yoga/yoga/style/SmallValueBuffer.h +133 -0
  281. pythonnative/native/yoga/yoga/style/Style.h +757 -0
  282. pythonnative/native/yoga/yoga/style/StyleLength.h +107 -0
  283. pythonnative/native/yoga/yoga/style/StyleValueHandle.h +98 -0
  284. pythonnative/native/yoga/yoga/style/StyleValuePool.h +127 -0
  285. pythonnative/native_modules/__init__.py +124 -0
  286. pythonnative/native_modules/app_state.py +99 -0
  287. pythonnative/native_modules/battery.py +75 -0
  288. pythonnative/native_modules/biometrics.py +42 -0
  289. pythonnative/native_modules/camera.py +65 -0
  290. pythonnative/native_modules/clipboard.py +46 -0
  291. pythonnative/native_modules/fallback.py +324 -0
  292. pythonnative/native_modules/file_system.py +145 -0
  293. pythonnative/native_modules/haptics.py +75 -0
  294. pythonnative/native_modules/linking.py +123 -0
  295. pythonnative/native_modules/location.py +75 -0
  296. pythonnative/native_modules/net_info.py +112 -0
  297. pythonnative/native_modules/notifications.py +129 -0
  298. pythonnative/native_modules/permissions.py +108 -0
  299. pythonnative/native_modules/registry.py +526 -0
  300. pythonnative/native_modules/secure_store.py +52 -0
  301. pythonnative/native_modules/share.py +51 -0
  302. pythonnative/native_views/__init__.py +375 -0
  303. pythonnative/native_views/base.py +316 -0
  304. pythonnative/native_views/bridge_backend.py +277 -0
  305. pythonnative/navigation/__init__.py +103 -0
  306. pythonnative/navigation/container.py +154 -0
  307. pythonnative/navigation/handle.py +540 -0
  308. pythonnative/navigation/hooks.py +133 -0
  309. pythonnative/navigation/host.py +58 -0
  310. pythonnative/navigation/linking.py +200 -0
  311. pythonnative/navigation/navigators.py +659 -0
  312. pythonnative/navigation/screen.py +149 -0
  313. pythonnative/navigation/state.py +269 -0
  314. pythonnative/net.py +248 -0
  315. pythonnative/platform.py +166 -0
  316. pythonnative/platform_metrics.py +252 -0
  317. pythonnative/preview.py +287 -0
  318. pythonnative/profiling.py +101 -0
  319. pythonnative/project/__init__.py +68 -0
  320. pythonnative/project/android.py +557 -0
  321. pythonnative/project/builder.py +817 -0
  322. pythonnative/project/config.py +773 -0
  323. pythonnative/project/deps.py +719 -0
  324. pythonnative/project/devices.py +304 -0
  325. pythonnative/project/doctor.py +283 -0
  326. pythonnative/project/fingerprint.py +171 -0
  327. pythonnative/project/icons.py +247 -0
  328. pythonnative/project/ios.py +325 -0
  329. pythonnative/project/lockfile.py +100 -0
  330. pythonnative/project/permissions.py +361 -0
  331. pythonnative/project/plugins.py +519 -0
  332. pythonnative/project/runtime_assets.py +183 -0
  333. pythonnative/py.typed +0 -0
  334. pythonnative/query.py +153 -0
  335. pythonnative/reconciler/__init__.py +29 -0
  336. pythonnative/reconciler/boundaries.py +375 -0
  337. pythonnative/reconciler/children.py +88 -0
  338. pythonnative/reconciler/core.py +1165 -0
  339. pythonnative/reconciler/layout_pass.py +393 -0
  340. pythonnative/reconciler/vnode.py +266 -0
  341. pythonnative/refresh.py +55 -0
  342. pythonnative/runtime.py +306 -0
  343. pythonnative/scheduler.py +159 -0
  344. pythonnative/sdk/__init__.py +153 -0
  345. pythonnative/sdk/_components.py +427 -0
  346. pythonnative/sdk/builtins.py +91 -0
  347. pythonnative/sdk/codegen.py +149 -0
  348. pythonnative/sdk/module_codegen.py +184 -0
  349. pythonnative/sdk/schema.py +224 -0
  350. pythonnative/sdk/templates/contracts.kt +46 -0
  351. pythonnative/sdk/templates/contracts.swift +46 -0
  352. pythonnative/storage.py +184 -0
  353. pythonnative/style.py +841 -0
  354. pythonnative/suspense.py +183 -0
  355. pythonnative/templates/android_template/app/build.gradle +75 -0
  356. pythonnative/templates/android_template/app/proguard-rules.pro +21 -0
  357. pythonnative/templates/android_template/app/src/androidTest/java/com/pythonnative/android_template/ExampleInstrumentedTest.kt +24 -0
  358. pythonnative/templates/android_template/app/src/debug/AndroidManifest.xml +7 -0
  359. pythonnative/templates/android_template/app/src/main/AndroidManifest.xml +32 -0
  360. pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt +130 -0
  361. pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/ScreenFragment.kt +13 -0
  362. pythonnative/templates/android_template/app/src/main/res/drawable/ic_launcher_background.xml +170 -0
  363. pythonnative/templates/android_template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +30 -0
  364. pythonnative/templates/android_template/app/src/main/res/layout/activity_main.xml +10 -0
  365. pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +6 -0
  366. pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +6 -0
  367. pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
  368. pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
  369. pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
  370. pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
  371. pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
  372. pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
  373. pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
  374. pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
  375. pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
  376. pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
  377. pythonnative/templates/android_template/app/src/main/res/navigation/nav_graph.xml +22 -0
  378. pythonnative/templates/android_template/app/src/main/res/values/colors.xml +5 -0
  379. pythonnative/templates/android_template/app/src/main/res/values/strings.xml +5 -0
  380. pythonnative/templates/android_template/app/src/main/res/values/themes.xml +9 -0
  381. pythonnative/templates/android_template/app/src/main/res/values-night/themes.xml +7 -0
  382. pythonnative/templates/android_template/app/src/main/res/xml/backup_rules.xml +13 -0
  383. pythonnative/templates/android_template/app/src/main/res/xml/data_extraction_rules.xml +19 -0
  384. pythonnative/templates/android_template/app/src/test/java/com/pythonnative/android_template/ExampleUnitTest.kt +17 -0
  385. pythonnative/templates/android_template/build.gradle +10 -0
  386. pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.jar +0 -0
  387. pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.properties +6 -0
  388. pythonnative/templates/android_template/gradle.properties +23 -0
  389. pythonnative/templates/android_template/gradlew +185 -0
  390. pythonnative/templates/android_template/gradlew.bat +89 -0
  391. pythonnative/templates/android_template/settings.gradle +17 -0
  392. pythonnative/templates/ios_template/ios_template/AppDelegate.swift +51 -0
  393. pythonnative/templates/ios_template/ios_template/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  394. pythonnative/templates/ios_template/ios_template/Assets.xcassets/AppIcon.appiconset/Contents.json +13 -0
  395. pythonnative/templates/ios_template/ios_template/Assets.xcassets/Contents.json +6 -0
  396. pythonnative/templates/ios_template/ios_template/Base.lproj/LaunchScreen.storyboard +25 -0
  397. pythonnative/templates/ios_template/ios_template/BridgingHeader.h +14 -0
  398. pythonnative/templates/ios_template/ios_template/Info.plist +28 -0
  399. pythonnative/templates/ios_template/ios_template/PythonRuntime.swift +390 -0
  400. pythonnative/templates/ios_template/ios_template/SceneDelegate.swift +61 -0
  401. pythonnative/templates/ios_template/ios_template/ViewController.swift +23 -0
  402. pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj +745 -0
  403. pythonnative/templates/ios_template/ios_template.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  404. pythonnative/templates/ios_template/ios_templateTests/ios_templateTests.swift +36 -0
  405. pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITests.swift +41 -0
  406. pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITestsLaunchTests.swift +32 -0
  407. pythonnative/testing/__init__.py +53 -0
  408. pythonnative/testing/backend.py +276 -0
  409. pythonnative/testing/harness.py +369 -0
  410. pythonnative/utils.py +145 -0
  411. pythonnative-0.40.0.dist-info/DELVEWHEEL +2 -0
  412. pythonnative-0.40.0.dist-info/METADATA +150 -0
  413. pythonnative-0.40.0.dist-info/RECORD +418 -0
  414. pythonnative-0.40.0.dist-info/WHEEL +5 -0
  415. pythonnative-0.40.0.dist-info/entry_points.txt +2 -0
  416. pythonnative-0.40.0.dist-info/licenses/LICENSE +21 -0
  417. pythonnative-0.40.0.dist-info/top_level.txt +1 -0
  418. pythonnative.libs/msvcp140-a4c2229bdc2a2a630acdc095b4d86008.dll +0 -0
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <stdbool.h>
11
+
12
+ #include <yoga/YGConfig.h>
13
+ #include <yoga/YGEnums.h>
14
+ #include <yoga/YGMacros.h>
15
+
16
+ YG_EXTERN_C_BEGIN
17
+
18
+ YG_EXPORT float YGNodeLayoutGetLeft(YGNodeConstRef node);
19
+ YG_EXPORT float YGNodeLayoutGetTop(YGNodeConstRef node);
20
+ YG_EXPORT float YGNodeLayoutGetRight(YGNodeConstRef node);
21
+ YG_EXPORT float YGNodeLayoutGetBottom(YGNodeConstRef node);
22
+ YG_EXPORT float YGNodeLayoutGetWidth(YGNodeConstRef node);
23
+ YG_EXPORT float YGNodeLayoutGetHeight(YGNodeConstRef node);
24
+ YG_EXPORT YGDirection YGNodeLayoutGetDirection(YGNodeConstRef node);
25
+ YG_EXPORT bool YGNodeLayoutGetHadOverflow(YGNodeConstRef node);
26
+
27
+ // Get the computed values for these nodes after performing layout. If they were
28
+ // set using point values then the returned value will be the same as
29
+ // YGNodeStyleGetXXX. However if they were set using a percentage value then the
30
+ // returned value is the computed value used during layout.
31
+ YG_EXPORT float YGNodeLayoutGetMargin(YGNodeConstRef node, YGEdge edge);
32
+ YG_EXPORT float YGNodeLayoutGetBorder(YGNodeConstRef node, YGEdge edge);
33
+ YG_EXPORT float YGNodeLayoutGetPadding(YGNodeConstRef node, YGEdge edge);
34
+
35
+ YG_EXTERN_C_END
@@ -0,0 +1,130 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <stddef.h>
11
+
12
+ #include <yoga/YGNode.h>
13
+ #include <yoga/YGValue.h>
14
+
15
+ YG_EXTERN_C_BEGIN
16
+
17
+ YG_EXPORT void YGNodeCopyStyle(YGNodeRef dstNode, YGNodeConstRef srcNode);
18
+
19
+ YG_EXPORT void YGNodeStyleSetDirection(YGNodeRef node, YGDirection direction);
20
+ YG_EXPORT YGDirection YGNodeStyleGetDirection(YGNodeConstRef node);
21
+
22
+ YG_EXPORT void YGNodeStyleSetFlexDirection(
23
+ YGNodeRef node,
24
+ YGFlexDirection flexDirection);
25
+ YG_EXPORT YGFlexDirection YGNodeStyleGetFlexDirection(YGNodeConstRef node);
26
+
27
+ YG_EXPORT void YGNodeStyleSetJustifyContent(
28
+ YGNodeRef node,
29
+ YGJustify justifyContent);
30
+ YG_EXPORT YGJustify YGNodeStyleGetJustifyContent(YGNodeConstRef node);
31
+
32
+ YG_EXPORT void YGNodeStyleSetAlignContent(YGNodeRef node, YGAlign alignContent);
33
+ YG_EXPORT YGAlign YGNodeStyleGetAlignContent(YGNodeConstRef node);
34
+
35
+ YG_EXPORT void YGNodeStyleSetAlignItems(YGNodeRef node, YGAlign alignItems);
36
+ YG_EXPORT YGAlign YGNodeStyleGetAlignItems(YGNodeConstRef node);
37
+
38
+ YG_EXPORT void YGNodeStyleSetAlignSelf(YGNodeRef node, YGAlign alignSelf);
39
+ YG_EXPORT YGAlign YGNodeStyleGetAlignSelf(YGNodeConstRef node);
40
+
41
+ YG_EXPORT void YGNodeStyleSetPositionType(
42
+ YGNodeRef node,
43
+ YGPositionType positionType);
44
+ YG_EXPORT YGPositionType YGNodeStyleGetPositionType(YGNodeConstRef node);
45
+
46
+ YG_EXPORT void YGNodeStyleSetFlexWrap(YGNodeRef node, YGWrap flexWrap);
47
+ YG_EXPORT YGWrap YGNodeStyleGetFlexWrap(YGNodeConstRef node);
48
+
49
+ YG_EXPORT void YGNodeStyleSetOverflow(YGNodeRef node, YGOverflow overflow);
50
+ YG_EXPORT YGOverflow YGNodeStyleGetOverflow(YGNodeConstRef node);
51
+
52
+ YG_EXPORT void YGNodeStyleSetDisplay(YGNodeRef node, YGDisplay display);
53
+ YG_EXPORT YGDisplay YGNodeStyleGetDisplay(YGNodeConstRef node);
54
+
55
+ YG_EXPORT void YGNodeStyleSetFlex(YGNodeRef node, float flex);
56
+ YG_EXPORT float YGNodeStyleGetFlex(YGNodeConstRef node);
57
+
58
+ YG_EXPORT void YGNodeStyleSetFlexGrow(YGNodeRef node, float flexGrow);
59
+ YG_EXPORT float YGNodeStyleGetFlexGrow(YGNodeConstRef node);
60
+
61
+ YG_EXPORT void YGNodeStyleSetFlexShrink(YGNodeRef node, float flexShrink);
62
+ YG_EXPORT float YGNodeStyleGetFlexShrink(YGNodeConstRef node);
63
+
64
+ YG_EXPORT void YGNodeStyleSetFlexBasis(YGNodeRef node, float flexBasis);
65
+ YG_EXPORT void YGNodeStyleSetFlexBasisPercent(YGNodeRef node, float flexBasis);
66
+ YG_EXPORT void YGNodeStyleSetFlexBasisAuto(YGNodeRef node);
67
+ YG_EXPORT YGValue YGNodeStyleGetFlexBasis(YGNodeConstRef node);
68
+
69
+ YG_EXPORT void
70
+ YGNodeStyleSetPosition(YGNodeRef node, YGEdge edge, float position);
71
+ YG_EXPORT void
72
+ YGNodeStyleSetPositionPercent(YGNodeRef node, YGEdge edge, float position);
73
+ YG_EXPORT YGValue YGNodeStyleGetPosition(YGNodeConstRef node, YGEdge edge);
74
+ YG_EXPORT void YGNodeStyleSetPositionAuto(YGNodeRef node, YGEdge edge);
75
+
76
+ YG_EXPORT
77
+ void YGNodeStyleSetMargin(YGNodeRef node, YGEdge edge, float margin);
78
+ YG_EXPORT void
79
+ YGNodeStyleSetMarginPercent(YGNodeRef node, YGEdge edge, float margin);
80
+ YG_EXPORT void YGNodeStyleSetMarginAuto(YGNodeRef node, YGEdge edge);
81
+ YG_EXPORT YGValue YGNodeStyleGetMargin(YGNodeConstRef node, YGEdge edge);
82
+
83
+ YG_EXPORT void
84
+ YGNodeStyleSetPadding(YGNodeRef node, YGEdge edge, float padding);
85
+ YG_EXPORT void
86
+ YGNodeStyleSetPaddingPercent(YGNodeRef node, YGEdge edge, float padding);
87
+ YG_EXPORT YGValue YGNodeStyleGetPadding(YGNodeConstRef node, YGEdge edge);
88
+
89
+ YG_EXPORT void YGNodeStyleSetBorder(YGNodeRef node, YGEdge edge, float border);
90
+ YG_EXPORT float YGNodeStyleGetBorder(YGNodeConstRef node, YGEdge edge);
91
+
92
+ YG_EXPORT void
93
+ YGNodeStyleSetGap(YGNodeRef node, YGGutter gutter, float gapLength);
94
+ YG_EXPORT void
95
+ YGNodeStyleSetGapPercent(YGNodeRef node, YGGutter gutter, float gapLength);
96
+ YG_EXPORT float YGNodeStyleGetGap(YGNodeConstRef node, YGGutter gutter);
97
+
98
+ YG_EXPORT void YGNodeStyleSetBoxSizing(YGNodeRef node, YGBoxSizing boxSizing);
99
+ YG_EXPORT YGBoxSizing YGNodeStyleGetBoxSizing(YGNodeConstRef node);
100
+
101
+ YG_EXPORT void YGNodeStyleSetWidth(YGNodeRef node, float width);
102
+ YG_EXPORT void YGNodeStyleSetWidthPercent(YGNodeRef node, float width);
103
+ YG_EXPORT void YGNodeStyleSetWidthAuto(YGNodeRef node);
104
+ YG_EXPORT YGValue YGNodeStyleGetWidth(YGNodeConstRef node);
105
+
106
+ YG_EXPORT void YGNodeStyleSetHeight(YGNodeRef node, float height);
107
+ YG_EXPORT void YGNodeStyleSetHeightPercent(YGNodeRef node, float height);
108
+ YG_EXPORT void YGNodeStyleSetHeightAuto(YGNodeRef node);
109
+ YG_EXPORT YGValue YGNodeStyleGetHeight(YGNodeConstRef node);
110
+
111
+ YG_EXPORT void YGNodeStyleSetMinWidth(YGNodeRef node, float minWidth);
112
+ YG_EXPORT void YGNodeStyleSetMinWidthPercent(YGNodeRef node, float minWidth);
113
+ YG_EXPORT YGValue YGNodeStyleGetMinWidth(YGNodeConstRef node);
114
+
115
+ YG_EXPORT void YGNodeStyleSetMinHeight(YGNodeRef node, float minHeight);
116
+ YG_EXPORT void YGNodeStyleSetMinHeightPercent(YGNodeRef node, float minHeight);
117
+ YG_EXPORT YGValue YGNodeStyleGetMinHeight(YGNodeConstRef node);
118
+
119
+ YG_EXPORT void YGNodeStyleSetMaxWidth(YGNodeRef node, float maxWidth);
120
+ YG_EXPORT void YGNodeStyleSetMaxWidthPercent(YGNodeRef node, float maxWidth);
121
+ YG_EXPORT YGValue YGNodeStyleGetMaxWidth(YGNodeConstRef node);
122
+
123
+ YG_EXPORT void YGNodeStyleSetMaxHeight(YGNodeRef node, float maxHeight);
124
+ YG_EXPORT void YGNodeStyleSetMaxHeightPercent(YGNodeRef node, float maxHeight);
125
+ YG_EXPORT YGValue YGNodeStyleGetMaxHeight(YGNodeConstRef node);
126
+
127
+ YG_EXPORT void YGNodeStyleSetAspectRatio(YGNodeRef node, float aspectRatio);
128
+ YG_EXPORT float YGNodeStyleGetAspectRatio(YGNodeConstRef node);
129
+
130
+ YG_EXTERN_C_END
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <stdbool.h>
11
+
12
+ #include <yoga/YGConfig.h>
13
+ #include <yoga/YGEnums.h>
14
+ #include <yoga/YGMacros.h>
15
+
16
+ YG_EXTERN_C_BEGIN
17
+
18
+ /**
19
+ * Rounds a point value to the nearest whole pixel, given a pointScaleFactor
20
+ * describing pixel density.
21
+ * @returns the rounded value in points
22
+ */
23
+ YG_EXPORT float YGRoundValueToPixelGrid(
24
+ double value,
25
+ double pointScaleFactor,
26
+ bool forceCeil,
27
+ bool forceFloor);
28
+
29
+ YG_EXTERN_C_END
@@ -0,0 +1,84 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <stdbool.h>
11
+
12
+ #include <yoga/YGEnums.h>
13
+ #include <yoga/YGMacros.h>
14
+
15
+ /**
16
+ * Float value to represent "undefined" in style values.
17
+ */
18
+ #ifdef __cplusplus
19
+ #include <limits>
20
+ constexpr float YGUndefined = std::numeric_limits<float>::quiet_NaN();
21
+ #else
22
+ #include <math.h>
23
+ #define YGUndefined NAN
24
+ #endif
25
+
26
+ YG_EXTERN_C_BEGIN
27
+
28
+ /**
29
+ * Structure used to represent a dimension in a style.
30
+ */
31
+ typedef struct YGValue {
32
+ float value;
33
+ YGUnit unit;
34
+ } YGValue;
35
+
36
+ /**
37
+ * Constant for a dimension of "auto".
38
+ */
39
+ YG_EXPORT extern const YGValue YGValueAuto;
40
+
41
+ /**
42
+ * Constant for a dimension which is not defined.
43
+ */
44
+ YG_EXPORT extern const YGValue YGValueUndefined;
45
+
46
+ /**
47
+ * Constant for a dimension that is zero-length.
48
+ */
49
+ YG_EXPORT extern const YGValue YGValueZero;
50
+
51
+ /**
52
+ * Whether a dimension represented as a float is defined.
53
+ */
54
+ YG_EXPORT bool YGFloatIsUndefined(float value);
55
+
56
+ YG_EXTERN_C_END
57
+
58
+ // Equality operators for comparison of YGValue in C++
59
+ #ifdef __cplusplus
60
+ inline bool operator==(const YGValue& lhs, const YGValue& rhs) {
61
+ if (lhs.unit != rhs.unit) {
62
+ return false;
63
+ }
64
+
65
+ switch (lhs.unit) {
66
+ case YGUnitUndefined:
67
+ case YGUnitAuto:
68
+ return true;
69
+ case YGUnitPoint:
70
+ case YGUnitPercent:
71
+ return lhs.value == rhs.value;
72
+ }
73
+
74
+ return false;
75
+ }
76
+
77
+ inline bool operator!=(const YGValue& lhs, const YGValue& rhs) {
78
+ return !(lhs == rhs);
79
+ }
80
+
81
+ inline YGValue operator-(const YGValue& value) {
82
+ return {-value.value, value.unit};
83
+ }
84
+ #endif
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ /**
11
+ * `#include <yoga/Yoga.h>` includes all of Yoga's public headers.
12
+ */
13
+
14
+ #include <yoga/YGConfig.h>
15
+ #include <yoga/YGEnums.h>
16
+ #include <yoga/YGMacros.h>
17
+ #include <yoga/YGNode.h>
18
+ #include <yoga/YGNodeLayout.h>
19
+ #include <yoga/YGNodeStyle.h>
20
+ #include <yoga/YGPixelGrid.h>
21
+ #include <yoga/YGValue.h>
@@ -0,0 +1,16 @@
1
+ // Python host binding for the same Yoga core used by mobile runtimes.
2
+ #include <Python.h>
3
+ #include <yoga/Yoga.h>
4
+ extern "C" {
5
+ typedef void (*PNMeasure)(YGNodeConstRef, float, int, float, int, float*, float*);
6
+ static PNMeasure callback = nullptr;
7
+ static YGSize measure(YGNodeConstRef node, float w, YGMeasureMode wm, float h, YGMeasureMode hm) {
8
+ float width = 0, height = 0;
9
+ callback(node, w, static_cast<int>(wm), h, static_cast<int>(hm), &width, &height);
10
+ return {width, height};
11
+ }
12
+ void pn_yoga_callback(PNMeasure fn) { callback = fn; }
13
+ void pn_yoga_measure(YGNodeRef node, int enabled) { YGNodeSetMeasureFunc(node, enabled ? measure : nullptr); }
14
+ static PyModuleDef module = {PyModuleDef_HEAD_INIT, "_yoga", "Yoga 3.2.1 host library", -1, nullptr};
15
+ PyMODINIT_FUNC PyInit__yoga() { return PyModule_Create(&module); }
16
+ }
@@ -0,0 +1,272 @@
1
+ #include "include/PNStyle.h"
2
+ #include <string>
3
+ #include <cstdlib>
4
+ #include <cmath>
5
+ extern "C" bool PNYogaSetStyle(YGNodeRef node, const char* rawKey, const char* rawValue) {
6
+ std::string key(rawKey), value(rawValue);
7
+ bool percent = !value.empty() && value.back() == '%';
8
+ char* end = nullptr;
9
+ float number = std::strtof(rawValue, &end);
10
+ if (key == "direction") {
11
+ if (value == "inherit") { YGNodeStyleSetDirection(node, static_cast<YGDirection>(0)); return true; }
12
+ if (value == "ltr") { YGNodeStyleSetDirection(node, static_cast<YGDirection>(1)); return true; }
13
+ if (value == "rtl") { YGNodeStyleSetDirection(node, static_cast<YGDirection>(2)); return true; }
14
+ return false;
15
+ }
16
+ if (key == "flex_direction") {
17
+ if (value == "column") { YGNodeStyleSetFlexDirection(node, static_cast<YGFlexDirection>(0)); return true; }
18
+ if (value == "column_reverse") { YGNodeStyleSetFlexDirection(node, static_cast<YGFlexDirection>(1)); return true; }
19
+ if (value == "row") { YGNodeStyleSetFlexDirection(node, static_cast<YGFlexDirection>(2)); return true; }
20
+ if (value == "row_reverse") { YGNodeStyleSetFlexDirection(node, static_cast<YGFlexDirection>(3)); return true; }
21
+ return false;
22
+ }
23
+ if (key == "justify_content") {
24
+ if (value == "flex_start") { YGNodeStyleSetJustifyContent(node, static_cast<YGJustify>(0)); return true; }
25
+ if (value == "center") { YGNodeStyleSetJustifyContent(node, static_cast<YGJustify>(1)); return true; }
26
+ if (value == "flex_end") { YGNodeStyleSetJustifyContent(node, static_cast<YGJustify>(2)); return true; }
27
+ if (value == "space_between") { YGNodeStyleSetJustifyContent(node, static_cast<YGJustify>(3)); return true; }
28
+ if (value == "space_around") { YGNodeStyleSetJustifyContent(node, static_cast<YGJustify>(4)); return true; }
29
+ if (value == "space_evenly") { YGNodeStyleSetJustifyContent(node, static_cast<YGJustify>(5)); return true; }
30
+ return false;
31
+ }
32
+ if (key == "align_items") {
33
+ if (value == "auto") { YGNodeStyleSetAlignItems(node, static_cast<YGAlign>(0)); return true; }
34
+ if (value == "flex_start") { YGNodeStyleSetAlignItems(node, static_cast<YGAlign>(1)); return true; }
35
+ if (value == "center") { YGNodeStyleSetAlignItems(node, static_cast<YGAlign>(2)); return true; }
36
+ if (value == "flex_end") { YGNodeStyleSetAlignItems(node, static_cast<YGAlign>(3)); return true; }
37
+ if (value == "stretch") { YGNodeStyleSetAlignItems(node, static_cast<YGAlign>(4)); return true; }
38
+ if (value == "baseline") { YGNodeStyleSetAlignItems(node, static_cast<YGAlign>(5)); return true; }
39
+ if (value == "space_between") { YGNodeStyleSetAlignItems(node, static_cast<YGAlign>(6)); return true; }
40
+ if (value == "space_around") { YGNodeStyleSetAlignItems(node, static_cast<YGAlign>(7)); return true; }
41
+ if (value == "space_evenly") { YGNodeStyleSetAlignItems(node, static_cast<YGAlign>(8)); return true; }
42
+ return false;
43
+ }
44
+ if (key == "align_self") {
45
+ if (value == "auto") { YGNodeStyleSetAlignSelf(node, static_cast<YGAlign>(0)); return true; }
46
+ if (value == "flex_start") { YGNodeStyleSetAlignSelf(node, static_cast<YGAlign>(1)); return true; }
47
+ if (value == "center") { YGNodeStyleSetAlignSelf(node, static_cast<YGAlign>(2)); return true; }
48
+ if (value == "flex_end") { YGNodeStyleSetAlignSelf(node, static_cast<YGAlign>(3)); return true; }
49
+ if (value == "stretch") { YGNodeStyleSetAlignSelf(node, static_cast<YGAlign>(4)); return true; }
50
+ if (value == "baseline") { YGNodeStyleSetAlignSelf(node, static_cast<YGAlign>(5)); return true; }
51
+ if (value == "space_between") { YGNodeStyleSetAlignSelf(node, static_cast<YGAlign>(6)); return true; }
52
+ if (value == "space_around") { YGNodeStyleSetAlignSelf(node, static_cast<YGAlign>(7)); return true; }
53
+ if (value == "space_evenly") { YGNodeStyleSetAlignSelf(node, static_cast<YGAlign>(8)); return true; }
54
+ return false;
55
+ }
56
+ if (key == "align_content") {
57
+ if (value == "auto") { YGNodeStyleSetAlignContent(node, static_cast<YGAlign>(0)); return true; }
58
+ if (value == "flex_start") { YGNodeStyleSetAlignContent(node, static_cast<YGAlign>(1)); return true; }
59
+ if (value == "center") { YGNodeStyleSetAlignContent(node, static_cast<YGAlign>(2)); return true; }
60
+ if (value == "flex_end") { YGNodeStyleSetAlignContent(node, static_cast<YGAlign>(3)); return true; }
61
+ if (value == "stretch") { YGNodeStyleSetAlignContent(node, static_cast<YGAlign>(4)); return true; }
62
+ if (value == "baseline") { YGNodeStyleSetAlignContent(node, static_cast<YGAlign>(5)); return true; }
63
+ if (value == "space_between") { YGNodeStyleSetAlignContent(node, static_cast<YGAlign>(6)); return true; }
64
+ if (value == "space_around") { YGNodeStyleSetAlignContent(node, static_cast<YGAlign>(7)); return true; }
65
+ if (value == "space_evenly") { YGNodeStyleSetAlignContent(node, static_cast<YGAlign>(8)); return true; }
66
+ return false;
67
+ }
68
+ if (key == "position") {
69
+ if (value == "static") { YGNodeStyleSetPositionType(node, static_cast<YGPositionType>(0)); return true; }
70
+ if (value == "relative") { YGNodeStyleSetPositionType(node, static_cast<YGPositionType>(1)); return true; }
71
+ if (value == "absolute") { YGNodeStyleSetPositionType(node, static_cast<YGPositionType>(2)); return true; }
72
+ return false;
73
+ }
74
+ if (key == "flex_wrap") {
75
+ if (value == "nowrap") { YGNodeStyleSetFlexWrap(node, static_cast<YGWrap>(0)); return true; }
76
+ if (value == "wrap") { YGNodeStyleSetFlexWrap(node, static_cast<YGWrap>(1)); return true; }
77
+ if (value == "wrap_reverse") { YGNodeStyleSetFlexWrap(node, static_cast<YGWrap>(2)); return true; }
78
+ return false;
79
+ }
80
+ if (key == "display") {
81
+ if (value == "flex") { YGNodeStyleSetDisplay(node, static_cast<YGDisplay>(0)); return true; }
82
+ if (value == "none") { YGNodeStyleSetDisplay(node, static_cast<YGDisplay>(1)); return true; }
83
+ if (value == "contents") { YGNodeStyleSetDisplay(node, static_cast<YGDisplay>(2)); return true; }
84
+ return false;
85
+ }
86
+ if (key == "width") {
87
+ if (value == "auto") { YGNodeStyleSetWidthAuto(node); return true; }
88
+ if (percent) { YGNodeStyleSetWidthPercent(node, number); return true; }
89
+ YGNodeStyleSetWidth(node, number); return end != rawValue;
90
+ }
91
+ if (key == "height") {
92
+ if (value == "auto") { YGNodeStyleSetHeightAuto(node); return true; }
93
+ if (percent) { YGNodeStyleSetHeightPercent(node, number); return true; }
94
+ YGNodeStyleSetHeight(node, number); return end != rawValue;
95
+ }
96
+ if (key == "min_width") {
97
+ if (percent) { YGNodeStyleSetMinWidthPercent(node, number); return true; }
98
+ YGNodeStyleSetMinWidth(node, number); return end != rawValue;
99
+ }
100
+ if (key == "min_height") {
101
+ if (percent) { YGNodeStyleSetMinHeightPercent(node, number); return true; }
102
+ YGNodeStyleSetMinHeight(node, number); return end != rawValue;
103
+ }
104
+ if (key == "max_width") {
105
+ if (percent) { YGNodeStyleSetMaxWidthPercent(node, number); return true; }
106
+ YGNodeStyleSetMaxWidth(node, number); return end != rawValue;
107
+ }
108
+ if (key == "max_height") {
109
+ if (percent) { YGNodeStyleSetMaxHeightPercent(node, number); return true; }
110
+ YGNodeStyleSetMaxHeight(node, number); return end != rawValue;
111
+ }
112
+ if (key == "flex_basis") {
113
+ if (value == "auto") { YGNodeStyleSetFlexBasisAuto(node); return true; }
114
+ if (percent) { YGNodeStyleSetFlexBasisPercent(node, number); return true; }
115
+ YGNodeStyleSetFlexBasis(node, number); return end != rawValue;
116
+ }
117
+ if (key == "flex") {
118
+ YGNodeStyleSetFlex(node, number); return end != rawValue;
119
+ }
120
+ if (key == "flex_grow") {
121
+ YGNodeStyleSetFlexGrow(node, number); return end != rawValue;
122
+ }
123
+ if (key == "flex_shrink") {
124
+ YGNodeStyleSetFlexShrink(node, number); return end != rawValue;
125
+ }
126
+ if (key == "aspect_ratio") {
127
+ YGNodeStyleSetAspectRatio(node, number); return end != rawValue;
128
+ }
129
+ if (key == "margin_left") {
130
+ if (value == "auto") { YGNodeStyleSetMarginAuto(node, static_cast<YGEdge>(0)); return true; }
131
+ if (percent) { YGNodeStyleSetMarginPercent(node, static_cast<YGEdge>(0), number); return true; }
132
+ YGNodeStyleSetMargin(node, static_cast<YGEdge>(0), number); return end != rawValue;
133
+ }
134
+ if (key == "margin_top") {
135
+ if (value == "auto") { YGNodeStyleSetMarginAuto(node, static_cast<YGEdge>(1)); return true; }
136
+ if (percent) { YGNodeStyleSetMarginPercent(node, static_cast<YGEdge>(1), number); return true; }
137
+ YGNodeStyleSetMargin(node, static_cast<YGEdge>(1), number); return end != rawValue;
138
+ }
139
+ if (key == "margin_right") {
140
+ if (value == "auto") { YGNodeStyleSetMarginAuto(node, static_cast<YGEdge>(2)); return true; }
141
+ if (percent) { YGNodeStyleSetMarginPercent(node, static_cast<YGEdge>(2), number); return true; }
142
+ YGNodeStyleSetMargin(node, static_cast<YGEdge>(2), number); return end != rawValue;
143
+ }
144
+ if (key == "margin_bottom") {
145
+ if (value == "auto") { YGNodeStyleSetMarginAuto(node, static_cast<YGEdge>(3)); return true; }
146
+ if (percent) { YGNodeStyleSetMarginPercent(node, static_cast<YGEdge>(3), number); return true; }
147
+ YGNodeStyleSetMargin(node, static_cast<YGEdge>(3), number); return end != rawValue;
148
+ }
149
+ if (key == "margin_start") {
150
+ if (value == "auto") { YGNodeStyleSetMarginAuto(node, static_cast<YGEdge>(4)); return true; }
151
+ if (percent) { YGNodeStyleSetMarginPercent(node, static_cast<YGEdge>(4), number); return true; }
152
+ YGNodeStyleSetMargin(node, static_cast<YGEdge>(4), number); return end != rawValue;
153
+ }
154
+ if (key == "margin_end") {
155
+ if (value == "auto") { YGNodeStyleSetMarginAuto(node, static_cast<YGEdge>(5)); return true; }
156
+ if (percent) { YGNodeStyleSetMarginPercent(node, static_cast<YGEdge>(5), number); return true; }
157
+ YGNodeStyleSetMargin(node, static_cast<YGEdge>(5), number); return end != rawValue;
158
+ }
159
+ if (key == "margin_horizontal") {
160
+ if (value == "auto") { YGNodeStyleSetMarginAuto(node, static_cast<YGEdge>(6)); return true; }
161
+ if (percent) { YGNodeStyleSetMarginPercent(node, static_cast<YGEdge>(6), number); return true; }
162
+ YGNodeStyleSetMargin(node, static_cast<YGEdge>(6), number); return end != rawValue;
163
+ }
164
+ if (key == "margin_vertical") {
165
+ if (value == "auto") { YGNodeStyleSetMarginAuto(node, static_cast<YGEdge>(7)); return true; }
166
+ if (percent) { YGNodeStyleSetMarginPercent(node, static_cast<YGEdge>(7), number); return true; }
167
+ YGNodeStyleSetMargin(node, static_cast<YGEdge>(7), number); return end != rawValue;
168
+ }
169
+ if (key == "margin") {
170
+ if (value == "auto") { YGNodeStyleSetMarginAuto(node, static_cast<YGEdge>(8)); return true; }
171
+ if (percent) { YGNodeStyleSetMarginPercent(node, static_cast<YGEdge>(8), number); return true; }
172
+ YGNodeStyleSetMargin(node, static_cast<YGEdge>(8), number); return end != rawValue;
173
+ }
174
+ if (key == "padding_left") {
175
+ if (percent) { YGNodeStyleSetPaddingPercent(node, static_cast<YGEdge>(0), number); return true; }
176
+ YGNodeStyleSetPadding(node, static_cast<YGEdge>(0), number); return end != rawValue;
177
+ }
178
+ if (key == "padding_top") {
179
+ if (percent) { YGNodeStyleSetPaddingPercent(node, static_cast<YGEdge>(1), number); return true; }
180
+ YGNodeStyleSetPadding(node, static_cast<YGEdge>(1), number); return end != rawValue;
181
+ }
182
+ if (key == "padding_right") {
183
+ if (percent) { YGNodeStyleSetPaddingPercent(node, static_cast<YGEdge>(2), number); return true; }
184
+ YGNodeStyleSetPadding(node, static_cast<YGEdge>(2), number); return end != rawValue;
185
+ }
186
+ if (key == "padding_bottom") {
187
+ if (percent) { YGNodeStyleSetPaddingPercent(node, static_cast<YGEdge>(3), number); return true; }
188
+ YGNodeStyleSetPadding(node, static_cast<YGEdge>(3), number); return end != rawValue;
189
+ }
190
+ if (key == "padding_start") {
191
+ if (percent) { YGNodeStyleSetPaddingPercent(node, static_cast<YGEdge>(4), number); return true; }
192
+ YGNodeStyleSetPadding(node, static_cast<YGEdge>(4), number); return end != rawValue;
193
+ }
194
+ if (key == "padding_end") {
195
+ if (percent) { YGNodeStyleSetPaddingPercent(node, static_cast<YGEdge>(5), number); return true; }
196
+ YGNodeStyleSetPadding(node, static_cast<YGEdge>(5), number); return end != rawValue;
197
+ }
198
+ if (key == "padding_horizontal") {
199
+ if (percent) { YGNodeStyleSetPaddingPercent(node, static_cast<YGEdge>(6), number); return true; }
200
+ YGNodeStyleSetPadding(node, static_cast<YGEdge>(6), number); return end != rawValue;
201
+ }
202
+ if (key == "padding_vertical") {
203
+ if (percent) { YGNodeStyleSetPaddingPercent(node, static_cast<YGEdge>(7), number); return true; }
204
+ YGNodeStyleSetPadding(node, static_cast<YGEdge>(7), number); return end != rawValue;
205
+ }
206
+ if (key == "padding") {
207
+ if (percent) { YGNodeStyleSetPaddingPercent(node, static_cast<YGEdge>(8), number); return true; }
208
+ YGNodeStyleSetPadding(node, static_cast<YGEdge>(8), number); return end != rawValue;
209
+ }
210
+ if (key == "left") {
211
+ if (value == "auto") { YGNodeStyleSetPositionAuto(node, static_cast<YGEdge>(0)); return true; }
212
+ if (percent) { YGNodeStyleSetPositionPercent(node, static_cast<YGEdge>(0), number); return true; }
213
+ YGNodeStyleSetPosition(node, static_cast<YGEdge>(0), number); return end != rawValue;
214
+ }
215
+ if (key == "top") {
216
+ if (value == "auto") { YGNodeStyleSetPositionAuto(node, static_cast<YGEdge>(1)); return true; }
217
+ if (percent) { YGNodeStyleSetPositionPercent(node, static_cast<YGEdge>(1), number); return true; }
218
+ YGNodeStyleSetPosition(node, static_cast<YGEdge>(1), number); return end != rawValue;
219
+ }
220
+ if (key == "right") {
221
+ if (value == "auto") { YGNodeStyleSetPositionAuto(node, static_cast<YGEdge>(2)); return true; }
222
+ if (percent) { YGNodeStyleSetPositionPercent(node, static_cast<YGEdge>(2), number); return true; }
223
+ YGNodeStyleSetPosition(node, static_cast<YGEdge>(2), number); return end != rawValue;
224
+ }
225
+ if (key == "bottom") {
226
+ if (value == "auto") { YGNodeStyleSetPositionAuto(node, static_cast<YGEdge>(3)); return true; }
227
+ if (percent) { YGNodeStyleSetPositionPercent(node, static_cast<YGEdge>(3), number); return true; }
228
+ YGNodeStyleSetPosition(node, static_cast<YGEdge>(3), number); return end != rawValue;
229
+ }
230
+ if (key == "start") {
231
+ if (value == "auto") { YGNodeStyleSetPositionAuto(node, static_cast<YGEdge>(4)); return true; }
232
+ if (percent) { YGNodeStyleSetPositionPercent(node, static_cast<YGEdge>(4), number); return true; }
233
+ YGNodeStyleSetPosition(node, static_cast<YGEdge>(4), number); return end != rawValue;
234
+ }
235
+ if (key == "end") {
236
+ if (value == "auto") { YGNodeStyleSetPositionAuto(node, static_cast<YGEdge>(5)); return true; }
237
+ if (percent) { YGNodeStyleSetPositionPercent(node, static_cast<YGEdge>(5), number); return true; }
238
+ YGNodeStyleSetPosition(node, static_cast<YGEdge>(5), number); return end != rawValue;
239
+ }
240
+ if (key == "border_left_width") {
241
+ YGNodeStyleSetBorder(node, static_cast<YGEdge>(0), number); return end != rawValue;
242
+ }
243
+ if (key == "border_top_width") {
244
+ YGNodeStyleSetBorder(node, static_cast<YGEdge>(1), number); return end != rawValue;
245
+ }
246
+ if (key == "border_right_width") {
247
+ YGNodeStyleSetBorder(node, static_cast<YGEdge>(2), number); return end != rawValue;
248
+ }
249
+ if (key == "border_bottom_width") {
250
+ YGNodeStyleSetBorder(node, static_cast<YGEdge>(3), number); return end != rawValue;
251
+ }
252
+ if (key == "border_start_width") {
253
+ YGNodeStyleSetBorder(node, static_cast<YGEdge>(4), number); return end != rawValue;
254
+ }
255
+ if (key == "border_end_width") {
256
+ YGNodeStyleSetBorder(node, static_cast<YGEdge>(5), number); return end != rawValue;
257
+ }
258
+ if (key == "border_horizontal_width") {
259
+ YGNodeStyleSetBorder(node, static_cast<YGEdge>(6), number); return end != rawValue;
260
+ }
261
+ if (key == "border_vertical_width") {
262
+ YGNodeStyleSetBorder(node, static_cast<YGEdge>(7), number); return end != rawValue;
263
+ }
264
+ if (key == "border_width") {
265
+ YGNodeStyleSetBorder(node, static_cast<YGEdge>(8), number); return end != rawValue;
266
+ }
267
+ if (key == "gap") { if (percent) YGNodeStyleSetGapPercent(node, static_cast<YGGutter>(2), number); else YGNodeStyleSetGap(node, static_cast<YGGutter>(2), number); return true; }
268
+ if (key == "spacing") { if (percent) YGNodeStyleSetGapPercent(node, static_cast<YGGutter>(2), number); else YGNodeStyleSetGap(node, static_cast<YGGutter>(2), number); return true; }
269
+ if (key == "row_gap") { if (percent) YGNodeStyleSetGapPercent(node, static_cast<YGGutter>(1), number); else YGNodeStyleSetGap(node, static_cast<YGGutter>(1), number); return true; }
270
+ if (key == "column_gap") { if (percent) YGNodeStyleSetGapPercent(node, static_cast<YGGutter>(0), number); else YGNodeStyleSetGap(node, static_cast<YGGutter>(0), number); return true; }
271
+ return false;
272
+ }
@@ -0,0 +1,41 @@
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+
7
+ cmake_minimum_required(VERSION 3.13...3.26)
8
+ project(yogacore)
9
+ set(CMAKE_VERBOSE_MAKEFILE on)
10
+
11
+ if(TARGET yogacore)
12
+ return()
13
+ endif()
14
+
15
+ include(CheckIPOSupported)
16
+
17
+ set(YOGA_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/..)
18
+ include(${YOGA_ROOT}/cmake/project-defaults.cmake)
19
+
20
+
21
+ file(GLOB SOURCES CONFIGURE_DEPENDS
22
+ ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
23
+ ${CMAKE_CURRENT_SOURCE_DIR}/**/*.cpp)
24
+
25
+ add_library(yogacore STATIC ${SOURCES})
26
+
27
+ # Yoga conditionally uses <android/log> when building for Android
28
+ if (ANDROID)
29
+ target_link_libraries(yogacore log)
30
+ endif()
31
+
32
+ check_ipo_supported(RESULT result)
33
+ if(result)
34
+ set_target_properties(yogacore PROPERTIES
35
+ CMAKE_INTERPROCEDURAL_OPTIMIZATION true)
36
+ endif()
37
+
38
+ target_include_directories(yogacore
39
+ PUBLIC
40
+ $<BUILD_INTERFACE:${YOGA_ROOT}>
41
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include/yoga>)