diff --git a/Base/res/devel/templates/cpp-basic.postcreate b/Base/res/devel/templates/cpp-basic.postcreate index 497471f452..caa7f94cc9 100644 --- a/Base/res/devel/templates/cpp-basic.postcreate +++ b/Base/res/devel/templates/cpp-basic.postcreate @@ -1,19 +1,21 @@ #!/bin/sh -echo "PROGRAM = $1" >> $2/Makefile -echo "OBJS = main.o" >> $2/Makefile -echo "CXXFLAGS = -g -std=c++2a" >> $2/Makefile -echo "" >> $2/Makefile -echo "all: \$(PROGRAM)" >> $2/Makefile -echo "" >> $2/Makefile -echo "\$(PROGRAM): \$(OBJS)" >> $2/Makefile -echo " \$(CXX) -o \$@ \$(OBJS)" >> $2/Makefile -echo "" >> $2/Makefile -echo "%.o: %.cpp" >> $2/Makefile -echo " \$(CXX) \$(CXXFLAGS) -o \$@ -c \$< " >> $2/Makefile -echo "" >> $2/Makefile -echo "clean:" >> $2/Makefile -echo " rm \$(OBJS) \$(PROGRAM)" >> $2/Makefile -echo "" >> $2/Makefile -echo "run:" >> $2/Makefile -echo " ./\$(PROGRAM)" >> $2/Makefile +echo > $2/Makefile <<-EOF +PROGRAM = $1 +OBJS = main.o +CXXFLAGS = -g -std=c++2a + +all: \$(PROGRAM) + +\$(PROGRAM): \$(OBJS) + \$(CXX) -o \$@ \$(OBJS) + +%.o: %.cpp + \$(CXX) \$(CXXFLAGS) -o \$@ -c \$< + +clean: + rm \$(OBJS) \$(PROGRAM) + +run: + ./\$(PROGRAM) +EOF diff --git a/Base/res/devel/templates/cpp-gui.postcreate b/Base/res/devel/templates/cpp-gui.postcreate index 822de7f1f7..141dd4d3b3 100644 --- a/Base/res/devel/templates/cpp-gui.postcreate +++ b/Base/res/devel/templates/cpp-gui.postcreate @@ -1,19 +1,22 @@ #!/bin/sh -echo "PROGRAM = $1" >> $2/Makefile -echo "OBJS = main.o" >> $2/Makefile -echo "CXXFLAGS = -lgui -g -std=c++2a" >> $2/Makefile -echo "" >> $2/Makefile -echo "all: \$(PROGRAM)" >> $2/Makefile -echo "" >> $2/Makefile -echo "\$(PROGRAM): \$(OBJS)" >> $2/Makefile -echo " \$(CXX) \$(CXXFLAGS) -o \$@ \$(OBJS)" >> $2/Makefile -echo "" >> $2/Makefile -echo "%.o: %.cpp" >> $2/Makefile -echo " \$(CXX) \$(CXXFLAGS) -o \$@ -c \$< " >> $2/Makefile -echo "" >> $2/Makefile -echo "clean:" >> $2/Makefile -echo " rm \$(OBJS) \$(PROGRAM)" >> $2/Makefile -echo "" >> $2/Makefile -echo "run:" >> $2/Makefile -echo " ./\$(PROGRAM)" >> $2/Makefile +echo > $2/Makefile <<-EOF +PROGRAM = $1 +OBJS = main.o +CXXFLAGS = -g -std=c++2a +LDFLAGS = -lgui + +all: \$(PROGRAM) + +\$(PROGRAM): \$(OBJS) + \$(CXX) \$(LDFLAGS) -o \$@ \$(OBJS) + +%.o: %.cpp + \$(CXX) \$(CXXFLAGS) -o \$@ -c \$< + +clean: + rm \$(OBJS) \$(PROGRAM) + +run: + ./\$(PROGRAM) +EOF diff --git a/Base/res/devel/templates/cpp-library.postcreate b/Base/res/devel/templates/cpp-library.postcreate index 3f4a254ebb..ba62fec9b3 100644 --- a/Base/res/devel/templates/cpp-library.postcreate +++ b/Base/res/devel/templates/cpp-library.postcreate @@ -5,45 +5,51 @@ # $3: Project name, namespace safe # Generate Makefile -echo "LIBRARY = $1.so" >> $2/Makefile -echo "OBJS = Class1.o" >> $2/Makefile -echo "CXXFLAGS = -g -std=c++2a" >> $2/Makefile -echo "" >> $2/Makefile -echo "all: \$(LIBRARY)" >> $2/Makefile -echo "" >> $2/Makefile -echo "\$(LIBRARY): \$(OBJS)" >> $2/Makefile -echo " \$(CXX) -shared -o \$@ \$(OBJS)" >> $2/Makefile -echo "" >> $2/Makefile -echo "%.o: %.cpp" >> $2/Makefile -echo " \$(CXX) \$(CXXFLAGS) -fPIC -o \$@ -c \$< " >> $2/Makefile -echo "" >> $2/Makefile -echo "clean:" >> $2/Makefile -echo " rm \$(OBJS) \$(LIBRARY)" >> $2/Makefile -echo "" >> $2/Makefile +echo > $2/Makefile <<-EOF +LIBRARY = $1.so +OBJS = Class1.o +CXXFLAGS = -g -std=c++2a + +all: \$(LIBRARY) + +\$(LIBRARY): \$(OBJS) + \$(CXX) -shared -o \$@ \$(OBJS) + +%.o: %.cpp + \$(CXX) \$(CXXFLAGS) -fPIC -o \$@ -c \$< + +clean: + rm \$(OBJS) \$(LIBRARY) + +EOF # Generate 'Class1' header file -echo "#pragma once" >> $2/Class1.h -echo "" >> $2/Class1.h -echo "namespace $3 {" >> $2/Class1.h -echo "" >> $2/Class1.h -echo "class Class1 {" >> $2/Class1.h -echo "public:" >> $2/Class1.h -echo " void hello();" >> $2/Class1.h -echo "};" >> $2/Class1.h -echo "" >> $2/Class1.h -echo "}" >> $2/Class1.h -echo "" >> $2/Class1.h +echo > $2/Class1.h <<-EOF +#pragma once + +namespace $3 { + +class Class1 { +public: + void hello(); +}; + +} + +EOF # Generate 'Class1' source file -echo "#include \"Class1.h\"" >> $2/Class1.cpp -echo "#include " >> $2/Class1.cpp -echo "" >> $2/Class1.cpp -echo "namespace $3 {" >> $2/Class1.cpp -echo "" >> $2/Class1.cpp -echo "void Class1::hello()" >> $2/Class1.cpp -echo "{" >> $2/Class1.cpp -echo " printf(\"Hello friends! :^)\\n\");" >> $2/Class1.cpp -echo "}" >> $2/Class1.cpp -echo "" >> $2/Class1.cpp -echo "}" >> $2/Class1.cpp -echo "" >> $2/Class1.cpp +echo > $2/Class1.cpp <<-EOF +#include "Class1.h" +#include + +namespace $3 { + +void Class1::hello() +{ + printf("Hello friends! :^)\\n"); +} + +} + +EOF