Skip to content

Commit 8bf7a34

Browse files
mateoguzmanafacebook-github-bot
authored andcommitted
Initial Kotlin setup and migrate YogaConstants (#1829)
Summary: X-link: facebook/react-native#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: #1829 Test Plan: - Tested the migrated class directly against facebook/react-native, see the PR [here](facebook/react-native#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
1 parent 82671c0 commit 8bf7a34

5 files changed

Lines changed: 26 additions & 25 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,6 @@ local.properties
7373

7474
# Docusarus build
7575
.docusaurus
76+
77+
# Android Studio
78+
.idea

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ plugins {
99
id("com.android.library") version "8.7.1" apply false
1010
id("com.android.application") version "8.7.1" apply false
1111
id("io.github.gradle-nexus.publish-plugin") version "1.3.0"
12+
id 'org.jetbrains.kotlin.android' version '2.1.20' apply false
1213
}
1314

1415
allprojects {

java/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ plugins {
99
id("com.android.library")
1010
id("maven-publish")
1111
id("signing")
12+
id("org.jetbrains.kotlin.android")
1213
}
1314

1415
group = "com.facebook.yoga"
@@ -48,6 +49,8 @@ android {
4849
}
4950
}
5051

52+
kotlinOptions { jvmTarget = "1.8" }
53+
5154
publishing {
5255
multipleVariants {
5356
withSourcesJar()
@@ -60,6 +63,7 @@ android {
6063
dependencies {
6164
implementation("com.google.code.findbugs:jsr305:3.0.2")
6265
implementation("com.facebook.soloader:soloader:0.10.5")
66+
implementation("androidx.core:core-ktx:1.16.0")
6367
testImplementation("junit:junit:4.12")
6468
}
6569

java/com/facebook/yoga/YogaConstants.java

Lines changed: 0 additions & 25 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
package com.facebook.yoga
9+
10+
public object YogaConstants {
11+
@JvmField public val UNDEFINED: Float = Float.NaN
12+
13+
@JvmStatic public fun isUndefined(value: Float): Boolean = value.compareTo(UNDEFINED) == 0
14+
15+
@JvmStatic public fun isUndefined(value: YogaValue): Boolean = value.unit == YogaUnit.UNDEFINED
16+
17+
@JvmStatic public fun getUndefined(): Float = UNDEFINED
18+
}

0 commit comments

Comments
 (0)