Initial Kotlin setup and migrate YogaConstants
(#1829)
Summary: X-link: https://github.com/facebook/react-native/pull/53133 # Changelog: [Internal] - As part of the ongoing effort to migrate the React Native codebase to Kotlin, this PR introduces the initial setup required for Kotlin support in Yoga. - Added initial basic Kotlin configuration to the project. - Migrated `YogaConstants` as an initial file to try out the first migration steps. Pull Request resolved: https://github.com/facebook/yoga/pull/1829 Test Plan: - Tested the migrated class directly against facebook/react-native, see the PR [here](https://github.com/facebook/react-native/pull/52998). - Run: `./gradlew :yoga:assembleDebug` & `./gradlew :yoga:compileDebugSources` I am not able to run the Java tests in this repo (even before the initial Kotlin setup) – not sure if I am missing something there but any pointers are welcome – it seems like there is some missing configuration. Currently trying with `./gradlew :yoga:test` Reviewed By: cortinico Differential Revision: D79545992 Pulled By: rshest fbshipit-source-id: 8257ff53e6b6f2436980be98b6c94e1ac526b207
This commit is contained in:
committed by
Facebook GitHub Bot
parent
82671c0132
commit
8bf7a34d02
3
.gitignore
vendored
3
.gitignore
vendored
@@ -73,3 +73,6 @@ local.properties
|
||||
|
||||
# Docusarus build
|
||||
.docusaurus
|
||||
|
||||
# Android Studio
|
||||
.idea
|
||||
|
@@ -9,6 +9,7 @@ plugins {
|
||||
id("com.android.library") version "8.7.1" apply false
|
||||
id("com.android.application") version "8.7.1" apply false
|
||||
id("io.github.gradle-nexus.publish-plugin") version "1.3.0"
|
||||
id 'org.jetbrains.kotlin.android' version '2.1.20' apply false
|
||||
}
|
||||
|
||||
allprojects {
|
||||
|
@@ -9,6 +9,7 @@ plugins {
|
||||
id("com.android.library")
|
||||
id("maven-publish")
|
||||
id("signing")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
}
|
||||
|
||||
group = "com.facebook.yoga"
|
||||
@@ -48,6 +49,8 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
kotlinOptions { jvmTarget = "1.8" }
|
||||
|
||||
publishing {
|
||||
multipleVariants {
|
||||
withSourcesJar()
|
||||
@@ -60,6 +63,7 @@ android {
|
||||
dependencies {
|
||||
implementation("com.google.code.findbugs:jsr305:3.0.2")
|
||||
implementation("com.facebook.soloader:soloader:0.10.5")
|
||||
implementation("androidx.core:core-ktx:1.16.0")
|
||||
testImplementation("junit:junit:4.12")
|
||||
}
|
||||
|
||||
|
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.yoga;
|
||||
|
||||
public class YogaConstants {
|
||||
|
||||
public static final float UNDEFINED = Float.NaN;
|
||||
|
||||
public static boolean isUndefined(float value) {
|
||||
return Float.compare(value, UNDEFINED) == 0;
|
||||
}
|
||||
|
||||
public static boolean isUndefined(YogaValue value) {
|
||||
return value.unit == YogaUnit.UNDEFINED;
|
||||
}
|
||||
|
||||
public static float getUndefined() {
|
||||
return UNDEFINED;
|
||||
}
|
||||
}
|
18
java/com/facebook/yoga/YogaConstants.kt
Normal file
18
java/com/facebook/yoga/YogaConstants.kt
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.yoga
|
||||
|
||||
public object YogaConstants {
|
||||
@JvmField public val UNDEFINED: Float = Float.NaN
|
||||
|
||||
@JvmStatic public fun isUndefined(value: Float): Boolean = value.compareTo(UNDEFINED) == 0
|
||||
|
||||
@JvmStatic public fun isUndefined(value: YogaValue): Boolean = value.unit == YogaUnit.UNDEFINED
|
||||
|
||||
@JvmStatic public fun getUndefined(): Float = UNDEFINED
|
||||
}
|
Reference in New Issue
Block a user