forked from WENO-OF/WENOEXT
-
Notifications
You must be signed in to change notification settings - Fork 3
/
.gitlab-copyLibs_and_distribute
executable file
·111 lines (85 loc) · 3.33 KB
/
.gitlab-copyLibs_and_distribute
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
#!/bin/bash
# Find all libraries and executables generated in this directory
# -------------------------------------
# Special for this directory
source ./etc/bashrc
# -------------------------------------
executables=()
libraries=()
file_list=()
while IFS= read -d $'\0' -r file ; do
file_list=("${file_list[@]}" "$file")
done < <(find -name "Make" -print0)
for file in "${file_list[@]}" ; do
$(grep -q dynamicCode "$file/files")
if [[ $? -ne 0 ]]; then
# Determine if it is a library or an executable
EXE_VAR=$(grep 'EXE = $(FOAM_USER_APPBIN)' "$file/files" | awk -F "/" '{print $2}' | awk -F "\$" '{print $1}')
DEVELOPMENT_OPTION=$(grep 'EXE = $(FOAM_USER_APPBIN)' "$file/files" | awk -F "/" '{print $2}' | awk -F "\$" '{print $2}')
if [[ $DEVELOPMENT_OPTION != "" ]]; then
EXE_VAR=${EXE_VAR}${IS_DEVELOPMENT_BRANCH}
else
EXE_VAR=${EXE_VAR}
fi
executables+=(${EXE_VAR})
LIB_VAR=$(grep 'LIB = $(FOAM_USER_LIBBIN)' "$file/files" | awk -F "/" '{print $2}' | awk -F "\$" '{print $1}')
DEVELOPMENT_OPTION=$(grep 'LIB = $(FOAM_USER_LIBBIN)' "$file/files" | awk -F "/" '{print $2}' | awk -F "\$" '{print $2}')
if [[ $DEVELOPMENT_OPTION != "" ]]; then
LIB_VAR=${LIB_VAR}${IS_DEVELOPMENT_BRANCH}
else
LIB_VAR=${LIB_VAR}
fi
libraries+=(${LIB_VAR})
fi
done
mkdir -p build/bin
for exe in "${executables[@]}"; do
[ -e "${FOAM_USER_APPBIN}/$exe" ] && cp -u ${FOAM_USER_APPBIN}/$exe build/bin
done
mkdir -p build/lib
for lib in "${libraries[@]}"; do
[ -e "${FOAM_USER_LIBBIN}/${lib}.so" ] && cp -u "${FOAM_USER_LIBBIN}/${lib}.so" build/lib
done
# -------------------------------------------------------------------------------
# Distribute executables and libraries
mkdir -p ${FOAM_USER_APPBIN}
for f in build/bin/*; do
bin="${f##*/}"
if [[ "$f" -nt "${FOAM_USER_APPBIN}/$bin" ]]; then
echo "Copy ${bin} to ${FOAM_USER_APPBIN}"
cp -u $f ${FOAM_USER_APPBIN}
fi
done
mkdir -p ${FOAM_USER_LIBBIN}
for f in build/lib/*; do
lib="${f##*/}"
if [[ "$f" -nt "${FOAM_USER_LIBBIN}/$lib" ]]; then
echo "Copy ${lib} to ${FOAM_USER_LIBBIN}"
cp -u $f ${FOAM_USER_LIBBIN}
fi
done
# -------------------------------------------------------------------------------
# Find all lnInclude and distribute
INCLUDE_DIR="build/includes"
mkdir -p ${INCLUDE_DIR}
lnInclude_list=()
while IFS= read -d $'\0' -r file ; do
lnInclude_list=("${lnInclude_list[@]}" "$file")
done < <( find -path "./build" -prune -o -name "lnInclude" -print0)
for file in "${lnInclude_list[@]}" ; do
lnInclude_Path=$(echo "$file" | sed -e 's/\.\///' | sed -e 's/lnInclude//')
mkdir -p "${INCLUDE_DIR}/${lnInclude_Path}"
echo "Copy ${lnInclude_Path}lnInclude to ${INCLUDE_DIR}/${lnInclude_Path}"
cp -r "${lnInclude_Path}lnInclude" ${INCLUDE_DIR}/${lnInclude_Path}
done
echo ""
echo "Distribute lnInclude:"
lnInclude_toCopy=()
while IFS= read -d $'\0' -r file ; do
lnInclude_toCopy=("${lnInclude_toCopy[@]}" "$file")
done < <( find ./build -name "lnInclude" -print0)
for file in "${lnInclude_toCopy[@]}"; do
PATH_TO_COPY=$(echo "$file" | sed -e 's/\.\/build\/includes/\./' | sed -e 's/lnInclude//')
echo "Copy ${file} to ${PATH_TO_COPY}"
cp -r ${file} ${PATH_TO_COPY}
done