class Bake::Create

Public Class Methods

checkFile(name) click to toggle source
# File lib/bake/options/create.rb, line 77
def self.checkFile(name)
  if File.exist?(name)
    puts "#{name} already exists"
    ExitHelper.exit(1)
  end
end
customTemplate() click to toggle source
# File lib/bake/options/create.rb, line 59
def self.customTemplate
  "Project default: Lib {\n"+
  self.header+
  "\n"+
  "  CustomConfig Lib {\n"+
  "    Dependency config: IncludeOnly\n"+
  "  }\n"+
  self.unitTestBase +
  "\n}\n"
end
exeTemplate() click to toggle source
# File lib/bake/options/create.rb, line 33
def self.exeTemplate
  "Project default: Main {\n"+
  self.header +
  self.includeOnly+
  "\n"+
  "  ExecutableConfig Main {\n"+
  "    Files \"src/**/*.cpp\"\n"+
  "    Dependency config: IncludeOnly\n"+
  "    DefaultToolchain GCC\n"+
  "  }\n"+
  "\n}\n"
end
header() click to toggle source
# File lib/bake/options/create.rb, line 8
def self.header
  "\n"+
  "  RequiredBakeVersion minimum: \"#{Bake::Version.number}\"\n"+
  "\n"+
  "  Responsible {\n"+
  "    Person \"#{ENV["USER"]}\"\n"+
  "  }\n"
end
includeOnly() click to toggle source
# File lib/bake/options/create.rb, line 17
def self.includeOnly
  "\n"+
  "  CustomConfig IncludeOnly {\n"+
  "    IncludeDir include, inherit: true\n"+
  "  }\n"
end
libTemplate() click to toggle source
# File lib/bake/options/create.rb, line 46
def self.libTemplate
  "Project default: Lib {\n"+
  self.header +
  self.includeOnly+
  "\n"+
  "  LibraryConfig Lib {\n"+
  "    Files \"src/**/*.cpp\"\n"+
  "    Dependency config: IncludeOnly\n"+
  "  }\n"+
  self.unitTestBase +
  "\n}\n"
end
mainTemplate() click to toggle source
# File lib/bake/options/create.rb, line 70
def self.mainTemplate
  "int main()\n"+
  "{\n"+
  "  return 0;\n"+
  "}\n"
end
proj(type) click to toggle source
# File lib/bake/options/create.rb, line 84
def self.proj(type)
  checkFile("Project.meta")
  checkFile("src/main.cpp") if (type == "exe")
  FileUtils::mkdir_p "src"
  FileUtils::mkdir_p "include"

  if (type == "lib")
    File.write("Project.meta", libTemplate);
  elsif (type == "exe")
    File.write("Project.meta", exeTemplate);
    File.write("src/main.cpp", mainTemplate);
  elsif (type == "custom")
    File.write("Project.meta", customTemplate);
  else
    puts "'--create' must be followed by 'lib', 'exe' or 'custom'"
    ExitHelper.exit(1)
  end

  puts "Project created."
  ExitHelper.exit(0)
end
unitTestBase() click to toggle source
# File lib/bake/options/create.rb, line 24
def self.unitTestBase
  "\n"+
  "  ExecutableConfig UnitTestBase {\n"+
  "    Files \"test/src/**/*.cpp\"\n"+
  "    Dependency config: Lib\n"+
  "    DefaultToolchain GCC\n"+
  "  }\n"
end