列出由cmake生成的Visual Studio C ++项目中的头文件

我正在为我们的产品构build一个基于cmake的构build系统。 问题是由cmake生成的Visual Studio项目在解决scheme浏览器中不显示头文件。

我需要添加到CMakeList.txt列出头文件? 首选的解决scheme是不需要列出每个特定的头文件。

解决scheme这是我附带的解决scheme:

file(GLOB_RECURSE INCS "*.h") add_library(myLib ${SRCS} ${INCS}) 

谢谢

只需添加头文件以及源文件:

 PROJECT (Test) ADD_EXECUTABLE(Test test.cpp test.h) 

或者使用variables:

 PROJECT (Test) SET(SOURCE test.cpp ) SET(HEADERS test.h ) ADD_EXECUTABLE(Test ${SOURCE} ${HEADERS}) 

基本的技巧是将头文件添加到其中一个目标(可执行文件或库)。 这是特别恼人的,因为cmake已经知道所有的头文件依赖关系,应该为我们照顾这个。 您可以使用source_group命令进一步组织它:

  source_group("My Headers" FILES ${MY_HDRS}) 

请注意,你也必须在Xcode中做同样的事情。

在Qt项目的构build系统上工作时,我遇到了同样的问题,我拿出了这个解决scheme,感谢这个页面上的其他post。 我包括一个完整的例子,从我的makefiles改编而来。 希望这可以帮助!

 cmake_minimum_required (VERSION 2.6) project (DemoSolution) find_package(Qt4 REQUIRED) include(${QT_USE_FILE}) add_definitions(${QT_DEFINITIONS}) include_directories (../../include/) set(CMAKE_INCLUDE_CURRENT_DIR ON) file(GLOB Demo_SOURCES *.cpp) file(GLOB Demo_HEADERS *.hpp) file(GLOB Demo_FORMS *.ui) file(GLOB Demo_RESOURCES resources.qrc) qt4_wrap_cpp(Demo_MOC ${Demo_HEADERS}) qt4_wrap_ui(Demo_FORMS_HEADERS ${Demo_FORMS}) qt4_add_resources(Demo_RESOURCES_RCC ${Demo_RESOURCES}) source_group("Headers" FILES ${Demo_HEADERS}) source_group("MOC" FILES ${Demo_MOC}) set(QT_USE_QTNETWORK, true) set(QT_USE_QTSQL, true) set(QT_USE_QTXML, true) add_library(Demo SHARED ${Demo_SOURCES} ${Demo_HEADERS} ${Demo_MOC} ${Demo_FORMS_HEADERS} ${Demo_RESOURCES_RCC} ) target_link_libraries(Demo ${QT_LIBRARIES}) add_definitions(-D_DEMO_EXPORTS)