与 SDL2 一起构建 SDL2_image(以及类似案例)

Building SDL2_image alongside SDL2 (and similar cases)

我有以下条件:

  1. 我通过使用 git 子模块 git 直接从 git 中心镜像使用 SDL2(源)作为依赖项
  2. 我还使用 SDL2_image(来源)作为类似的依赖项
  3. 我的 cmake 项目包括 add_subdirectory
  4. 的两个部门

这里的问题是 SDL2_image 试图用 find_package 找到 SDL2,但正如我提到的,我正在与我的项目一起构建 SDL2,所以 find_package 无法在系统。之后,我将 SDL2_DIR 设置为指向正确的目录,但是 SDL2Config.cmake 在最流行的非官方回购协议之一中只包含无效文件,因此破坏了所有项目。

问题是。我怎样才能很好地解决这个问题?我的所有部门都是从项目旁边的源代码构建的,而且效果很好。当然,我可以构建 SDL2_image 并单独包含二进制文件,但我认为这不是一个好的解决方案。

使用以下内容创建 FindSDL2.cmake

add_library(SDL2::SDL2 ALIAS SDL2)

通过将文件路径添加到 CMAKE_MODULE_PATHCMAKE_PREFIX_PATH.

确保 find_package 首先看到该文件