From ead5d7478ccb4b9c6977843c8a3e1b2dea25bf38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Tue, 29 Oct 2019 11:00:39 +0100 Subject: [PATCH] Doc improvements --- .../doc/Documentation/Getting_started.txt | 14 +++++++- .../doc/Documentation/Third_party.txt | 4 ++- .../Tutorials/Tutorial_hello_world.txt | 2 +- .../doc/Documentation/Tutorials/Tutorials.txt | 9 ++++-- Documentation/doc/Documentation/Usage.txt | 13 ++++++-- .../advanced/Configuration_variables.txt | 5 +++ .../Documentation/advanced/Installation.txt | 6 ++-- .../doc/Documentation/advanced/advanced.txt | 8 ----- Documentation/doc/Documentation/main.txt | 32 ++++++++----------- Documentation/doc/Documentation/windows.txt | 5 ++- 10 files changed, 61 insertions(+), 37 deletions(-) delete mode 100644 Documentation/doc/Documentation/advanced/advanced.txt diff --git a/Documentation/doc/Documentation/Getting_started.txt b/Documentation/doc/Documentation/Getting_started.txt index b4759c28f95..01452b57124 100644 --- a/Documentation/doc/Documentation/Getting_started.txt +++ b/Documentation/doc/Documentation/Getting_started.txt @@ -1,15 +1,27 @@ /*! \page general_intro Getting Started with %CGAL +The following pages describe how to use \cgal on different environments + - \subpage usage - \subpage windows - \subpage thirdparty gives information (supported versions, download links) of the required and optional third party libraries. +The following pages cover advanced installation options + +- \subpage configurationvariables gives information about which CMake variables can be used to help +resolve missing dependencies while using the cmake command line tool. + +- \subpage installation describes the deprecated process of configuring and building \cgal. + +The following pages cover the structure of the manual and general information about \cgal + - \subpage manual gives an idea of where you should look for documentation. -- \subpage preliminaries lists how to control inlining, thread safety, code deprecation, checking of pre- and postconditions, and how to alter the failure behavior. +- \subpage preliminaries lists how to control inlining, thread safety, code deprecation, checking +of pre- and postconditions, and how to alter the failure behavior. Once you are familiar with building your programs with \cgal and how the documentation is structured, you can head over to the \ref tutorials for a gentle introduction to \cgal, or directly to the package(s) diff --git a/Documentation/doc/Documentation/Third_party.txt b/Documentation/doc/Documentation/Third_party.txt index abedcc34eb7..e0220b92691 100644 --- a/Documentation/doc/Documentation/Third_party.txt +++ b/Documentation/doc/Documentation/Third_party.txt @@ -18,6 +18,8 @@ supporting C++14 or later. | MacOS X | \sc{Gnu} `g++` 6.3 or later\cgalFootnote{`http://gcc.gnu.org/`} | | | Apple `Clang` compiler versions 7.0.2 and 10.0.1 | + + Older versions of the above listed compilers might work, but no guarantee is provided. \section seccmake CMake @@ -54,7 +56,7 @@ or `h The \stl comes with the compiler, and as such no installation is required. \subsection thirdpartyBoost Boost -Version 1.48 or later +Version 1.57 or later The \sc{Boost} libraries are a set of portable C++ source libraries. Most of \sc{Boost} libraries are header-only, but a few of them need to be compiled or diff --git a/Documentation/doc/Documentation/Tutorials/Tutorial_hello_world.txt b/Documentation/doc/Documentation/Tutorials/Tutorial_hello_world.txt index a3938229867..f90dbe3d5b5 100644 --- a/Documentation/doc/Documentation/Tutorials/Tutorial_hello_world.txt +++ b/Documentation/doc/Documentation/Tutorials/Tutorial_hello_world.txt @@ -266,7 +266,7 @@ given by a direction, which is hardwired in the class \section intro_concept Concepts and Models In the previous section, we wrote that "Any model of the CGAL concept -Kernel provides what is required by the concept ConvexHullTraits_2". +Kernel provides what is required by the concept `ConvexHullTraits_2`. A \em concept is a set of requirements on a type, namely that it has certain nested types, certain member functions, or comes with certain diff --git a/Documentation/doc/Documentation/Tutorials/Tutorials.txt b/Documentation/doc/Documentation/Tutorials/Tutorials.txt index ac3dd2c9197..aab618e954f 100644 --- a/Documentation/doc/Documentation/Tutorials/Tutorials.txt +++ b/Documentation/doc/Documentation/Tutorials/Tutorials.txt @@ -8,9 +8,7 @@ combined to achieve extensive and complex geometric tasks. The tutorials aim at providing help and ideas on how to use CGAL beyond the simple examples of the User Manual. - - -\section tuto_list List of available tutorials +\section tuto_list List of Available Tutorials - \subpage tutorial_hello_world presents you some short example programs to get a first idea for the look and feel of a program that @@ -19,4 +17,9 @@ User Manual. define what primitives are used by a geometric algorithm, the notions of \em concept and \em model. +\section tuto_examples Package Examples + +Each \cgal package comes with a set of commented examples that illustrate basic features of the package. +See for example Section \ref Triangulation3secexamples of the User Manual of the package \ref PkgTriangulation3. + */ diff --git a/Documentation/doc/Documentation/Usage.txt b/Documentation/doc/Documentation/Usage.txt index 00e19f24615..ee70f537e0f 100644 --- a/Documentation/doc/Documentation/Usage.txt +++ b/Documentation/doc/Documentation/Usage.txt @@ -1,5 +1,5 @@ /*! -\page usage Using %CGAL on Linux and macOS +\page usage Using %CGAL on Unix (Linux, macOS, ...) \cgalAutoToc Since \cgal version 5.0, \cgal is header-only be default, which means @@ -9,7 +9,8 @@ However, some dependencies of \cgal might still need to be installed. \section usage_introduction Quick Start: Compiling a Program using CGAL Assuming that you have obtained \cgal through one of the package managers offering \cgal on your platform -(see Section \ref secgettingcgal), you can download \cgal examples here +(see Section \ref secgettingcgal), you can download \cgal examples +CGAL-\cgalReleaseNumber-examples.tar.xz and the compilation of an example is as simple as: cd $HOME/CGAL-\cgalReleaseNumber/examples/Triangulation_2 # go to an example directory @@ -112,6 +113,14 @@ or downloaded separately at there is no need to even configure it before using it. Programs using \cgal (examples, tests, demos, etc.) are instead configured using CMake and \cgal will be configured at the same time. +There is one exception to the paragraph before: if you want to install \cgal header files to +a standard location (such as `/usr/local/include`): + + cmake . + make install + +For more advanced usage, we refer to Section \ref installation_configwithcmake. + Note that even though \cgal is a header-only library, not all its dependencies are header-only. The libraries \sc{Gmp} and \sc{Mpfr}, for example, are not header-only. As such, these dependencies must be built or installed independently. diff --git a/Documentation/doc/Documentation/advanced/Configuration_variables.txt b/Documentation/doc/Documentation/advanced/Configuration_variables.txt index 343a513afb2..1bebdc5ddd7 100644 --- a/Documentation/doc/Documentation/advanced/Configuration_variables.txt +++ b/Documentation/doc/Documentation/advanced/Configuration_variables.txt @@ -3,6 +3,11 @@ \page configurationvariables Summary of %CGAL's Configuration Variables \cgalAutoToc +\cgalAdvancedBegin +This page lists CMake variables which you can use to help CMake find missing dependencies +while using the command line. We however recommend using the graphical interface (`cmake-gui`). +\cgalAdvancedEnd + \section installation_summary Summary of CGAL's Configuration Variables Most configuration variables are not environment variables but diff --git a/Documentation/doc/Documentation/advanced/Installation.txt b/Documentation/doc/Documentation/advanced/Installation.txt index e2f095f6e91..314ead765e1 100644 --- a/Documentation/doc/Documentation/advanced/Installation.txt +++ b/Documentation/doc/Documentation/advanced/Installation.txt @@ -2,11 +2,13 @@ \page installation Building %CGAL libraries (non header-only mode) \cgalAutoToc -Since \cgal version 5.0, \cgal is header-only be default, which means +\cgalAdvancedBegin +Since \cgal version 5.0, \cgal is header-only be default, which means that there is no need to compile \cgal or its libraries before it can be used. This page is for advanced users that have a good reason to still use the old way. -If this is not your case, head over back to the page \ref general_intro. +If this is not your case, head over back to the page \ref general_intro. +\cgalAdvancedEnd This page is a step-by-step description of how to configure, build, and (optionally) install \cgal in case you do not wish to use the - now enabled by default - header-only mode of \cgal. diff --git a/Documentation/doc/Documentation/advanced/advanced.txt b/Documentation/doc/Documentation/advanced/advanced.txt deleted file mode 100644 index b6136edda22..00000000000 --- a/Documentation/doc/Documentation/advanced/advanced.txt +++ /dev/null @@ -1,8 +0,0 @@ -/*! - -\page advanced Advanced - -- \subpage configurationvariables lists the various CMake variables that can be used to help find third-party dependencies. -- \subpage installation describes the (optional) process of building and installing %CGAL itself. - -*/ diff --git a/Documentation/doc/Documentation/main.txt b/Documentation/doc/Documentation/main.txt index 217a40b19d7..6d9ffe67c1e 100644 --- a/Documentation/doc/Documentation/main.txt +++ b/Documentation/doc/Documentation/main.txt @@ -5,12 +5,15 @@ The Computational Geometry Algorithms Library (\cgal) is a software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library. -

