Restructure files and migrate to Gradle-based build

This commit is contained in:
Daniel Wolf 2019-08-03 17:45:59 +02:00
parent e39cad514c
commit 558157ef85
57 changed files with 114 additions and 193 deletions

View File

@ -1,28 +0,0 @@
image: Visual Studio 2015
environment:
BOOST_ROOT: C:\Libraries\boost_1_66_0
# If the Gradle Daemon is used, AppVeyor waits forever for it to terminate
GRADLE_OPTS: -Dorg.gradle.daemon=false
init:
# Print Remote Desktop information for debugging porposes
- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
build_script:
- mkdir build
- cd build
- cmake .. -G "Visual Studio 14 2015"
- cmake --build . --config Release --target package
- cd %APPVEYOR_BUILD_FOLDER%
test_script:
- build\rhubarb\Release\runTests.exe
artifacts:
- path: build\rhubarb-lip-sync-*.zip
deploy:
provider: GitHub
release: $(APPVEYOR_REPO_TAG_NAME)
description: ''
auth_token:
secure: Gk7y8Cb9ImDBthgL56W1QMWDEp4oIcbUeKgXnkiBsy7G+V6H59MPXv0ZC7Zht8+3
artifact: /.*\.zip/
draft: true
on:
appveyor_repo_tag: true

7
.gitignore vendored
View File

@ -1,3 +1,6 @@
.vs/
.idea/
.gradle/
.vscode/
build/
*.user
out/
*.user

View File

