Skip to content

Instantly share code, notes, and snippets.

@fpersson
Created May 20, 2015 19:57
Show Gist options
  • Save fpersson/9ababe3c9dd7829bc5ba to your computer and use it in GitHub Desktop.
Save fpersson/9ababe3c9dd7829bc5ba to your computer and use it in GitHub Desktop.
A hard way to write Hello World i Bash or a easy way to create a c++ project
#!/bin/bash
############################################
# Name: create.sh
# Usage: ./create.sh app-name
############################################
PROJECTNAME=$1
WORKINGDIR=$HOME/development/$PROJECTNAME
SRCDIR=$WORKINGDIR/src
BUILDIR=$WORKINGDIR/build-native
mkdir -p $SRCDIR
mkdir -p $BUILDIR
touch $WORKINGDIR/CMakeLists.txt
touch $WORKINGDIR/readme.md
touch $SRCDIR/main.cpp
touch $SRCDIR/$PROJECTNAME.cpp
touch $SRCDIR/$PROJECTNAME.h
echo -e "#include \"$PROJECTNAME.h\" \n" > $SRCDIR/main.cpp
echo -e "int main(int argc, char * argv[]){\n\t$PROJECTNAME app;\n\tapp.exec();\n\treturn 0;\n}\n" >> $SRCDIR/main.cpp
echo -e "#ifndef ${PROJECTNAME^^}_H\n#define ${PROJECTNAME^^}_H\n\n#include <iostream>\n" > $SRCDIR/$PROJECTNAME.h
echo -e "class $PROJECTNAME{\npublic:\n\t$PROJECTNAME(){;}\n\tvoid exec();\nprivate:\n};\n#endif" >> $SRCDIR/$PROJECTNAME.h
echo -e "#include \"$PROJECTNAME.h\"\n" > $SRCDIR/$PROJECTNAME.cpp
echo -e "void $PROJECTNAME::exec(){\n\tstd::cout << \"Hello, world!\" << std::endl;\n}" >> $SRCDIR/$PROJECTNAME.cpp
echo -e "cmake_minimum_required(VERSION 2.8)\nproject($PROJECTNAME)\nADD_DEFINITIONS( -std=c++11 )\nadd_executable($PROJECTNAME src/$PROJECTNAME.cpp src/$PROJECTNAME.cpp src/main.cpp)\ntarget_link_libraries($PROJECTNAME)\n" > $WORKINGDIR/CMakeLists.txt
cd $BUILDIR
cmake ..
cd $WORKINGDIR
make -C ./build-native
$BUILDIR/$PROJECTNAME
#kate $SRCDIR/main.cpp $SRCDIR/$1.h $SRCDIR/$1.cpp $WORKINGDIR/CMakeLists.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment