Ubuntu 18.04 上的 CGAL 示例

CGAL example on Ubuntu 18.04

我在 ubuntu 18.04 LTS 上通过包管理器安装了 CGAL。然后如上https://doc.cgal.org/latest/Manual/usage.html所述,为了编译一个示例程序。当我发布时:

cmake -DCMAKE_BUILD_TYPE=Release .

配置示例时,出现以下错误:

CMake Error at CMakeLists.txt:29 (create_single_source_cgal_program):
  Unknown CMake command "create_single_source_cgal_program".


-- Configuring incomplete, errors occurred!

请帮忙;我该怎么办?

CmakeLists.txt

# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.


cmake_minimum_required(VERSION 3.1...3.15)
project( Triangulation_2_Examples )


if(NOT POLICY CMP0070 AND POLICY CMP0053)
  # Only set CMP0053 to OLD with CMake<3.10, otherwise there is a warning.
  cmake_policy(SET CMP0053 OLD)
endif()

if(POLICY CMP0071)
  cmake_policy(SET CMP0071 NEW)
endif()

find_package(CGAL COMPONENTS Qt5)

if(CGAL_Qt5_FOUND)
  add_definitions(-DCGAL_USE_BASIC_VIEWER -DQT_NO_KEYWORDS)
endif()

if ( CGAL_FOUND )

  # create a target per cppfile
  file(GLOB cppfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
  foreach(cppfile ${cppfiles})
    create_single_source_cgal_program( "${cppfile}" )
  endforeach()

  if(CGAL_Qt5_FOUND)
    target_link_libraries(draw_triangulation_2 PUBLIC CGAL::CGAL_Qt5)
  else()
    message(STATUS "NOTICE: The example draw_triangulation_2 requires Qt and will not be compiled.")
  endif()

else()

    message(STATUS "This program requires the CGAL library, and will not be compiled.")

endif()

看起来我们应该在 CGAL 安装期间立即构建 所有 CGAL 示例(使用 cmake 选项 -DWITH_examples=ON)。示例和子示例很多,所以需要很长时间才能全部构建。

但是我能够select非常一个一个地构建这些示例(见下文)。我不是 CGAL 开发人员,所以我的方法可能不是他们想要的 - 但无论如何我希望它对 CGAL 社区有用。我假设 CGAL 已经安装,没有示例。

步骤 1。为CGAL示例创建一个任意名称的目录,并进入该目录:

mkdir CGAL
cd GGAL

步骤 2。将 CGAL 发行版中的 examples 目录复制到此目录中,并确保它是可写的:

cp -r <CGAL distribution>/examples .
chmod -R u+w examples

步骤 3。 运行cmake生成一个Makefile。如果你将 CGAL 安装到一些不寻常的位置,你将需要 CMAKE_INSTALL_PREFIX 选项来告诉 cmake 这个位置:

cmake -DCMAKE_INSTALL_PREFIX=<CGAL location> examples

步骤 4。 运行 make help 查看所有可能的示例。你可以select所有的例子,这些例子形象化了一些东西:

make help | grep draw

步骤 5。构建 Triangulation_2 个示例之一:

make draw_triangulation_2

步骤 6。进入示例目录和运行示例:

cd examples/Triangulation_2
./draw_triangulation_2&

顺便说一句,由于某些原因,第一个 draw_triangulation_2 运行 在我的盒子上显示了一个空的 window,但第二个 运行 显示了正确的图片。