Skip to content

Commit

Permalink
Multiplatform: Add iOS target.
Browse files Browse the repository at this point in the history
  • Loading branch information
vanniktech committed Dec 10, 2023
1 parent f2b141d commit df3b271
Show file tree
Hide file tree
Showing 30 changed files with 758 additions and 33 deletions.
39 changes: 39 additions & 0 deletions emoji-facebook/EmojiFacebook.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Pod::Spec.new do |spec|
spec.name = 'EmojiFacebook'
spec.version = '0.18.0-SNAPSHOT'
spec.homepage = 'https://github.com/vanniktech/Emoji'
spec.source = { :http=> ''}
spec.authors = ''
spec.license = ''
spec.summary = 'emoji-facebook'
spec.vendored_frameworks = 'build/cocoapods/framework/emoji_facebook.framework'
spec.libraries = 'c++'



spec.pod_target_xcconfig = {
'KOTLIN_PROJECT_PATH' => ':emoji-facebook',
'PRODUCT_MODULE_NAME' => 'emoji_facebook',
}

spec.script_phases = [
{
:name => 'Build EmojiFacebook',
:execution_position => :before_compile,
:shell_path => '/bin/sh',
:script => <<-SCRIPT
if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then
echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\""
exit 0
fi
set -ev
REPO_ROOT="$PODS_TARGET_SRCROOT"
"$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \
-Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \
-Pkotlin.native.cocoapods.archs="$ARCHS" \
-Pkotlin.native.cocoapods.configuration="$CONFIGURATION"
SCRIPT
}
]

