CToolKit to manipulate CPipeLines and Repos
Project description
CToolkit
is An Python Package to manipulate C/C++ buildings and PipeLines providing easy automation tools to increase your code pipelines with amalgamations, black box testing, and readme replacment
Installation from scratch
clone the repo into your machine with:
git clone https://github.com/OUIsolutions/CTolkitBuild.git
Then install with:
cd CTolkitBuild/
pip install .
Installation from github
type the following comand to install from github
pip install git+https://github.com/OUIsolutions/CTolkitBuild.git
Amalgamation System
for amalgamate an C lib its super easy, just call
import CToolKit as ct
STARTER = f'test.h'
OUTPUT = 'amalgamated.h'
amalgamated_code = ct.generate_amalgamated_code(STARTER)
with open(OUTPUT,'w') as arq:
arq.write(amalgamated_code)
or even more implicit:
import CToolKit as ct
STARTER = f'CTextEngine/CTextEngineMain.h'
OUTPUT = 'amalgamated.h'
amalgamated_code = ct.generate_amalgamated_code(STARTER,OUTPUT)
Comand Line Operations
Copile an Project
it wil copile the given file
import CToolKit as ct
COPILER = 'gcc'
FILE = 'test.c'
OUTPUT = 'test.out'
ct.copile_project(
COPILER,
FILE,
OUTPUT,
raise_errors=True,
raise_warnings=True
)
Testing copilation with valgrind
Execute an valgrind testing of the given binary ( you need to have valgrind installed in your os)
import CToolKit as ct
COPILER = 'gcc'
FILE = 'test.c'
OUTPUT = 'test.out'
ct.copile_project(
COPILER,
FILE,
OUTPUT,
raise_errors=True,
raise_warnings=True
)
FLAGS = ['-libcur']
ct.test_binary_with_valgrind(OUTPUT,FLAGS)
Executing copilation and test with file with a single comand
import CToolKit as ct
COPILER = 'gcc'
FILE = 'test.c'
ct.execute_test_for_file(COPILER,FILE)
Executing Test with all .c or .cpp files in the given folder
import CToolKit as ct
COPILER = 'gcc'
FOLDER ='test'
ct.execute_test_for_folder(COPILER,FOLDER,print_values=True)
Execution
you can execute an binary with the ComandLine Execution class
import CToolKit as ct
COPILER = 'gcc'
FILE = 'test.c'
OUTPUT = 'test.out'
ct.copile_project(
COPILER,
FILE,
OUTPUT,
raise_errors=True,
raise_warnings=True
)
execution = ct.ComandLineExecution(f'./{OUTPUT}')
print('output:',execution.output)
print('statuscode:',execution.status_code)
Readme Replacement
you can replace readme content with code system for these just tipe: < + !--codeof:test.c-->, you can see these example in the following lib: https://github.com/OUIsolutions/CTextEngine
Will free the memory
<!--codeof:exemples/free.c-->
import CToolKit as ct
ct.include_code_in_markdown('README.md')
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.