什么是 CGAL::data_file_path()?

What is CGAL::data_file_path()?

我正在尝试使用 Cmake 构建一个使用 CGAL 的程序。在我的 CMakeLists.txt 文件中我有这个:

find_package(CGAL REQUIRED QUIET COMPONENTS Core)

运行 cmake 生成此消息:

CMake Warning at /usr/local/lib/cmake/CGAL/CGALConfig.cmake:92 (message):
  CGAL_DATA_DIR cannot be deduced, set the variable CGAL_DATA_DIR to set the
  default value of CGAL::data_file_path()
Call Stack (most recent call first):
  CMakeLists.txt:30 (find_package)

我不确定 CGAL::data_file_path() 应该是什么,目前我无法在 CGAL 文档中找到它。有人知道这件事吗?

如果您打开 CGAL documentation page 并在右上角的搜索字段中输入文本 "data_file_path",您将得到:

std::string CGAL::data_file_path (const std::string & filename)
returns the full path of a data file from CGAL.

The data files are located in the data directory of a CGAL release or in the directory Data/data from a git branch checkout. That function uses as prefix the environment variable CGAL_DATA_DIR if set, and the value of the macro CGAL_DATA_DIR otherwise. When using cmake and a standard CGAL setup, linking the target using that function with the target CGAL::Data will automatically set the macro CGAL_DATA_DIR pointing to the data directory of the CGAL version used. The function will attempt to open the file at the returned location and will print a warning message via std::cerr if the file could not be opened.

您还可以在 CGAL examples 目录(默认情况下未安装 AFAIK)中找到使用 data_file_path 函数的示例。

如果您不在代码中调用此函数,那么您可以忽略您询问的 CMake 警告 - 长期以来我就是这样做的。如果你在 CMakeLists.txt 中设置 CGAL_DATA_DIR 宏,你也可以摆脱这个警告,例如:

set(CGAL_DATA_DIR ".")

还有其他方法可以设置此目录前缀 - 通过环境变量 CGAL_DATA_DIR,或作为 CMake 调用中的选项等。