mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-27 08:10:08 +00:00
Added Cmaker plugin
This commit is contained in:
parent
a3c579bf27
commit
13373e0e92
3 changed files with 80 additions and 0 deletions
49
plugins/Cmaker/Cmaker.plugin.zsh
Normal file
49
plugins/Cmaker/Cmaker.plugin.zsh
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
alias cjump="nvim $(mdfind -onlyin . -name 'main' | grep -A 1 /Users)"
|
||||||
|
|
||||||
|
alias clist="mdfind -onlyin . -interpret .cpp & mdfind -onlyin . -interpret .cc"
|
||||||
|
|
||||||
|
function cgen(){
|
||||||
|
mkdir $1
|
||||||
|
cd $1
|
||||||
|
touch CMakeLists.txt
|
||||||
|
cat ~/.oh-my-zsh/custom/plugins/cMaker/ListTemplate.txt >> CMakeLists.txt
|
||||||
|
mkdir src
|
||||||
|
cd src
|
||||||
|
touch main.cpp
|
||||||
|
cd ../..
|
||||||
|
}
|
||||||
|
|
||||||
|
function crun(){
|
||||||
|
#VAR=${1:-.}
|
||||||
|
cd $1
|
||||||
|
cmake .
|
||||||
|
cmake --build .
|
||||||
|
}
|
||||||
|
|
||||||
|
function cbin(){
|
||||||
|
cbuild CPP
|
||||||
|
cat $1 >> CPP/src/main.cpp
|
||||||
|
crun CPP
|
||||||
|
mv cpc ../
|
||||||
|
cd ..
|
||||||
|
rm -r CPP
|
||||||
|
}
|
||||||
|
|
||||||
|
function cput(){
|
||||||
|
mv $1/*(DN) $2/
|
||||||
|
}
|
||||||
|
|
||||||
|
function ccomp(){
|
||||||
|
cbuild qwertyu
|
||||||
|
cd qwertyu/src
|
||||||
|
rm main.cpp
|
||||||
|
cd ../..
|
||||||
|
mv $1/*(DN) qwertyu/src/
|
||||||
|
crun qwertyu
|
||||||
|
mv cpc ../
|
||||||
|
rm -r qwertyu
|
||||||
|
}
|
||||||
|
|
||||||
|
function ctemp(){
|
||||||
|
open ~/.oh-my-zsh/custom/plugins/cMaker/ListTemplate.txt
|
||||||
|
}
|
8
plugins/Cmaker/ListTemplate.txt
Normal file
8
plugins/Cmaker/ListTemplate.txt
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
cmake_minimum_required(VERSION 3.15)
|
||||||
|
project(wat)
|
||||||
|
cmake_minimum_required(VERSION 3.15)
|
||||||
|
add_executable(cpc /Users/aadipalnitkar/c++/wat/src/main.cpp)
|
||||||
|
#find_package()
|
||||||
|
#target_incldue_directories()
|
||||||
|
#target_link_directories()
|
||||||
|
#target_link_libraries()
|
23
plugins/Cmaker/README.md
Normal file
23
plugins/Cmaker/README.md
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Cmaker
|
||||||
|
An oh-my-zsh plugin to make using cmake easier.
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
Cmaker uses a template text file located in the ```~/.oh-my-zsh/custom/plugins/cMaker``` directory to create a CMakeLists.txt file which will act as a config file when commands like ```cgen```,```ccomp``` and ```cbin``` are run. You can use ```ctemp``` to edit the template file or you can use ```cgen``` and then edit the CMakeLists.txt file after it has been generated. However, this not possible with commands like ```ccomp``` and ```cbin``` as they instantly run the code after generating the cmake files. In that case, you mest edit the template. A basic template has already been setup for you.
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
* ```cjump``` -> If you are in the directory of your project ```cjump``` will open the 'main' file in your project. No arguements for this commands
|
||||||
|
* ```clist``` -> ```clist``` will list every file ending with .cpp or .cc in your current directory. No arguements for this commands
|
||||||
|
* ```cgen``` -> Creates the ```CMakeLists.txt``` file (with basic configs allowing you to run instantly) as well as the src directory along with main.cpp in the src. Usage : ```cgen <project name>``
|
||||||
|
* ```crun``` -> This will produce a binary file after you have used ```cgen``` and written in the main.cpp file. Use ```crun <directory name>```
|
||||||
|
* ```cbin``` -> This will instantly create a binary file called cpc. Pass filename as an arguement : ```cbin <file path>```
|
||||||
|
* ```cput``` -> Moves all files from one directory to another. Usage : ```cput <directory> <directory to move files to>```
|
||||||
|
* ```ccomp``` -> Runs a directory of cpp files containing main.cpp and which are part of one project. Usage : ```ccomp <dir name>```
|
||||||
|
* ```ctemp``` -> Allows you to edit the template with which CMakeLists.txt will be created. No arguements required
|
||||||
|
|
||||||
|
## Notes:
|
||||||
|
* cbuild | Make sure your project name doesnt conflict with other directory names.
|
||||||
|
* cbin | This only works with single files but is faster than ccomp.
|
||||||
|
* ccomp | Make sure that you don't have a directory called qwertyu in your current dir when you're running this.
|
||||||
|
* This plugin can only be used to generate templates for binary projects not library projects.
|
||||||
|
|
||||||
|
***Created by Aadi P***
|
Loading…
Reference in a new issue