如何正确地为 Cmake 中的 header 路径在我的项目中构建 Box2D
How to correctly for header paths in Cmake to build Box2D inside my project
正在尝试构建 Box2D。它使用 premake 作为构建系统,但我想将其更改为 CMake 以将其与我的程序一起编译。
主要header是${project_root_folder_here}/Box2D/Box2D.h
。该文件还包括一堆其他 header 以及完整路径,例如 #include "Box2D/Common/b2Settings.h"
和 #include "Box2D/Common/b2Draw.h"
。所有 Box2D 文件都通过完整路径包含相应的 headers。
我的问题是我不知道如何正确设置 CMakeLists.txt 以在不更改文件(#include
路径)的情况下导入 Box2D 源以反映我的项目文件夹结构,这将是以下:
project_root_folder
-> Box2D/
---> Common/
-----> ...
---> Collision/
-----> ...
---> Dynamics/
-----> ...
---> Box2D.h
-> MySources/
---> some_header.h
---> some_source.cpp
---> main.cpp
-> CMakeLists.txt
-> Build/
我已经尝试设置 include_directories("Box2D")
并指定所有可能的 header 和来源,但我仍然无法构建它。
在 <project_root_folder>/CMakeLists.txt
中,您可以执行以下操作:
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
这将确保 headers 可以相对于 <project_root_folder>
找到
正在尝试构建 Box2D。它使用 premake 作为构建系统,但我想将其更改为 CMake 以将其与我的程序一起编译。
主要header是${project_root_folder_here}/Box2D/Box2D.h
。该文件还包括一堆其他 header 以及完整路径,例如 #include "Box2D/Common/b2Settings.h"
和 #include "Box2D/Common/b2Draw.h"
。所有 Box2D 文件都通过完整路径包含相应的 headers。
我的问题是我不知道如何正确设置 CMakeLists.txt 以在不更改文件(#include
路径)的情况下导入 Box2D 源以反映我的项目文件夹结构,这将是以下:
project_root_folder
-> Box2D/
---> Common/
-----> ...
---> Collision/
-----> ...
---> Dynamics/
-----> ...
---> Box2D.h
-> MySources/
---> some_header.h
---> some_source.cpp
---> main.cpp
-> CMakeLists.txt
-> Build/
我已经尝试设置 include_directories("Box2D")
并指定所有可能的 header 和来源,但我仍然无法构建它。
在 <project_root_folder>/CMakeLists.txt
中,您可以执行以下操作:
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
这将确保 headers 可以相对于 <project_root_folder>