Browse Source

C project generator script

master
Taylor Bockman 5 years ago
parent
commit
c130589546
  1. 63
      dotfiles/bash/scripts/cgen.sh

63
dotfiles/bash/scripts/cgen.sh

@ -0,0 +1,63 @@
#! /usr/bin/env bash
name=$1
cmake_version=$2
c_standard=$3
if [ -z $name ]
then
echo "Name must be specified"
echo ""
echo "./cgen.sh <name> [cmake version] [C Standard]"
return -1
fi
if [ -z $cmake_version ]
then
echo "No CMake version supplied...defaulting to 3.15"
$cmake_version="3.15"
fi
if [ -z $c_standard ]
then
echo "No C Standard supplied...defaulting to 99"
fi
mkdir $name
mkdir $name/src
mkdir $name/include
cmake_config=$name/CMakeLists.txt
touch $cmake_config
echo "cmake_minimum_required(VERSION $version)" >> $cmake_config
echo "project($name)" >> $cmake_config
echo "set (CMAKE_C_STANDARD $c_standard)" >> $cmake_config
echo "" >> $cmake_config
echo "" >> $cmake_config
echo "file(GLOB SOURCE \${PROJECT_SOURCE_DIR}/src/*.c)"
echo "file(GLOB INCLUDE \${PROJECT_SOURCE_DIR}/include/*.h)"
echo "" >> $cmake_config
echo "" >> $cmake_config
echo "include_directories(\${PROJECT_SOURCE_DIR}/include)"
echo "" >> $cmake_config
echo "" >> $cmake_config
echo "# Controls debug printing based on the compiled binary mode - check with \#ifdef DEBUG_BUILD" >> $cmake_config
echo "IF(CMAKE_BUILD_TYPE MATCHES DEBUG)" >> $cmake_config
echo "message(\"-- Configuring debug build...\")" >> $cmake_config
echo "add_compile_definitions(DEBUG_BUILD)" >> $cmake_config
echo "ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)" >> $cmake_config
echo "" >> $cmake_config
echo "add_executable($name \${SOURCE} \${INCLUDE})" >> $cmake_config
git --version 2>&1 >/dev/null
GIT_IS_AVAILABLE=$?
if [ $GIT_IS_AVAILABLE -eq 0 ]
then
git init $name
fi
echo "Created project $name."
Loading…
Cancel
Save