/*!
\page devman_create_and_use_a_cmakelist How to use %CGAL with CMake

This page will explain how to manually create a `CMakeLists.txt` file to link a custom program with \cgal.
A base can be created using the script `cgal_create_CMakeLists`. Its usage is detailed in Section \ref devman_create_cgal_CMakeLists.
\section seclink Linking with CGAL
To link with the \cgal library, use the following:
\code
find_package(CGAL REQUIRED)
add_executable(my_executable my_source_file.cpp)
target_link_libraries(my_executable CGAL::CGAL)
\endcode

Other \cgal libraries are linked similarly. For example, with `CGAL_Core`:

\code
find_package(CGAL REQUIRED COMPONENTS Core)
target_link_libraries(my_executable CGAL::CGAL CGAL::CGAL_Core)
\endcode

There are also imported targets to link with \cgal dependencies that can be found in
the section \subpage thirdparty.

\note The \cgal targets define the following compiler flags:
  - `-frounding-math` with gcc
  - `/fp:strict /fp:except-` with MSVC

\section secexample Minimal Example Using Qt6
This section describes a minimal example of a program that uses \cgal and Qt6 for some GUI features.

\subsection subcmake CMakeLists.txt
\dontinclude Surface_mesh/CMakeLists.txt
\skip cmake_minimum_required
\until project


\skip #CGAL_Qt6 is needed for the drawing.
\until find_package


\skip #create the executable of the application
\until "draw_surface_mesh.cpp"


\skip if(CGAL_Qt6_FOUND)
\until target_link_libraries(draw_surface_mesh PRIVATE CGAL::CGAL_Basic_viewer)
\skip endif
\until #end of the file

\subsection subexcpp draw_surface_mesh.cpp
\include Surface_mesh/draw_surface_mesh.cpp
*/
