-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·145 lines (95 loc) · 3.03 KB
/
build.sh
File metadata and controls
executable file
·145 lines (95 loc) · 3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/bin/bash
VERSION=1.3
PROJ_NAME=foxmake
DEB_CONTROL_PACKAGE_NAME=$PROJ_NAME
DEB_CONTROL_INSTALLED_SIZE=2796
DEB_CONTROL_MAINTAINER="Italo Herbert Siqueira Gabriel (italoherbert@outlook.com)"
DEB_CONTROL_DESCRIPTION="Trata-se de um software automatizador de tarefas de build em projetos C/C++"
APP_FILE_NAME=$PROJ_NAME
BUILD_FOLDER=build
APP_FOLDER=$PROJ_NAME-$VERSION-linux-x64
WINDOWS_APP_FOLDER=$PROJ_NAME-$VERSION-windows-x64
APP_DIR=$BUILD_FOLDER/$APP_FOLDER
WINDOWS_APP_DIR=$BUILD_FOLDER/$WINDOWS_APP_FOLDER
APP_FILE=$APP_DIR/$APP_FILE_NAME
DEB_APP_DIR=$APP_DIR-deb
DEB_CONTROL_FILE=$DEB_APP_DIR/DEBIAN/control
# LIMPANDO...
if [ -d "$APP_DIR" ]; then
rm -rf $APP_DIR
echo "Removido: $APP_DIR"
fi
if [ -d "$DEB_APP_DIR" ]; then
rm -rf $DEB_APP_DIR
echo "Removido: $DEB_APP_DIR"
fi
if [ -f "$APP_DIR.tar.gz" ]; then
rm "$APP_DIR.tar.gz"
echo "Removido: $APP_DIR.tar.gz"
fi
if [ -f "$WINDOWS_APP_DIR.zip" ]; then
rm "$WINDOWS_APP_DIR.zip"
echo "Removido: $WINDOWS_APP_DIR.zip"
fi
if [ -f "$APP_DIR.deb" ]; then
rm "$APP_DIR.deb"
echo "Removido: $APP_DIR.deb"
fi
mkdir -p $APP_DIR
mkdir -p $WINDOWS_APP_DIR
mkdir -p $DEB_APP_DIR
# COMPILANDO...
echo
echo Compilando...
./foxmake buildall --script=FoxMakefile -var target=release
echo
echo Compilando para windows...
./foxmake buildall --script=FoxMakefile-windows
# COPIANDO LIB E INCLUDE PASTAS PARA A PASTA DO APLICATIVO EM BUILD
cp -r lib/linux $APP_DIR/lib
cp -r lib/windows $WINDOWS_APP_DIR/lib
cp -r include $APP_DIR
cp -r include $WINDOWS_APP_DIR
# EMPACOTANDO VERSÃO x86_64 EM .TAR.GZ
cd $BUILD_FOLDER
echo
echo "Empacotando... $APP_DIR.tar.gz"
tar -czf "$APP_FOLDER.tar.gz" $APP_FOLDER
echo "Finalizado."
cd - &> /dev/null
echo
# EMPACOTANDO VERSÃO WINDOWS EM .ZIP
cd $BUILD_FOLDER
echo
echo "Empacotando... $WINDOWS_APP_DIR.zip"
zip -r -q "$WINDOWS_APP_FOLDER.zip" $WINDOWS_APP_FOLDER
echo "Finalizado."
cd - &> /dev/null
echo
# GERANDO ARQUIVO .DEB
# Copiando executável para pasta /usr/bin do .DEB
mkdir -p $DEB_APP_DIR/usr/bin
cp $APP_FILE $DEB_APP_DIR/usr/bin/$APP_FILE_NAME
# Copiando a static library do xutest para pasta /usr/lib do .DEB
mkdir -p $DEB_APP_DIR/usr/lib/x86_64-linux-gnu
cp $APP_DIR/lib/libxutest.a $DEB_APP_DIR/usr/lib/x86_64-linux-gnu/libxutest.a
# Copiando os headers para pasta /usr/include do .DEB
mkdir -p $DEB_APP_DIR/usr/include
cp -r $APP_DIR/include/* $DEB_APP_DIR/usr/include
# Gerando arquivo control do .DEB
mkdir -p $DEB_APP_DIR/DEBIAN
echo "Package: $DEB_CONTROL_PACKAGE_NAME" >> $DEB_CONTROL_FILE
echo "Version: $VERSION" >> $DEB_CONTROL_FILE
echo "Section: contrib" >> $DEB_CONTROL_FILE
echo "Architecture: amd64" >> $DEB_CONTROL_FILE
echo "Installed-Size: $DEB_CONTROL_INSTALLED_SIZE" >> $DEB_CONTROL_FILE
echo "Maintainer: $DEB_CONTROL_MAINTAINER" >> $DEB_CONTROL_FILE
echo "Description: $DEB_CONTROL_DESCRIPTION" >> $DEB_CONTROL_FILE
# Empacotando em .DEB
echo
echo "Empacotando... $APP_DIR.deb"
dpkg-deb -b "$DEB_APP_DIR/" "$APP_DIR.deb"
echo "Finalizado."
# BUILD CONCLUIDO
echo
echo "Build concluido!"