在基于qmake
的项目中,可以包含OTHER_FILES
以在QtCreator中使用它们,例如。
QT += core gui widgets
TARGET = example-program
TEMPLATE = app
HEADERS = mainwindow.h
SOURCES = main.cpp mainwindow.cpp
OTHER_FILES = README.md LICENCE examples/network/server.c
这样可以轻松访问QtCreator中的README.md
。具有相同目标的CMake文件类似于
cmake_minimum_required(VERSION 3.5)
project(example CXX)
set(CMAKE_AUTOMOC ON)
find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
set(HEADERS mainwindow.h)
set(SOURCES main.cpp mainwindow.cpp)
set(OTHER_FILES README.md LICENCE examples/network/server.c)
add_executable(example-program ${SOURCES} ${HEADERS})
target_link_libraries(example-program Qt5::Core Qt5::Gui Qt5::Widgets)
但是,OTHER_FILES
未显示在QtCreator中,我必须通过“文件>打开”而不是项目浏览器访问它们。有解决方法吗?
答案 0 :(得分:2)
添加非编译文件作为CMake目标的来源没有问题;如果CMake没有识别出他们的扩展名,他们就会忽略它们。所以你可以轻松地做到这一点:
add_executable(example-program ${SOURCES} ${HEADERS} ${OTHER_FILES})
对于可能与实际来源(基于其扩展名)混淆的文件,始终可以选择将其HEADER_FILE_ONLY
属性设置为true:
set_source_files_properties(
${OTHER_FILES}
PROPERTIES
HEADER_FILE_ONLY TRUE
)
答案 1 :(得分:1)
您可以使用取决于给定文件的a custom target:
add_custom_target(project-related-files SOURCES ${OTHER_FILES})
由于缺少COMMAND
,因此会生成空目标,但仍会依赖SOURCES
。这也是将其他文件包含到IDE中的官方方式:
SOURCES
指定要包含在自定义目标中的其他源文件。指定的源文件将添加到IDE项目文件中,以便于编辑,即使它们没有构建规则。