qt - 如何使用 CMake 从 qmake 建模 OTHER_FILES?
问题描述
在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
这样就可以README.md
轻松地在 QtCreator 中访问。具有相同目标的 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 中没有显示它们,我必须通过“文件 > 打开”而不是项目浏览器来访问它们。有解决方法吗?
解决方案
添加非编译文件作为 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
)
推荐阅读
- c# - 带有 SQL Server 的实体框架:数据库包含依赖表中的行,外键指向主体中不存在的行
- azure - Azure Application Insights - 如何分析导出的数据
- shopify - 在 Shopify 主题的 {% schema %} 部分添加动态内容
- firebase - Firebase 云存储上的签名 URL 突然变得无法访问
- c - mbrtowc 在嵌入式设备上为非 ASCII 字符返回 -1,但在 linux 计算机上不返回
- sql - SQL查询:修改返回的列值
- python - 按值查找元素 Selenium/Python
- html - 如何更改引导程序中每个药丸(选项卡)的选项卡内容颜色?
- c++ - 添加 char 和 int 的结果是什么?
- left-join - SQLBase,从一个表列中查询多个值