unknownjoe796 / kbuild Goto Github PK
View Code? Open in Web Editor NEWA build library instead of a build system.
License: Apache License 2.0
A build library instead of a build system.
License: Apache License 2.0
Depends on issue #6
Add an interface that allows you to import typescript libraries from NPM
It would be nice to include things like JCenter and JitPack extremely easily. This could be done super easily like this:
import org.apache.maven.model.Model
...
Model().apply {
repositories = listOf(Repositories.jcenter, Repositories.jitpack)
}
I'd recommend the creation of:
object Repositories {
val jcenter: Repository = ...
val jitpack: Repository = ...
}
This is really easy to do, but this is a first good task for somebody else to take who wants to get familiar with the project.
Don't forget to create a unit test that uses it!
It is a common requirement in build files to access authentication credentials for uploading and deploying things.
Current interface idea:
object Keychain {
var file = File(System.getProperty("user.home"))
operator fun get(key: String): String { ... }
operator fun set(key: String, value: String): String { ... }
}
This accesses an encrypted file.
The first time the Keychain is accessed, the system will request the encryption password from standard input, repeating until its correct or the program is manually terminated.
Modules for Kotlin Native will take some serious thought, as they have a large number of targets. I think we should probably do an individual project object per target.
This will also have to download the current version of Kotlin Native if it is not available, ideally into the same location the Gradle plugin installs it.
I'll be creating an interface that, when implemented, adds a function to get IntelliJ project files set up.
I'll be referencing the Skate Kotlin project for creating JVM IntelliJ project files, as well as referencing the project files created by IntelliJ when using a multiplatform system. This needs to work for all JAR library types.
Some specifications:
com.ivieleague.kbuild.android
AndroidModule
prepareResources()
, intended to be used before editingHasMavenInformation
Possibilities for Implementation:
Things you can reference:
This one shouldn't be too hard, though it will be harder than issue #5.
You will probably need the following to work on this:
We need JUnit support.
My recommended path is this:
HasJvmJars
module as a valuetest()
, which runs all of the teststest(classOrTestName: String)
, which runs a subset of testsGoals:
It needs to be possible to deploy any object with HasMavenInformation
to a Maven repository, as well as to deploy to Maven local (.m2/repository).
There are multiple possibilities for this; I imagine the best one looks something like this:
val myRemoteRepository = RemoteRepository("bintray/joseph", "https://....")
object MyProject : HasMavenInformation ... { ... }
myRemoteRepository.push(MyProject)
Any thoughts?
Create an interface called KotlinJSModule
which has HasJarLibraries
.
I don't know all of the details of how this should look; I leave it to whoever works on this issue.
Depends on issue #6
Should probably use something like Webpack, will need to have access to all of the dependencies
Some thoughts:
We need to be able to easily declare a dependency on another module.
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.