wooga / atlas-unity-version-manager Goto Github PK
View Code? Open in Web Editor NEWa gradle plugin to manage unity version installation
License: Apache License 2.0
a gradle plugin to manage unity version installation
License: Apache License 2.0
The idea behind this code is inherently broken. We can't really decuce the components from the selected build target. There are only a handfull of targets which have been stable over the last few years (ios
, android
, webgl
).
The BuildTarget
enum in Unity is changing or can change from version to version. Even worth, the component values are also bound to a Unity version. So one Unity has the component windows-mono
the next one uses a different name.
A custom task derived from UvmInstallUnity
can become up-to-date
. This leads issues when the desired Unity installation got removed after the last run of the task or components got deleted.
UvmInstallUnity
task installs unity again
task claims to be up-to-date
Unity >2019 ships with bundled android sdk, android ndk and java jdk components. These components are still optional but to find the correct version for each unity version is hard.
As an example Unity 2019 needs android ndk r16b
and Unity 2019.3 needs r19
.
We should make sure to also install these components.
There is ongoing work in https://github.com/Larusso/unity-version-manager to support a better installation routine by providing a list of module ids. These ids are not listable at the moment so this is a blocker.
The unity modules.json
marks these support modules with a parent
and sync
key. The value for parent android
which is the module id for the android build support component. All other modules have a common sync
key. It should be possible to fetch a list of all modules based on parent
, sync
keys.
excerpt modules.json
{
"id": "android-sdk-ndk-tools",
"name": "Android SDK & NDK Tools",
"description": "Android SDK & NDK Tools 26.1.1",
"downloadUrl": "https://dl.google.com/android/repository/sdk-tools-darwin-4333796.zip",
"category": "Platforms",
"installedSize": 174000000,
"downloadSize": 148000000,
"visible": true,
"sync": "Android Build Support",
"selected": true,
"destination": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/SDK",
"parent": "android",
"eulaUrl1": "https://dl.google.com/dl/android/repository/repository2-1.xml",
"eulaLabel1": "Android SDK and NDK License Terms from Google",
"eulaMessage": "Please review and accept the license terms before downloading and installing Android's SDK and NDK."
}, {
"id": "android-sdk-platform-tools",
"name": "Android SDK Platform Tools",
"description": "Android SDK Platform Tools 28.0.1",
"downloadUrl": "https://dl.google.com/android/repository/platform-tools_r28.0.1-darwin.zip",
"category": "Platforms",
"installedSize": 15700000,
"downloadSize": 4550000,
"visible": false,
"sync": "android-sdk-ndk-tools",
"selected": true,
"destination": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/SDK"
}, {
"id": "android-sdk-build-tools",
"name": "Android SDK Build Tools",
"description": "Android SDK Build Tools 28.0.3",
"downloadUrl": "https://dl.google.com/android/repository/build-tools_r28.0.3-macosx.zip",
"category": "Platforms",
"installedSize": 120000000,
"downloadSize": 52600000,
"visible": false,
"sync": "android-sdk-ndk-tools",
"selected": true,
"destination": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/SDK/build-tools",
"renameTo": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/SDK/build-tools/28.0.3",
"renameFrom": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/SDK/build-tools/android-9"
}, {
"id": "android-sdk-platforms",
"name": "Android SDK Platforms",
"description": "Android SDK Platforms 28",
"downloadUrl": "https://dl.google.com/android/repository/platform-28_r06.zip",
"category": "Platforms",
"installedSize": 121000000,
"downloadSize": 60600000,
"visible": false,
"sync": "android-sdk-ndk-tools",
"selected": true,
"destination": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/SDK/platforms",
"renameTo": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/SDK/platforms/android-28",
"renameFrom": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/SDK/platforms/android-9"
}, {
"id": "android-ndk",
"name": "Android NDK",
"description": "Android NDK r19",
"downloadUrl": "https://dl.google.com/android/repository/android-ndk-r19-darwin-x86_64.zip",
"category": "Platforms",
"installedSize": 2700000000,
"downloadSize": 770000000,
"visible": false,
"sync": "android-sdk-ndk-tools",
"selected": true,
"destination": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/NDK",
"renameTo": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/NDK",
"renameFrom": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19"
}, {
"id": "android-open-jdk",
"name": "OpenJDK",
"description": "Android Open JDK 8u172-b11",
"downloadUrl": "http://download.unity3d.com/download_unity/open-jdk/open-jdk-mac-x64/jdk8u172-b11_4be8440cc514099cfe1b50cbc74128f6955cd90fd5afe15ea7be60f832de67b4.zip",
"category": "Platforms",
"installedSize": 72700000,
"downloadSize": 165000000,
"visible": true,
"selected": true,
"parent": "android",
"sync": "Android Build Support",
"destination": "{UNITY_PATH}/PlaybackEngines/AndroidPlayer/OpenJDK"
}
This should be generic for other platforms as well.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.