清单在Visual Studio C头文件++通过cmake的生成项目(Listing header

2019-06-26 13:13发布

我建立一个基于CMake的构建系统为我们的产品。 问题是,Visual Studio项目,由CMake的生成,不解决方案浏览器中显示的头文件。

我需要在CMakeList.txt添加到列表中的头文件? 优选的解决办法是在没有必要列出每个特定的头文件。

解决方案这是我想出了一个解决方案:

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

谢谢

Answer 1:

只需添加头文件与源文件一起:

PROJECT (Test)

ADD_EXECUTABLE(Test test.cpp test.h)

或者使用变量:

PROJECT (Test)

SET(SOURCE
  test.cpp
)

SET(HEADERS
  test.h
)

ADD_EXECUTABLE(Test ${SOURCE} ${HEADERS})


Answer 2:

基本的技巧,这是头文件添加到目标(无论是可执行文件或库)中的一个。 这是特别令人气愤的,因为cmake的已经知道所有的头文件的依赖性,并应照顾这对我们来说。 您可以进一步利用其组织source_group命令:

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

需要注意的是你必须做同样的事情在Xcode了。



Answer 3:

我有同样的问题,在一个Qt工程构建系统工作时,我想出了这个解决方案,这要归功于此页面上的其他职位。 我包括改编自我的makefile一个完整的例子。 希望这可以帮助!

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)


Answer 4:

我知道这个答案实在是太迟了,但在最近版本的Visual Studio,你可以从“CMake的目标模式”的说法更改为“文件夹视图”

在这个文件夹视图,你将能够看到所有你的头文件。

说实话,我会采取简单地改变Visual Studio中的视图在任何一天修改与Windows特定黑客CMake的文件。



文章来源: Listing header files in Visual Studio C++ project generated by cmake