@ -1,42 +0,0 @@
cmake_minimum_required(VERSION 3.2)
include(appInfo.cmake)
# Build and install main executable
add_subdirectory(rhubarb)
# Build and install extras
add_subdirectory("extras/AdobeAfterEffects")
add_subdirectory("extras/MagixVegas")
add_subdirectory("extras/EsotericSoftwareSpine")
# Install misc. files
install(
FILES README.adoc LICENSE.md CHANGELOG.md
DESTINATION .
)
# Configure CPack
function(get_short_system_name variable)
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
set(${variable} "OSX" PARENT_SCOPE)
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
set(${variable} "Win32" PARENT_SCOPE)
else()
set(${variable} "${CMAKE_SYSTEM_NAME}" PARENT_SCOPE)
endif()
endfunction()
set(CPACK_PACKAGE_NAME ${appName})
string(REPLACE " " "-" CPACK_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
get_short_system_name(CPACK_SYSTEM_NAME)
set(CPACK_PACKAGE_VERSION_MAJOR ${appVersionMajor})
set(CPACK_PACKAGE_VERSION_MINOR ${appVersionMinor})
set(CPACK_PACKAGE_VERSION_PATCH ${appVersionPatch})
set(CPACK_PACKAGE_VERSION ${appVersion})
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")
string(TOLOWER "${CPACK_PACKAGE_FILE_NAME}" CPACK_PACKAGE_FILE_NAME)
set(CPACK_GENERATOR ZIP)
# Run CPack
include(CPack)

View File

@ -1,8 +0,0 @@
cmake_minimum_required(VERSION 3.2)
set(appName "Rhubarb Lip Sync")
set(appVersionMajor 1)
set(appVersionMinor 10)
set(appVersionPatch 0)
set(appVersionSuffix "")
set(appVersion "${appVersionMajor}.${appVersionMinor}.${appVersionPatch}${appVersionSuffix}")

24
build.gradle.kts Normal file
View File

@ -0,0 +1,24 @@
plugins {
// Sets up standard lifecycle tasks like `build` and `assemble`.
// Also required for the Zip task to compute its archive file name.
base
}
group = "com.rhubarb_lip_sync"
version = "2.0.0-pre-alpha"
tasks {
val zip by creating(Zip::class) {
subprojects.forEach { dependsOn("${it.name}:assemble") }
for (subproject in subprojects) {
from(File(subproject.buildDir, "distributions")) {
into(if (subproject.name == "rhubarb") "" else subproject.name)
}
}
}
assemble {
dependsOn(zip)
}
}

View File

@ -1,11 +0,0 @@
cmake_minimum_required(VERSION 3.2)
set(afterEffectsFiles
"Rhubarb Lip Sync.jsx"
"README.adoc"
)
install(
FILES ${afterEffectsFiles}
DESTINATION "extras/AdobeAfterEffects"
)

View File

@ -1,8 +0,0 @@
# Directory is generated when importing Gradle project
/.idea/
*.iml
/.gradle/
/build/
/out/
/tmp/

View File

@ -1,18 +0,0 @@
cmake_minimum_required(VERSION 3.2)
add_custom_target(
rhubarbForSpine ALL
"./gradlew" "build"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Building Rhubarb for Spine through Gradle."
)
install(
DIRECTORY "build/libs/"
DESTINATION "extras/EsotericSoftwareSpine"
)
install(
FILES README.adoc
DESTINATION "extras/EsotericSoftwareSpine"
)

View File

@ -1,50 +0,0 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.io.File
plugins {
kotlin("jvm") version "1.3.41"
}
fun getVersion(): String {
// Dynamically read version from CMake file
val file = File(rootDir.parentFile.parentFile, "appInfo.cmake")
val text = file.readText()
val major = Regex("""appVersionMajor\s+(\d+)""").find(text)!!.groupValues[1]
val minor = Regex("""appVersionMinor\s+(\d+)""").find(text)!!.groupValues[1]
val patch = Regex("""appVersionPatch\s+(\d+)""").find(text)!!.groupValues[1]
val suffix = Regex("""appVersionSuffix\s+"(.*?)"""").find(text)!!.groupValues[1]
return "$major.$minor.$patch$suffix"
}
group = "com.rhubarb_lip_sync"
version = getVersion()
repositories {
mavenCentral()
jcenter()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
implementation("com.beust:klaxon:5.0.1")
implementation("org.apache.commons:commons-lang3:3.9")
implementation("no.tornado:tornadofx:1.7.19")
testImplementation("org.junit.jupiter:junit-jupiter:5.5.0")
testCompile("org.assertj:assertj-core:3.11.1")
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
tasks.test {
useJUnitPlatform()
}
tasks.withType<Jar> {
manifest {
attributes("Main-Class" to "com.rhubarb_lip_sync.rhubarb_for_spine.MainKt")
}
from(configurations.compileClasspath.get().map { if (it.isDirectory) it else zipTree(it) })
}

View File

@ -1 +0,0 @@
rootProject.name = "rhubarb-for-spine"

View File

@ -1,14 +0,0 @@
cmake_minimum_required(VERSION 3.2)
set(vegasFiles
"Debug Rhubarb.cs"
"Debug Rhubarb.cs.config"
"Import Rhubarb.cs"
"Import Rhubarb.cs.config"
"README.adoc"
)
install(
FILES ${vegasFiles}
DESTINATION "extras/MagixVegas"
)

View File

@ -1,6 +0,0 @@
#!/bin/sh
rm -rf build
mkdir build
cd build
cmake .. -G Xcode
cmake --build . --config Release --target package

View File

@ -1,5 +0,0 @@
rmdir /s /q build
mkdir build
cd build
cmake .. -G "Visual Studio 14 2015"
cmake --build . --config Release --target package

View File

@ -0,0 +1,12 @@
tasks {
var distDirectory = File(project.buildDir, "distributions")
val assemble by creating(Copy::class) {
from(listOf("Rhubarb Lip Sync.jsx", "README.adoc"))
into(distDirectory)
}
val build by creating {
dependsOn(assemble)
}
}

View File

@ -0,0 +1,50 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.3.41"
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
implementation("com.beust:klaxon:5.0.1")
implementation("org.apache.commons:commons-lang3:3.9")
implementation("no.tornado:tornadofx:1.7.19")
testImplementation("org.junit.jupiter:junit-jupiter:5.5.0")
testCompile("org.assertj:assertj-core:3.11.1")
}
tasks {
var distDirectory = File(project.buildDir, "distributions")
withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
test {
useJUnitPlatform()
}
val copyDoc by creating(Copy::class) {
from("README.adoc")
into(distDirectory)
}
assemble {
dependsOn(copyDoc)
}
jar {
destinationDirectory.set(distDirectory)
manifest {
attributes("Main-Class" to "com.rhubarb_lip_sync.rhubarb_for_spine.MainKt")
}
from(configurations.compileClasspath.get().map { if (it.isDirectory) it else zipTree(it) })
}
}

View File

Before

Width:  |  Height:  |  Size: 386 B

After

Width:  |  Height:  |  Size: 386 B

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 942 B

After

Width:  |  Height:  |  Size: 942 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,18 @@
tasks {
var distDirectory = File(project.buildDir, "distributions")
val assemble by creating(Copy::class) {
from(listOf(
"Debug Rhubarb.cs",
"Debug Rhubarb.cs.config",
"Import Rhubarb.cs",
"Import Rhubarb.cs.config",
"README.adoc"
))
into(distDirectory)
}
create("build") {
dependsOn(assemble)
}
}

5
settings.gradle.kts Normal file
View File

@ -0,0 +1,5 @@
rootProject.name = "rhubarb-lip-sync"
include("rhubarb-for-after-effects")
include("rhubarb-for-spine")
include("rhubarb-for-vegas")