commit 9fbdd0c8b03729329bb73c7665f26e7ab988d12b
parent e8292d9213b30ae1d6a446f8c28af24da1d92805
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Wed, 12 Jun 2024 17:30:24 +0200
Merge branch 'release_0.3' into develop
Diffstat:
| M | README.md | | | 87 | +++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------- |
| M | config.mk | | | 2 | +- |
2 files changed, 60 insertions(+), 29 deletions(-)
diff --git a/README.md b/README.md
@@ -1,45 +1,47 @@
# City Generator 2
-The purpose of "City Generator 2" is to produce the .stl files that can be used
-by volumic solver software like the
-[Stardis](https://gitlab.com/meso-star/star-cad) program. It's designed to
-produce conformal mesh which describe a city.
-
-## How to build
-
-It relies the
-[CMake](http://www.cmake.org) and the
-[RCMake](https://gitlab.com/vaplv/rcmake/) packages to build. It also depends
-on the
-[RSys](https://gitlab.com/vaplv/rsys/),
-[Star-CAD](https://gitlab.com/meso-star/star-cad),
-[Star-CAD](https://gitlab.com/meso-star/star-clipper) and
-[libcyaml](https://github.com/tlsa/libcyaml) libraries.
-
-First ensure that CMake is installed on your system. Then install the RCMake
-package as well as the aforementioned prerequisites. Finally generate the
-project from the `cmake/CMakeLists.txt` file by appending to the
-`CMAKE_PREFIX_PATH` variable the install directories of its dependencies. The
-resulting project can be edited, built, tested and installed as any CMake
-project. Refer to the [CMake documentation](https://cmake.org/documentation)
-for further informations on CMake.
-
-Some parameters that change the program behaviour can be set at the cmake stage.
-To set them one can use the -D<VAR>=<VAL> pattern. The parameters are:
+City Generator 2 is a software that produces conformal 3D meshes representing a
+city (in the form of .stl files) from a simple ascii description. These files
+can be used by volumic solver software like the
+[Stardis](https://gitlab.com/meso-star/star-cad) program.
+
+## Requirements
+
+- C compiler
+- POSIX make
+- pkg-config
+- [mandoc](https://mandoc.bsd.lv)
+- [RSys](https://gitlab.com/vaplv/rsys)
+- [Star-CAD](https://gitlab.com/meso-star/star-cad),
+- [Star-CPR](https://gitlab.com/meso-star/star-clipper)
+- [libcyaml](https://github.com/tlsa/libcyaml)
+
+## Installation
+
+Edit config.mk as needed, then run:
+
+ make clean install
+
+## Parameters
+
+Some parameters that change the program behaviour can be set by editing
+config.mk before running make:
- `CG2_ARGS_DEFAULT_VERBOSITY_LEVEL`: the default verbosity level if the `-V`
option is not used. Default is 1 (errors only).
- `STL_OUTPUT_DEFAULT_IS_BINARY`: The default format for output STL files.
Default is ascii. Depending of this option, the command line options allow
- either -a the change the type to ascii, or -b to change it to binary.
+ either -a to change the type to ascii, or -b to change it to binary.
- `CG2_CLOSE_NEIGHBOR_DISTANCE`: The distance up to which a close neighbor
building prevents windows to be generated. Default is 2 meters, must be
strictly positive.
- `CG2_MIN_DISTANCE_TO_MAP_LIMITS': The minimum distance between a building and
- the ground limits. Default is 2 meters, must be strictly positive.
+ the ground limits. If a building is closer than this distance, it is ruled
+ out as invalid and is removed from the output. Default is 2 meters, must be
+ strictly positive.
- `CG2_MIN_WINDOWS_WIDTH': The minimum width for a window to be valid. Below
this threshold, windows are removed. Default is 0.1 meter, must be strictly
@@ -47,6 +49,35 @@ To set them one can use the -D<VAR>=<VAL> pattern. The parameters are:
## Release notes
+### Version 0.3
+
+#### Use POSIX make as a build system
+
+The build procedure is now written in POSIX make instead of CMake.
+In addition to the features already provided by its CMake alternative,
+the Makefile supports the use of static libraries and provides an
+uninstall target. In any case, the main motivation behind its writing is
+to use a good old well-established standard with simple features,
+available on all UNIX systems, thus simplifying its portability and
+support while being much lighter
+
+#### Proof-reading and editing manual pages
+
+Write the man pages directly in mdoc's roff macros, instead of using the
+asciidoc markup language as a source for man pages.
+
+Unlike writing manuals with man's roff macros, and even more so with
+asciidoc, mdoc macros take care of layout, font handling and all the other
+typesetting details which, by construction, guarantee the consistency of
+all manuals without leaving the responsibility to the individual author.
+This also facilitates translation into other formats and documentation
+tools. These are the main reasons for writing manual pages with mdoc
+macros.
+
+A complete re-reading of the manual pages was carried out during the
+translation into mdoc, with several corrections and rewrites to make the
+manual clearer.
+
### Version 0.2
- Many bugfixes.
diff --git a/config.mk b/config.mk
@@ -1,5 +1,5 @@
VERSION_MAJOR = 0
-VERSION_MINOR = 2
+VERSION_MINOR = 3
VERSION_PATCH = 0
VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)
PREFIX = /usr/local