end
23 changes: 21 additions & 2 deletions emoji-facebook/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ licensee {

metalava {
filename.set("api/current.txt")
sourcePaths.setFrom("src/commonMain", "src/androidMain", "src/jvmMain")
sourcePaths.setFrom("src/commonMain", "src/androidMain", "src/jvmMain", "src/iosMain")
}

// CocoaPods requires a version.
Expand All @@ -26,10 +26,23 @@ kotlin {
androidTarget("android") {
publishLibraryVariants("release")
}
// ios("ios")
ios()
jvm()
jvmToolchain(11)

cocoapods {
version = VERSION_NAME
summary = "emoji-facebook"
homepage = "https://github.com/vanniktech/Emoji"
name = "EmojiFacebook"

// framework {
// isStatic = true
// embedBitcode(BITCODE)
// export(project(":emoji"))
// }
}

sourceSets {
commonMain {
dependencies {
Expand All @@ -52,6 +65,12 @@ kotlin {
implementation libs.robolectric
}

iosMain.dependencies {
}

iosTest.dependencies {
}

jvmMain.dependencies {
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* Copyright (C) 2016 - Niklas Baudy, Ruben Gees, Mario Đanić and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.vanniktech.emoji.facebook

import com.vanniktech.emoji.EmojiCategory
import com.vanniktech.emoji.EmojiProvider
import com.vanniktech.emoji.facebook.category.ActivitiesCategory
import com.vanniktech.emoji.facebook.category.AnimalsAndNatureCategory
import com.vanniktech.emoji.facebook.category.FlagsCategory
import com.vanniktech.emoji.facebook.category.FoodAndDrinkCategory
import com.vanniktech.emoji.facebook.category.ObjectsCategory
import com.vanniktech.emoji.facebook.category.SmileysAndPeopleCategory
import com.vanniktech.emoji.facebook.category.SymbolsCategory
import com.vanniktech.emoji.facebook.category.TravelAndPlacesCategory

class FacebookEmojiProvider : EmojiProvider {
override val categories: Array<EmojiCategory>
get() = arrayOf(
SmileysAndPeopleCategory(),
AnimalsAndNatureCategory(),
FoodAndDrinkCategory(),
ActivitiesCategory(),
TravelAndPlacesCategory(),
ObjectsCategory(),
SymbolsCategory(),
FlagsCategory(),
)

override fun release() = Unit
}
39 changes: 39 additions & 0 deletions emoji-google-compat/EmojiGoogleCompat.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Pod::Spec.new do |spec|
spec.name = 'EmojiGoogleCompat'
spec.version = '0.18.0-SNAPSHOT'
spec.homepage = 'https://github.com/vanniktech/Emoji'
spec.source = { :http=> ''}
spec.authors = ''
spec.license = ''
spec.summary = 'emoji-google-compat'
spec.vendored_frameworks = 'build/cocoapods/framework/emoji_google_compat.framework'
spec.libraries = 'c++'



spec.pod_target_xcconfig = {
'KOTLIN_PROJECT_PATH' => ':emoji-google-compat',
'PRODUCT_MODULE_NAME' => 'emoji_google_compat',
}

spec.script_phases = [
{
:name => 'Build EmojiGoogleCompat',
:execution_position => :before_compile,
:shell_path => '/bin/sh',
:script => <<-SCRIPT
if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then
echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\""
exit 0
fi
set -ev
REPO_ROOT="$PODS_TARGET_SRCROOT"
"$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \
-Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \
-Pkotlin.native.cocoapods.archs="$ARCHS" \
-Pkotlin.native.cocoapods.configuration="$CONFIGURATION"
SCRIPT
}
]

end
23 changes: 21 additions & 2 deletions emoji-google-compat/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ licensee {

metalava {
filename.set("api/current.txt")
sourcePaths.setFrom("src/commonMain", "src/androidMain", "src/jvmMain")
sourcePaths.setFrom("src/commonMain", "src/androidMain", "src/jvmMain", "src/iosMain")
}

// CocoaPods requires a version.
Expand All @@ -26,10 +26,23 @@ kotlin {
androidTarget("android") {
publishLibraryVariants("release")
}
// ios("ios")
ios()
jvm()
jvmToolchain(11)

cocoapods {
version = VERSION_NAME
summary = "emoji-google-compat"
homepage = "https://github.com/vanniktech/Emoji"
name = "EmojiGoogleCompat"

// framework {
// isStatic = true
// embedBitcode(BITCODE)
// export(project(":emoji"))
// }
}

sourceSets {
commonMain {
dependencies {
Expand All @@ -53,6 +66,12 @@ kotlin {
implementation libs.robolectric
}

iosMain.dependencies {
}

iosTest.dependencies {
}

jvmMain.dependencies {
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* Copyright (C) 2016 - Niklas Baudy, Ruben Gees, Mario Đanić and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.vanniktech.emoji.googlecompat

import com.vanniktech.emoji.EmojiCategory
import com.vanniktech.emoji.EmojiProvider
import com.vanniktech.emoji.googlecompat.category.ActivitiesCategory
import com.vanniktech.emoji.googlecompat.category.AnimalsAndNatureCategory
import com.vanniktech.emoji.googlecompat.category.FlagsCategory
import com.vanniktech.emoji.googlecompat.category.FoodAndDrinkCategory
import com.vanniktech.emoji.googlecompat.category.ObjectsCategory
import com.vanniktech.emoji.googlecompat.category.SmileysAndPeopleCategory
import com.vanniktech.emoji.googlecompat.category.SymbolsCategory
import com.vanniktech.emoji.googlecompat.category.TravelAndPlacesCategory

class GoogleCompatEmojiProvider : EmojiProvider {
override val categories: Array<EmojiCategory>
get() = arrayOf(
SmileysAndPeopleCategory(),
AnimalsAndNatureCategory(),
FoodAndDrinkCategory(),
ActivitiesCategory(),
TravelAndPlacesCategory(),
ObjectsCategory(),
SymbolsCategory(),
FlagsCategory(),
)

override fun release() = Unit
}
39 changes: 39 additions & 0 deletions emoji-google/EmojiGoogle.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Pod::Spec.new do |spec|
spec.name = 'EmojiGoogle'
spec.version = '0.18.0-SNAPSHOT'
spec.homepage = 'https://github.com/vanniktech/Emoji'
spec.source = { :http=> ''}
spec.authors = ''
spec.license = ''
spec.summary = 'emoji-google'
spec.vendored_frameworks = 'build/cocoapods/framework/emoji_google.framework'
spec.libraries = 'c++'



spec.pod_target_xcconfig = {
'KOTLIN_PROJECT_PATH' => ':emoji-google',
'PRODUCT_MODULE_NAME' => 'emoji_google',
}

spec.script_phases = [
{
:name => 'Build EmojiGoogle',
:execution_position => :before_compile,
:shell_path => '/bin/sh',
:script => <<-SCRIPT
if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then
echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\""
exit 0
fi
set -ev
REPO_ROOT="$PODS_TARGET_SRCROOT"
"$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \
-Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \
-Pkotlin.native.cocoapods.archs="$ARCHS" \
-Pkotlin.native.cocoapods.configuration="$CONFIGURATION"
SCRIPT
}
]

end
23 changes: 21 additions & 2 deletions emoji-google/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ licensee {

metalava {
filename.set("api/current.txt")
sourcePaths.setFrom("src/commonMain", "src/androidMain", "src/jvmMain")
sourcePaths.setFrom("src/commonMain", "src/androidMain", "src/jvmMain", "src/iosMain")
}

// CocoaPods requires a version.
Expand All @@ -26,10 +26,23 @@ kotlin {
androidTarget("android") {
publishLibraryVariants("release")
}
// ios("ios")
ios()
jvm()
jvmToolchain(11)

cocoapods {
version = VERSION_NAME
summary = "emoji-google"
homepage = "https://github.com/vanniktech/Emoji"
name = "EmojiGoogle"

// framework {
// isStatic = true
// embedBitcode(BITCODE)
// export(project(":emoji"))
// }
}

sourceSets {
commonMain {
dependencies {
Expand All @@ -52,6 +65,12 @@ kotlin {
implementation libs.robolectric
}

iosMain.dependencies {
}

iosTest.dependencies {
}

jvmMain.dependencies {
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* Copyright (C) 2016 - Niklas Baudy, Ruben Gees, Mario Đanić and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.vanniktech.emoji.google

import com.vanniktech.emoji.EmojiCategory
import com.vanniktech.emoji.EmojiProvider
import com.vanniktech.emoji.google.category.ActivitiesCategory
import com.vanniktech.emoji.google.category.AnimalsAndNatureCategory
import com.vanniktech.emoji.google.category.FlagsCategory
import com.vanniktech.emoji.google.category.FoodAndDrinkCategory
import com.vanniktech.emoji.google.category.ObjectsCategory
import com.vanniktech.emoji.google.category.SmileysAndPeopleCategory
import com.vanniktech.emoji.google.category.SymbolsCategory
import com.vanniktech.emoji.google.category.TravelAndPlacesCategory

class GoogleEmojiProvider : EmojiProvider {
override val categories: Array<EmojiCategory>
get() = arrayOf(
SmileysAndPeopleCategory(),
AnimalsAndNatureCategory(),
FoodAndDrinkCategory(),
ActivitiesCategory(),
TravelAndPlacesCategory(),
ObjectsCategory(),
SymbolsCategory(),
FlagsCategory(),
)

override fun release() = Unit
}
Loading

0 comments on commit df3b271

Please sign in to comment.