与 SDL2 一起构建 SDL2_image(以及类似案例)
Building SDL2_image alongside SDL2 (and similar cases)
我有以下条件:
- 我通过使用 git 子模块 git 直接从 git 中心镜像使用 SDL2(源)作为依赖项
- 我还使用 SDL2_image(来源)作为类似的依赖项
- 我的 cmake 项目包括
add_subdirectory
的两个部门
这里的问题是 SDL2_image 试图用 find_package
找到 SDL2,但正如我提到的,我正在与我的项目一起构建 SDL2,所以 find_package
无法在系统。之后,我将 SDL2_DIR 设置为指向正确的目录,但是 SDL2Config.cmake 在最流行的非官方回购协议之一中只包含无效文件,因此破坏了所有项目。
问题是。我怎样才能很好地解决这个问题?我的所有部门都是从项目旁边的源代码构建的,而且效果很好。当然,我可以构建 SDL2_image 并单独包含二进制文件,但我认为这不是一个好的解决方案。
使用以下内容创建 FindSDL2.cmake
:
add_library(SDL2::SDL2 ALIAS SDL2)
通过将文件路径添加到 CMAKE_MODULE_PATH
或 CMAKE_PREFIX_PATH
.
确保 find_package
首先看到该文件
我有以下条件:
- 我通过使用 git 子模块 git 直接从 git 中心镜像使用 SDL2(源)作为依赖项
- 我还使用 SDL2_image(来源)作为类似的依赖项
- 我的 cmake 项目包括
add_subdirectory
的两个部门
这里的问题是 SDL2_image 试图用 find_package
找到 SDL2,但正如我提到的,我正在与我的项目一起构建 SDL2,所以 find_package
无法在系统。之后,我将 SDL2_DIR 设置为指向正确的目录,但是 SDL2Config.cmake 在最流行的非官方回购协议之一中只包含无效文件,因此破坏了所有项目。
问题是。我怎样才能很好地解决这个问题?我的所有部门都是从项目旁边的源代码构建的,而且效果很好。当然,我可以构建 SDL2_image 并单独包含二进制文件,但我认为这不是一个好的解决方案。
使用以下内容创建 FindSDL2.cmake
:
add_library(SDL2::SDL2 ALIAS SDL2)
通过将文件路径添加到 CMAKE_MODULE_PATH
或 CMAKE_PREFIX_PATH
.
find_package
首先看到该文件