add Gradle Debian Linux packaging

This commit is contained in:
Juraj Michalek
2014-04-28 08:10:46 +02:00
parent dcb66c1847
commit 90d862d0c7
10 changed files with 158 additions and 6 deletions

View File

@@ -68,8 +68,72 @@ How to run:
make
./helloworld
Gradle
------
Gradle basics and C plugin
--------------------------
### 00-empty-project ###
Empty gradle project.
How to run:
gradle tasks
### 01-hello-task ###
Simple task to print string during build.
How to run:
gradle tasks
gradle hello
### 02-c-plugin ###
Simple usage C plugin. There is no working C code in this example.
How to run:
gradle tasks
### 03-executable ###
Gradle with C plugin with simple Hello application.
How to run (Shell):
gradle mE
cd build/binaries/mainExecutable
./main
How to run (PowerShell):
gradle mE
cd build\binaries\mainExecutable
.\main.exe
### 04-visua-studio ###
Gradle C plugin example with support for Visual Studio solution files.
How to run (PowerShell):
gradle mainVisualStudio
ii mainExe.sln
### 05-debian-package ###
Gradle plugin for packaging Debian/Ubuntu package. Gradle downloads plugin from repository.
How to run:
gradle helloExecutable prepare buildDeb
Debian package is available in directory build.
Gradle C++ plugin
-----------------
### 01-hello-muni ###
@@ -84,7 +148,7 @@ Note for Visual Studio 2013: Use Gradle at least night build 1.10-20131122230018
How to run:
cd gradle/01-hello-muni
cd gradle-cpp-plugin/01-hello-muni
gradle mainExecutable
cd build/binaries/mainExecutable
./01-hello-muni
@@ -102,7 +166,7 @@ support.
How to run:
cd gradle/02-hello-muni-with-gradle-wrapper
cd gradle-cpp-plugin/02-hello-muni-with-gradle-wrapper
./gradlew mainExecutable (or .\gradle.bat mainExecutable for PowerShell)
cd build/binaries/mainExecutable
./02-hello-muni-with-gradle-wrapper
@@ -114,7 +178,7 @@ This example shows how to update build script to add debug flags for compilers l
How to run:
cd gradle/03-hello-muni-with-debug
cd gradle-cpp-plugin/03-hello-muni-with-debug
gradle mainExecutable
cd build/binaries/mainExecutable
./03-hello-muni-with-debug

View File

@@ -0,0 +1,45 @@
import org.gradle.api.publish.maven.MavenPublication
buildscript {
repositories {
maven {
url "http://dl.bintray.com/gesellix/gradle-plugins"
}
mavenCentral()
mavenLocal()
}
dependencies {
classpath "de.gesellix:gradle-debian-plugin:12"
}
}
apply plugin: 'maven'
apply plugin: 'pkg-debian'
apply plugin: 'c'
version = "1.0.0"
executables {
hello {
}
}
task prepare(type: Copy) {
description "Copy files to Linux directory layout"
from "build/binaries/helloExecutable"
into "build/linux/usr/bin"
}
debian {
packagename = "hello-fimuni"
publications = ['fimuni']
controlDirectory = "$projectDir/src/main/resources/control"
changelogFile = "$projectDir/src/main/resources/txt/changelog.txt"
data {
def baseDir = "$buildDir/linux"
dir {
name = baseDir
}
}
}

View File

@@ -0,0 +1,7 @@
#include <stdio.h>
int main(int argc, char** argv){
printf("Hello FI MUNI!\n");
return 0;
}

View File

@@ -0,0 +1 @@
/etc/default/hello-fimuni

View File

@@ -0,0 +1,11 @@
Source: hello-fimuni
Section: web
Priority: optional
Version: 1.0.0
Maintainer: Juraj Michalek <juraj.michalek@ysoft.com>
Homepage: http://www.ysoft.com/
Package: hello-fimuni
Architecture: all
Depends:
Description: Hello FI MUNI
Example of Linux packaging for Gradle.

View File

@@ -0,0 +1,5 @@
#!/bin/sh
set -e
# Post installation script - executed at the last phase of installation

View File

@@ -0,0 +1,4 @@
#!/bin/sh
set -e
# Post remove script

View File

@@ -0,0 +1,6 @@
#!/bin/sh
set -e
# Pre-uninstallation script

View File

@@ -0,0 +1,2 @@

View File

@@ -20,7 +20,8 @@ executables {
binaries.all {
if (toolChain in VisualCpp) {
cCompiler.args "/MD"
linker.args "/SUBSYSTEM:CONSOLE", "/LIBPATH:../build/lib/", "SDL2main.lib", "SDL2.lib"
linker.args "/SUBSYSTEM:CONSOLE", "/LIBPATH:../build/lib/",
"SDL2main.lib", "SDL2.lib"
} else if (toolChain in Gcc) {
linker.args "-lSDL2"
}
@@ -28,3 +29,9 @@ executables {
}
}
task prepare(type: Copy) {
description "Copy DLL dependencies"
from "../build/lib/"
into "build/binaries/mainExecutable"
}