diff --git a/build.gradle b/build.gradle index 2097a0c..054a872 100644 --- a/build.gradle +++ b/build.gradle @@ -46,6 +46,8 @@ if (gitInfo.tag && gitInfo.tag[0] == 'v') { project.ext.revoiceVersionInfo = versionInfo project.version = versionInfo.asVersion() +apply from: 'publish.gradle' + task wrapper(type: Wrapper) { gradleVersion = '2.4' } diff --git a/publish.gradle b/publish.gradle new file mode 100644 index 0000000..8a1c86f --- /dev/null +++ b/publish.gradle @@ -0,0 +1,39 @@ +import org.doomedsociety.gradlecpp.GradleCppUtils +import org.apache.commons.io.FilenameUtils + +void _copyFileToDir(String from, String to) { + def dst = new File(project.file(to), FilenameUtils.getName(from)) + GradleCppUtils.copyFile(project.file(from), dst, false) +} + +void _copyFile(String from, String to) { + GradleCppUtils.copyFile(project.file(from), project.file(to), false) +} + +task publishPrepareFiles << { + def pubRootDir = project.file('publish/publishRoot') + if (pubRootDir.exists()) { + if (!pubRootDir.deleteDir()) { + throw new RuntimeException("Failed to delete ${pubRootDir}") + } + } + + pubRootDir.mkdirs() + + project.file('publish/publishRoot/revoice/bin/Windows').mkdirs() + project.file('publish/publishRoot/revoice/bin/Linux').mkdirs() + + _copyFileToDir('publish/revoice_mm.dll', 'publish/publishRoot/revoice/bin/Windows/') + _copyFile('publish/librevoice_mm_i386.so', 'publish/publishRoot/revoice/bin/Linux/revoice_mm_i386.so') +} + +task publishPackage(type: Zip, dependsOn: 'publishPrepareFiles') { + baseName = "revoice_${project.version}" + destinationDir file('publish') + from 'publish/publishRoot/revoice' +} + +task doPackage { + dependsOn 'publishPackage' + +}