+ +

Package Overview

+ \cgal offers data structures and algorithms like \ref PartTriangulationsAndDelaunayTriangulations "triangulations", \ref PartVoronoiDiagrams "Voronoi diagrams", \ref PartPolygons, \ref PartPolyhedra, \ref PartArrangements "arrangements of curves", \ref PartMeshing "mesh generation", \ref PartGeometryProcessing "geometry processing", \ref PartConvexHullAlgorithms "convex hull algorithms", to name just a few. + All these data structures and algorithms operate on geometric objects like points and segments, and perform geometric tests on them. These objects and predicates are regrouped in \ref PartKernels "CGAL Kernels". @@ -21,33 +24,26 @@ solver for linear and quadratic programs. It further offers interfaces to third party software such as the GUI libraries Qt, Geomview, and the Boost Graph Library. -Getting Started -=============== +The complete list of packages is available on the page \ref packages. +

Getting Started

-- \ref usage describes how to obtain \cgal and the few steps required to build a program using \cgal. +Head over to \ref general_intro to learn how to obtain, install, and use \cgal. -- \ref thirdparty lists required and optional third party libraries. +

License

-- \ref manual gives an idea of where you should look for documentation. - -- \ref preliminaries lists how to control inlining, thread safety, code deprecation, checking of pre- and postconditions, and how to alter the failure behavior. - -Once you are familiar with building your programs with \cgal and how the documentation is structured, -you can head over to the \ref tutorials for a hand-in-hand introduction to \cgal data structures -and algorithms, or directly to the package(s) that interest you the \ref packages. Each package -contains simple examples of the various functionalities of the package. - -License -======= %CGAL is distributed under a dual-license scheme. %CGAL can be used together with Open Source software free of charge. Using %CGAL in other contexts can be done by obtaining a commercial license from [GeometryFactory](http://www.geometryfactory.com). For more details see the \ref license "License" page. -Manuals for the Previous Releases -================================= +

Acknowledgement

+ +We provide bibtex entries for each package so that you can cite \cgal correctly in your publications, +see the page \ref how_to_cite_cgal. + +

Manuals for the Previous Releases

For releases >= 4.2, visit [https://doc.cgal.org/X.Y](https://doc.cgal.org/4.2) diff --git a/Documentation/doc/Documentation/windows.txt b/Documentation/doc/Documentation/windows.txt index a1b641f7431..a45afc972a5 100644 --- a/Documentation/doc/Documentation/windows.txt +++ b/Documentation/doc/Documentation/windows.txt @@ -2,6 +2,9 @@ \page windows Using %CGAL on Windows (with Visual C++) \cgalAutoToc +\cgal \cgalReleaseNumber is supported for the following \sc{MS} Visual `C++` compilers: +14.0, 15.9, 16.0 (\sc{Visual Studio} 2015, 2017, and 2019). + \cgal is a library that has mandatory dependencies that must be first installed: \ref thirdpartyBoost and \ref thirdpartyMPFR. @@ -57,7 +60,7 @@ Note that \cgal is a header-only library, and there are therefore no `lib` or `d In this section we show how to compile a program that uses \cgal. The examples you find in these User Manual pages are not downloaded when you install \cgal with the Vcpkg library manager. You must download them separately from the following download page: -CGAL-\cgalReleaseNumber-examples.zip +CGAL-\cgalReleaseNumber-examples.zip Assuming you have unzipped this file in your home directory `C:\Users\Me`, we will next compile an example from the 2D Triangulation package.