mirror of https://github.com/CGAL/cgal
41 lines
1.9 KiB
Plaintext
41 lines
1.9 KiB
Plaintext
/*!
|
|
|
|
\page devman_create_cgal_CMakeLists Creating a CMake Script for a Program Using %CGAL
|
|
|
|
To compile a program that is not shipped with \cgal, it is recommended to also rely on a CMake-supported
|
|
configuration using a `CMakeLists.txt`. The Bourne-shell script `cgal_create_CMakeLists.txt`
|
|
can be used to create such `CMakeLists.txt` files.
|
|
This script resides in the `scripts` directory of \cgal (e.g. `CGAL-\cgalReleaseNumber``/scripts`
|
|
directory if you have downloaded a tarball).
|
|
Executing `cgal_create_CMakeLists.txt` in an application directory creates a
|
|
`CMakeLists.txt` containing rules to build the contained
|
|
application(s). Three command line options determine details of the
|
|
configuration.
|
|
|
|
<DL>
|
|
<DT><B>`-s source`</B><DD> If this parameter is given the script will
|
|
create <B>a single executable</B> for 'source' linked with
|
|
compilations of all other source files
|
|
(`*.cc`, `*.cp`, `*.cxx`, `*.cpp`, `*.CPP`, `*.c++`, or `*.C`).
|
|
This behavior is usually needed for (graphical) demos.
|
|
|
|
If the parameter is not given, the script creates <B>one executable for each given
|
|
source file</B>.
|
|
<DT><B>`-c com1:com2:...`</B><DD> Lists components ("com1",
|
|
"com2") of \cgal to which the executable(s) should be linked. Valid components are \cgal's
|
|
libraries (i.e.\ "Core", "ImageIO", and "Qt6"). An example is `-c Core`.
|
|
|
|
<DT><B>`-b boost1:boost2:...`</B><DD> Lists components ("boost1",
|
|
"boost2") of \boost to which the executable(s) should be
|
|
linked. Valid options are, for instance, "filesystem" or "program_options".
|
|
|
|
</DL>
|
|
|
|
These options should suffice to create a `CMakeLists.txt` script
|
|
for most directories containing programs. However, in some special
|
|
cases, it might still be required to create the script manually, for
|
|
instance, if some source files/executables need a different linking than
|
|
other source files. The Section \ref devman_create_and_use_a_cmakelist provides more details.
|
|
|
|
*/
|