[英]How can I model OTHER_FILES from qmake with CMake?
在基於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 中,我必須通過“文件 > 打開”而不是項目瀏覽器來訪問它們。 有解決方法嗎?
將未編譯的文件添加為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
)
您可以使用取決於給定文件的自定義目標 :
add_custom_target(project-related-files SOURCES ${OTHER_FILES})
由於缺少COMMAND
,將生成一個空目標,但仍將取決於SOURCES
。 這也是將其他文件包含到IDE中的官方方法:
SOURCES
指定要包含在定制目標中的其他源文件。 即使沒有構建規則,指定的源文件也將添加到IDE項目文件中,以便於編輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.