-
Notifications
You must be signed in to change notification settings - Fork 0
/
creatcpp
executable file
·111 lines (81 loc) · 2.18 KB
/
creatcpp
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
createPremakeFile()
{
projectName=$1
echo "workspace \"$projectName\""
echo
echo "architecture \"x64\""
echo "configurations"
echo "{"
echo " \"Debug\","
echo " \"Release\""
echo "}"
echo
echo "project \"$projectName\""
echo ""
echo " kind \"ConsoleApp\""
echo " language \"C++\""
echo " cppdialect \"c++17\""
echo " location \"%{prj.name}\""
echo " targetdir \"bin/bin/%{cfg.name}_%{cfg.architecture}\""
echo " objdir \"bin/obj/%{cfg.name}_%{cfg.architecture}\""
echo " files"
echo " {"
echo " \"%{prj.name}/src/**.cpp\""
echo " }"
echo "filter \"configurations:Debug\""
echo " symbols \"On\""
echo "filter \"configurations:Release\""
echo " optimize \"On\""
}
createRunScript()
{
file=$1
executable=$2
prepascript $file
echo 'if test $# = 0; then' >> $file
echo " config=Debug" >> $file
echo "else" >> $file
echo ' config=$1' >> $file
echo "fi" >> $file
echo "clear" >> $file
echo "./bin/bin/\$config*/$executable" >> $file
}
createBuildScript()
{
prepascript $1
file=$1
echo 'if test $# = 0; then' >> $file
echo " config=debug" >> $file
echo "else" >> $file
echo ' config=$1' >> $file
echo "fi" >> $file
echo 'logfile=buildlog' >> $file
echo "premake5 gmake2" >> $file
echo 'make config=$config 2> $logfile' >> $file
echo "size=\$(wc -c \$logfile | awk '{print \$1}')" >> $file
echo 'if test $size != 0; then' >> $file
echo " open \$logfile" >> $file
echo "fi" >> $file
}
createClearProjScript()
{
file=$1
prepascript $file
echo "rm -r bin" >> $file
echo "rm */Makefile Makefile" >> $file
}
########################## main program ##########################
if test $# = 0; then
echo "problem no input"
exit 1
fi
projectName=$1
mkdir $projectName
mkdir $projectName/scripts
createPremakeFile $projectName > $projectName/premake5.lua
createRunScript $projectName/scripts/run $projectName
createBuildScript $projectName/scripts/build
createClearProjScript $projectName/scripts/clearproj
# Running visual studio code
code $projectName