Visual studio Visual Studio作为CMake友好项目的编辑器
我正试图使用VisualStudio作为一个编辑器来浏览GitHub上的大型开源项目。目录结构如下所示Visual studio Visual Studio作为CMake友好项目的编辑器,visual-studio,cmake,editor,Visual Studio,Cmake,Editor,我正试图使用VisualStudio作为一个编辑器来浏览GitHub上的大型开源项目。目录结构如下所示 /module1/include/ /module1/src/ /module2/include/ /module2/src/ ... 而构建由CMakeLists.txt维护 如果出于某种原因(例如,良好的IntelliSense支持),我坚持使用Visual Studio作为编辑器,那么最佳实践是什么 我尝试了“新建-现有代码中的项目”。它会产生丑陋的项目结构,其中所有*.cpp文件都在
/module1/include/
/module1/src/
/module2/include/
/module2/src/
...
而构建由CMakeLists.txt维护
如果出于某种原因(例如,良好的IntelliSense支持),我坚持使用Visual Studio作为编辑器,那么最佳实践是什么
有没有办法创建具有适当目录结构和包含路径的visual studio解决方案?我看到了四种可能的方法:
add_library()
或message()
)之外,您可以模拟所有函数,并尝试获取原始CMake
项目以生成Visual Studio解决方案。例如,您使用空的实现来创建您的应用程序:
macro(add_custom_command)
endmacro()
macro(add_custom_target)
endmacro()
macro(set_property)
endmacro()
...
我承认这种方法有其局限性CMakeLists.txt
,以将所有源/标题收集到一个新的解决方案中,如:
cmake_minimum_required(VERSION 2.8)
project(MyProject C CXX)
set(_src_root_path "${CMAKE_CURRENT_SOURCE_DIR}")
file(
GLOB_RECURSE _source_list
LIST_DIRECTORIES false
RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
"${_src_root_path}/*.c*"
"${_src_root_path}/*.h*"
)
add_library(MySources ${_source_list})
foreach(_source IN ITEMS ${_source_list})
get_filename_component(_source_path "${_source}" PATH)
string(REPLACE "/" "\\" _source_path_msvc "${_source_path}")
source_group("${_source_path_msvc}" FILES "${_source}")
endforeach()
只需将它放在某个地方(在我的示例中是源代码的根;但是您可以只更改\u src\u root\u path
),并生成一个包含由目录构成的源代码/头的Visual Studio项目(请参阅)你能补充一下你提到的“开源项目”的细节吗?使用CMake会收到哪些错误消息?一般来说,在不知道您的目标环境是什么的情况下:如果您想使用Visual Studio作为开发基于
GNU
工具链的项目的IDE,可以使用商业工具,如或。该项目包含大量运行Linux可执行文件的构建前和构建后bash脚本,所以我不相信我可以用VS来编译这个项目。我正在寻找一种方法来轻松创建启用IntelliSense的VS解决方案。这个项目非常庞大:有一百个子目录包含它们自己的include/和src/。在微软添加对CMake的特定支持之前,在这个阶段使用CLion更为现实。VS有一个附加组件,名为CMake Tools for Visual Studio,但其质量取决于您自己的测试。从CMake 3.8开始,该命令有一个树
参数,用于递归地将源文件映射到源组。foreach()
可以简化为一行:source\u组(树${CMAKE\u CURRENT\u source\u DIR}文件${u source\u list})