[DOC] better documentation
This commit is contained in:
parent
604078f1c0
commit
082556e591
@ -43,7 +43,7 @@ http://github.com/HeeroYui/lutin/
|
|||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
http://github.com/HeeroYui/lutin/tree/master/doc/
|
http://HeeroYui.github.io/lutin/
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
Basic concept
|
Basic concept {#lutin_concept}
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
@tableofcontents
|
||||||
|
|
||||||
Lutin is a compleate builder system. It is designed to answers all the application problems.
|
Lutin is a compleate builder system. It is designed to answers all the application problems.
|
||||||
The library and the distribution problem are partially manage (no real use-case)
|
The library and the distribution problem are partially manage (no real use-case)
|
||||||
|
|
||||||
Technologie:
|
Technologie:
|
||||||
------------
|
============
|
||||||
|
|
||||||
Lutin is designed in Python 2.X or 3.X to answers at the multiplatform problems.
|
Lutin is designed in Python 2.X or 3.X to answers at the multiplatform problems.
|
||||||
On Linux or MacOs, it is really easy to compile with Makefile, cmake, but on Windows it is an other problem.
|
On Linux or MacOs, it is really easy to compile with Makefile, cmake, but on Windows it is an other problem.
|
||||||
@ -14,7 +16,7 @@ The first version of Lutin has been designed in Makefile, but we need to wait 20
|
|||||||
Lutin is not based over an other builder, but compile code itself.
|
Lutin is not based over an other builder, but compile code itself.
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
---------
|
=========
|
||||||
|
|
||||||
Lutin is designed to:
|
Lutin is designed to:
|
||||||
- support many hardware platform (X86/X64/ARM...);
|
- support many hardware platform (X86/X64/ARM...);
|
||||||
@ -25,7 +27,7 @@ Lutin is designed to:
|
|||||||
|
|
||||||
|
|
||||||
global overview:
|
global overview:
|
||||||
----------------
|
================
|
||||||
|
|
||||||
Every build system is based on multiple concept depending of their own designed.
|
Every build system is based on multiple concept depending of their own designed.
|
||||||
|
|
||||||
@ -36,7 +38,7 @@ For lutin we can différentiate 4 basics concepts:
|
|||||||
- System: Many OS manage basic element contain in the OS, This part permit to find generic module availlable in the system.
|
- System: Many OS manage basic element contain in the OS, This part permit to find generic module availlable in the system.
|
||||||
|
|
||||||
Module:
|
Module:
|
||||||
-------
|
=======
|
||||||
|
|
||||||
When you use lutin, you migth first create a module, This is the basis of the framework. It permit to describe your "module", all it contain, and the deendency.
|
When you use lutin, you migth first create a module, This is the basis of the framework. It permit to describe your "module", all it contain, and the deendency.
|
||||||
|
|
||||||
@ -49,7 +51,7 @@ We can separate a module in some part:
|
|||||||
|
|
||||||
|
|
||||||
Target:
|
Target:
|
||||||
-------
|
=======
|
||||||
|
|
||||||
A target represent the "board" to build the module, we can separate MacOs, IOs, Linux ... and all platform that exist
|
A target represent the "board" to build the module, we can separate MacOs, IOs, Linux ... and all platform that exist
|
||||||
|
|
||||||
@ -57,17 +59,22 @@ You can generate a new one or use satandard that are provided
|
|||||||
|
|
||||||
|
|
||||||
Builder:
|
Builder:
|
||||||
--------
|
========
|
||||||
|
|
||||||
By default lustin manage many methode to build element like cpp, java, asm files ...
|
By default lustin manage many methode to build element like cpp, java, asm files ...
|
||||||
|
|
||||||
|
|
||||||
System:
|
System:
|
||||||
-------
|
=======
|
||||||
|
|
||||||
This element provide all elements availlable in the Linux distribution.
|
This element provide all elements availlable in the Linux distribution.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[next doc:Generate a delivery](020_Compile_a_module.md)
|
**Index:**
|
||||||
|
- @ref mainpage
|
||||||
|
- @ref lutin_concept
|
||||||
|
- @ref lutin_use
|
||||||
|
- @ref lutin_module
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
How to compile
|
How to use lutin {#lutin_use}
|
||||||
==============
|
================
|
||||||
|
|
||||||
|
@tableofcontents
|
||||||
|
|
||||||
Lutin permit simply to compile applications and library.
|
Lutin permit simply to compile applications and library.
|
||||||
|
|
||||||
@ -10,8 +12,8 @@ To simply understand the use, we will use a simple library:
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
compile a module:
|
compile a module: {#lutin_use_compile}
|
||||||
-----------------
|
=================
|
||||||
|
|
||||||
It is really simple:
|
It is really simple:
|
||||||
|
|
||||||
@ -23,7 +25,7 @@ It is really simple:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Option working:
|
Option working: {#lutin_use_options}
|
||||||
===============
|
===============
|
||||||
|
|
||||||
Lutin have a complex option methodologie. We can consider 3 part of the option:
|
Lutin have a complex option methodologie. We can consider 3 part of the option:
|
||||||
@ -32,11 +34,16 @@ Lutin have a complex option methodologie. We can consider 3 part of the option:
|
|||||||
- modules
|
- modules
|
||||||
|
|
||||||
|
|
||||||
Global options:
|
Global options: {#lutin_use_options_global}
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Display help:
|
Globals option is parse first and manage global setting of the build (not specific of a target)
|
||||||
*************
|
|
||||||
|
this keep the last value config set
|
||||||
|
|
||||||
|
|
||||||
|
Display help: {#lutin_use_options_help}
|
||||||
|
-------------
|
||||||
|
|
||||||
Availlable everywhere ...
|
Availlable everywhere ...
|
||||||
|
|
||||||
@ -51,16 +58,16 @@ But the system(OS) keep the data in cash, then the next time it is faster.
|
|||||||
|
|
||||||
At the end of the help you an see an help about the etk librery with the associated help.
|
At the end of the help you an see an help about the etk librery with the associated help.
|
||||||
|
|
||||||
Build in color:
|
Build in color: {#lutin_use_options_color}
|
||||||
***************
|
---------------
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
lutin -C
|
lutin -C
|
||||||
lutin --color
|
lutin --color
|
||||||
```
|
```
|
||||||
|
|
||||||
Display build line in pretty print mode:
|
Display build line in pretty print mode: {#lutin_use_options_pretty}
|
||||||
****************************************
|
----------------------------------------
|
||||||
|
|
||||||
when an error apear, the gcc or clang compile line can be really unreadable:
|
when an error apear, the gcc or clang compile line can be really unreadable:
|
||||||
```bash
|
```bash
|
||||||
@ -103,8 +110,8 @@ result:
|
|||||||
/home/XXX/dev/etk/etk/Color.cpp
|
/home/XXX/dev/etk/etk/Color.cpp
|
||||||
```
|
```
|
||||||
|
|
||||||
lutin log:
|
lutin log: {#lutin_use_options_log}
|
||||||
**********
|
----------
|
||||||
|
|
||||||
Lutin have an internal log system. To enable or disable it just select your debug level with the option:
|
Lutin have an internal log system. To enable or disable it just select your debug level with the option:
|
||||||
|
|
||||||
@ -122,8 +129,8 @@ The level availlables are:
|
|||||||
- 5: verbose
|
- 5: verbose
|
||||||
- 6: extreme_verbose
|
- 6: extreme_verbose
|
||||||
|
|
||||||
Select the number of CPU core used:
|
Select the number of CPU core used: {#lutin_use_options_cpu}
|
||||||
***********************************
|
-----------------------------------
|
||||||
|
|
||||||
By default lutin manage only 1 CPU core (faster to debug) but for speed requirement you can use use multiple core:
|
By default lutin manage only 1 CPU core (faster to debug) but for speed requirement you can use use multiple core:
|
||||||
|
|
||||||
@ -133,18 +140,20 @@ By default lutin manage only 1 CPU core (faster to debug) but for speed requirem
|
|||||||
lutin --jobs 5
|
lutin --jobs 5
|
||||||
```
|
```
|
||||||
|
|
||||||
Force rebuild all:
|
Force rebuild all: {#lutin_use_options_rebuild_force}
|
||||||
******************
|
------------------
|
||||||
|
|
||||||
Sometime it is needed to rebuild all the program, just do :
|
Sometime it is needed to rebuild all the program, just do:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
lutin -B
|
lutin -B
|
||||||
lutin --force-build
|
lutin --force-build
|
||||||
|
# or remove the build directory
|
||||||
|
rm -rf out/
|
||||||
```
|
```
|
||||||
|
|
||||||
Force strip all library and programs:
|
Force strip all library and programs: {#lutin_use_options_strip}
|
||||||
*************************************
|
-------------------------------------
|
||||||
|
|
||||||
Force strip of output binary (remove symboles)
|
Force strip of output binary (remove symboles)
|
||||||
|
|
||||||
@ -153,8 +162,8 @@ Force strip of output binary (remove symboles)
|
|||||||
lutin --force-strip
|
lutin --force-strip
|
||||||
```
|
```
|
||||||
|
|
||||||
Manage Cross compilation:
|
Manage Cross compilation: {#lutin_use_options_cross_compile}
|
||||||
-------------------------
|
=========================
|
||||||
|
|
||||||
The main objective of lutin is managing the cross compilation to build from linux to other platform:
|
The main objective of lutin is managing the cross compilation to build from linux to other platform:
|
||||||
|
|
||||||
@ -165,8 +174,8 @@ For android you can use:
|
|||||||
lutin -t Windows your-module
|
lutin -t Windows your-module
|
||||||
```
|
```
|
||||||
|
|
||||||
Build in debug mode:
|
Build in debug mode: {#lutin_use_options_debug_release}
|
||||||
--------------------
|
====================
|
||||||
|
|
||||||
To developp it is fasted with debug tools
|
To developp it is fasted with debug tools
|
||||||
|
|
||||||
@ -181,8 +190,8 @@ You can desire to have compilation optimisation when you build in debug mode:
|
|||||||
lutin -m debug --force-optimisation your-module
|
lutin -m debug --force-optimisation your-module
|
||||||
```
|
```
|
||||||
|
|
||||||
Execute yout program after building it:
|
Execute your program after building it: {#lutin_use_options_execute}
|
||||||
---------------------------------------
|
=======================================
|
||||||
|
|
||||||
You can execute some action in a single line for a module:
|
You can execute some action in a single line for a module:
|
||||||
|
|
||||||
@ -198,4 +207,23 @@ Note that the path is distinct for gcc/clang, debug/release, Linux/windows/Andro
|
|||||||
Then it is really easy to run the wrong binary.
|
Then it is really easy to run the wrong binary.
|
||||||
|
|
||||||
|
|
||||||
[next doc:Create a new module](030_Create_a_new_module.md)
|
Install your program after building it: {#lutin_use_options_install}
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
You can install your build module:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
lutin -m debug your-module?build?install
|
||||||
|
```
|
||||||
|
|
||||||
|
This option is not availlablke on all platform ...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Index:**
|
||||||
|
- @ref mainpage
|
||||||
|
- @ref lutin_concept
|
||||||
|
- @ref lutin_use
|
||||||
|
- @ref lutin_module
|
||||||
|
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
Create a new Module:
|
Create a new Module: {#lutin_module}
|
||||||
====================
|
====================
|
||||||
|
|
||||||
|
@tableofcontents
|
||||||
|
|
||||||
|
|
||||||
|
Base of the module file: {#lutin_module_base_file}
|
||||||
|
========================
|
||||||
|
|
||||||
To create a new module you will use a generic naming:
|
To create a new module you will use a generic naming:
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -85,8 +91,8 @@ def create(target, module_name):
|
|||||||
|
|
||||||
Thes it is simple to specify build for:
|
Thes it is simple to specify build for:
|
||||||
|
|
||||||
Create a new Module (LIBRARY):
|
Create a new Module (LIBRARY): {#lutin_module_library}
|
||||||
-----------------------------
|
==============================
|
||||||
|
|
||||||
What to change:
|
What to change:
|
||||||
```python
|
```python
|
||||||
@ -99,11 +105,11 @@ By default the library is compile in shared and static. The binary select the mo
|
|||||||
You can force the library to be compile as a dll/so: ```LIBRARY_DYNAMIC``` or a basic include lib: .a ```LIBRARY_STATIC```
|
You can force the library to be compile as a dll/so: ```LIBRARY_DYNAMIC``` or a basic include lib: .a ```LIBRARY_STATIC```
|
||||||
|
|
||||||
|
|
||||||
Create a new Module (BINARY):
|
Create a new Module (BINARY): {#lutin_module_binary}
|
||||||
-----------------------------
|
=============================
|
||||||
|
|
||||||
Generic Binary:
|
Generic Binary: {#lutin_module_binary_base}
|
||||||
***************
|
---------------
|
||||||
|
|
||||||
What to change:
|
What to change:
|
||||||
```python
|
```python
|
||||||
@ -114,8 +120,8 @@ The Binay is compile by default target mode (note that the IOs target generate a
|
|||||||
|
|
||||||
You can force the Binary to be use dynamic library when possible: ```BINARY_SHARED``` or create a single binary with no .so depenency: ```BINARY_STAND_ALONE```
|
You can force the Binary to be use dynamic library when possible: ```BINARY_SHARED``` or create a single binary with no .so depenency: ```BINARY_STAND_ALONE```
|
||||||
|
|
||||||
Create a new Module (TEST-BINARY / TOOL-BINARY):
|
Create a new Module (TEST-BINARY / TOOL-BINARY): {#lutin_module_binary_tools}
|
||||||
************************************************
|
------------------------------------------------
|
||||||
|
|
||||||
Two binary are really usefull in developpement, the tools and the test-unit, This is the reason why we specify for this 2 cases.
|
Two binary are really usefull in developpement, the tools and the test-unit, This is the reason why we specify for this 2 cases.
|
||||||
|
|
||||||
@ -137,8 +143,8 @@ def get_sub_type():
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Create a new Module (DATA):
|
Create a new Module (DATA): {#lutin_module_data}
|
||||||
---------------------------
|
===========================
|
||||||
|
|
||||||
This pode permit to only copy data and no dependency with compilling system
|
This pode permit to only copy data and no dependency with compilling system
|
||||||
|
|
||||||
@ -149,10 +155,10 @@ def get_type():
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Module internal specifications:
|
Module internal specifications: {#lutin_module_internal}
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
Add file to compile:
|
Add file to compile: {#lutin_module_internal_compile}
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
This is simple: (you just need to specify all the file to compile)
|
This is simple: (you just need to specify all the file to compile)
|
||||||
@ -171,7 +177,7 @@ def create(target, module_name):
|
|||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
Include directory & install header:
|
Include directory & install header: {#lutin_module_internal_header}
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
A big point to understand is that your library will be used by an other module, then it need to use headers.
|
A big point to understand is that your library will be used by an other module, then it need to use headers.
|
||||||
@ -203,7 +209,7 @@ def create(target, module_name):
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Add Sub-dependency:
|
Add Sub-dependency: {#lutin_module_internal_depend}
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
All library need to add at minimum of a simple library (C lib) and other if needed. To do it jus call:
|
All library need to add at minimum of a simple library (C lib) and other if needed. To do it jus call:
|
||||||
@ -237,7 +243,7 @@ def create(target, module_name):
|
|||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
Compilation adn link flags/libs:
|
Compilation adn link flags/libs: {#lutin_module_internal_flag}
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
It is possible to define local and external flags (external are set internal too):
|
It is possible to define local and external flags (external are set internal too):
|
||||||
@ -248,13 +254,13 @@ def create(target, module_name):
|
|||||||
my_module.add_flag('link-lib', "pthread", export=True)
|
my_module.add_flag('link-lib', "pthread", export=True)
|
||||||
my_module.add_flag('c++', "-DHELLO_FLAG=\"kljlkj\"", export=True)
|
my_module.add_flag('c++', "-DHELLO_FLAG=\"kljlkj\"", export=True)
|
||||||
# internal flags:
|
# internal flags:
|
||||||
my_module.add_flags('c', "-DMODE_RELEASE")
|
my_module.add_flag('c', "-DMODE_RELEASE")
|
||||||
|
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
build dependency mode and/or target:
|
build mode (release/debug): {#lutin_module_internal_target_mode}
|
||||||
------------------------------------
|
---------------------------
|
||||||
|
|
||||||
To add somes element dependent of the build mode:
|
To add somes element dependent of the build mode:
|
||||||
```python
|
```python
|
||||||
@ -269,6 +275,9 @@ def create(target, module_name):
|
|||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
build type target: {#lutin_module_internal_target_type}
|
||||||
|
------------------
|
||||||
|
|
||||||
To add somes element dependent of the target type:
|
To add somes element dependent of the target type:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@ -294,7 +303,7 @@ A "Debian" herited of a "Linux" then it will return ["Linux", "Debian"]
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Add some data in the install path (share path):
|
Add some data in the install path (share path): {#lutin_module_internal_data}
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
|
|
||||||
You can install a simple file:
|
You can install a simple file:
|
||||||
@ -320,7 +329,7 @@ def create(target, module_name):
|
|||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
display some debug to help writing code:
|
display some debug to help writing code: {#lutin_module_internal_write_log}
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@ -337,13 +346,15 @@ def function(...):
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
A Full template:
|
A Full template: {#lutin_module_full_template}
|
||||||
================
|
================
|
||||||
|
|
||||||
|
Create the file:
|
||||||
```
|
```
|
||||||
lutin_module-name.py
|
lutin_module-name.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
With:
|
||||||
```python
|
```python
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import lutin.module as module
|
import lutin.module as module
|
||||||
@ -478,3 +489,9 @@ def create(target, module_name):
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
**Index:**
|
||||||
|
- @ref mainpage
|
||||||
|
- @ref lutin_concept
|
||||||
|
- @ref lutin_use
|
||||||
|
- @ref lutin_module
|
||||||
|
|
||||||
|
@ -1,9 +1,28 @@
|
|||||||
Lutin Build system
|
Lutin Build system {#mainpage}
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
@tableofcontents
|
||||||
|
|
||||||
What is Lutin, and how can I use it?
|
`lutin` is a generic builder and package maker is a FREE software tool.
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
|
![Py package](https://badge.fury.io/py/lutin.png) https://pypi.python.org/pypi/lutin
|
||||||
|
|
||||||
|
|
||||||
|
Release (master) {#lutin_mainpage_build_master}
|
||||||
|
================
|
||||||
|
|
||||||
|
![Build Status](https://travis-ci.org/HeeroYui/lutin.svg?branch=master) https://travis-ci.org/HeeroYui/lutin
|
||||||
|
|
||||||
|
|
||||||
|
Developement (dev) {#lutin_mainpage_build_dev}
|
||||||
|
==================
|
||||||
|
|
||||||
|
![Build Status](https://travis-ci.org/HeeroYui/lutin.svg?branch=dev) https://travis-ci.org/HeeroYui/lutin
|
||||||
|
|
||||||
|
|
||||||
|
What is Lutin? {#lutin_mainpage_intro}
|
||||||
|
==============
|
||||||
|
|
||||||
Lutin is an application/library builder, it is designed to concurence CMake, Makefile, Ant, graddle ...
|
Lutin is an application/library builder, it is designed to concurence CMake, Makefile, Ant, graddle ...
|
||||||
|
|
||||||
@ -32,16 +51,16 @@ Compilation is availlable for:
|
|||||||
- gcc/g++;
|
- gcc/g++;
|
||||||
- clang/clang++.
|
- clang/clang++.
|
||||||
|
|
||||||
Manage [b]workspace build[/b] (in oposition of CMake/make/...)
|
Manage **workspace build** (in oposition of CMake/make/...)
|
||||||
|
|
||||||
|
|
||||||
Install:
|
Install: {#lutin_mainpage_installation}
|
||||||
--------
|
========
|
||||||
|
|
||||||
Requirements: ``Python >= 2.7`` and ``pip``
|
Requirements: ``Python >= 2.7`` and ``pip``
|
||||||
|
|
||||||
Install lutin:
|
Install lutin:
|
||||||
**************
|
--------------
|
||||||
|
|
||||||
Just run:
|
Just run:
|
||||||
```bash
|
```bash
|
||||||
@ -49,7 +68,7 @@ Just run:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Install pip:
|
Install pip:
|
||||||
************
|
------------
|
||||||
|
|
||||||
Install pip on debian/ubuntu:
|
Install pip on debian/ubuntu:
|
||||||
```bash
|
```bash
|
||||||
@ -67,7 +86,7 @@ Install pip on MacOs:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Install from sources:
|
Install from sources:
|
||||||
*********************
|
---------------------
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone http://github.com/HeeroYui/lutin.git
|
git clone http://github.com/HeeroYui/lutin.git
|
||||||
@ -75,14 +94,21 @@ Install from sources:
|
|||||||
sudo ./setup.py install
|
sudo ./setup.py install
|
||||||
```
|
```
|
||||||
|
|
||||||
Tutoral entry point:
|
git repository {#lutin_mainpage_repository}
|
||||||
--------------------
|
==============
|
||||||
|
|
||||||
[tutorial](000_basic_concept.md)
|
http://github.com/HeeroYui/lutin/
|
||||||
|
|
||||||
|
Tutorals: {#lutin_mainpage_tutorial}
|
||||||
|
=========
|
||||||
|
|
||||||
|
- @ref lutin_concept
|
||||||
|
- @ref lutin_use
|
||||||
|
- @ref lutin_module
|
||||||
|
|
||||||
|
|
||||||
License (APACHE v2.0)
|
License (APACHE v2.0) {#lutin_mainpage_licence}
|
||||||
---------------------
|
=====================
|
||||||
|
|
||||||
Copyright lutin Edouard DUPIN
|
Copyright lutin Edouard DUPIN
|
||||||
|
|
||||||
@ -99,8 +125,8 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
History:
|
History: {#lutin_mainpage_history}
|
||||||
--------
|
========
|
||||||
|
|
||||||
I work with some builder, Every one have theire own adventages, and their problems.
|
I work with some builder, Every one have theire own adventages, and their problems.
|
||||||
The main point I see, is that the polimorphisme of the worktree is really hard.
|
The main point I see, is that the polimorphisme of the worktree is really hard.
|
Loading…
x
Reference in New Issue
Block a user