🎉 C project and base documentation.

main
bog 2024-03-16 20:45:32 +01:00
parent 87460e35d1
commit 3493fda418
13 changed files with 184 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
.cache
*~*
*\#*
build
doc/build

8
CMakeLists.txt Normal file
View File

@ -0,0 +1,8 @@
cmake_minimum_required(VERSION 3.28)
project(CoCoMango)
set(CMAKE_EXPORT_COMPILE_COMMANDS On)
add_subdirectory(lib)
add_subdirectory(ccm)

12
Makefile Normal file
View File

@ -0,0 +1,12 @@
.PHONY: build install check doc
build:
cmake -B build
cmake --build build
install: build
sudo cmake --install build
check:
@cppcheck --enable=all -q ccm lib \
--suppress=missingIncludeSystem

18
ccm/CMakeLists.txt Normal file
View File

@ -0,0 +1,18 @@
cmake_minimum_required(VERSION 3.28)
project(ccm)
add_executable(ccm
main.c
)
set_property(TARGET ccm PROPERTY C_STANDARD 99)
add_dependencies(ccm ccm_lib)
target_link_libraries(ccm
ccm_lib
)
install(TARGETS ccm)

7
ccm/main.c Normal file
View File

@ -0,0 +1,7 @@
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}

2
doc/Makefile Normal file
View File

@ -0,0 +1,2 @@
all:
sphinx-build src build

28
doc/requirements.txt Normal file
View File

@ -0,0 +1,28 @@
accessible-pygments==0.0.4
alabaster==0.7.16
Babel==2.14.0
beautifulsoup4==4.12.3
certifi==2024.2.2
charset-normalizer==3.3.2
docutils==0.20.1
idna==3.6
imagesize==1.4.1
Jinja2==3.1.3
MarkupSafe==2.1.5
packaging==24.0
pydata-sphinx-theme==0.15.2
Pygments==2.17.2
requests==2.31.0
snowballstemmer==2.2.0
soupsieve==2.5
Sphinx==7.2.6
sphinx-basic-ng==1.0.0b2
sphinx-book-theme==1.1.2
sphinxcontrib-applehelp==1.0.8
sphinxcontrib-devhelp==1.0.6
sphinxcontrib-htmlhelp==2.0.5
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.7
sphinxcontrib-serializinghtml==1.1.10
typing_extensions==4.10.0
urllib3==2.2.1

4
doc/src/conf.py Normal file
View File

@ -0,0 +1,4 @@
project = 'CoCo Mango'
version = '0.0.0'
html_theme = 'sphinx_book_theme'

7
doc/src/index.rst Normal file
View File

@ -0,0 +1,7 @@
CCM Documentation
=================
.. toctree::
installation

70
doc/src/installation.rst Normal file
View File

@ -0,0 +1,70 @@
Installation
============
CCM is not distributed as binaries, therefore you have to compile it yourself.
But don't worry, once downloaded you can compile the project using only one command (``make install``).
Let's start. First, you have to get the source code of CCM. Then you have to build and install it.
Getting the source code
-----------------------
The easy way to get the sources is to download the source zip archive directly from
`this link <https://git.shellbox.fr/bog/ccm/archive/main.zip>`_.
All you have to do now is to unzip it.
.. code-block:: bash
:caption: Extracting the zip archive
# unzip the project source code
unzip ccm-main.zip
# go to project directory
cd ccm-main
If you have git installed on your system, you can get the repository with the command:
.. code-block:: bash
:caption: Cloning the repository
# clone the repository into the ccm directory
git clone https://git.shellbox.fr/bog/ccm.git
# goto project directory
cd ccm
Get the sources here: https://git.shellbox.fr/bog/ccm
Building and Installing
-----------------------
Compiling CCM is easy. All you have to do, is type one command:
.. code-block:: bash
:caption: Installing CCM the quick way
# may ask you root access via sudo
make install
However, if you want more control over the compilation and installation,
you can use those 3 cmake commands to build the project the way you want.
.. code-block:: bash
:caption: Step 1/3 Initialize cmake
cmake -B build
.. code-block:: bash
:caption: Step 2/3 Compile CCM
cmake --build build
.. code-block:: bash
:caption: Step 3/3 Install CCM
cmake --install build

18
lib/CMakeLists.txt Normal file
View File

@ -0,0 +1,18 @@
cmake_minimum_required(VERSION 3.28)
project(ccm_library)
add_library(ccm_lib
node.c
)
set_property(TARGET ccm_lib PROPERTY C_STANDARD 99)
target_compile_options(ccm_lib
PUBLIC -Wall -Wextra -g
)
target_include_directories(ccm_lib
PUBLIC "${CMAKE_SOURCE_DIR}/lib"
)
install(TARGETS ccm_lib)

1
lib/node.c Normal file
View File

@ -0,0 +1 @@
#include "node.h"

4
lib/node.h Normal file
View File

@ -0,0 +1,4 @@
#ifndef NODE_H
#define NODE_H
#endif