如何在 QtCreator 中使用 CMAKE 列出自定义文件?
How to list custom files using CMAKE in QtCreator?
使用CMAKE
管理QtCreator
下的项目,一些有用的文件没有显示在项目浏览器中(例如xml文件,.ui文件等.).
是否可以使用 CMAKE
显式添加自定义文件以在项目中列出?
#*************************************************************************
# Indicate a related file for the project, only for convenient showing in
# project, does not mean dependency, inclusion, but just related.
function ("IndicateExternalFile" NAME )
# TODO: No idea how to make this.
endfunction()
目前尝试次数:
file( GLOB "test.xml") #Not showing.
您可以添加自定义目标并将附加目标绑定到此目标。
示例:
add_custom_target(useful_files ALL
SOURCES
MyUsefulFile.txt
Read.me
Version.txt
)
我在每个子文件夹中都使用它。 QtCreator 在项目列表中显示添加的文件。
顺便说一句:我避免使用 file( GLOB ...)
。 CMake的文档原因。
将我的评论变成答案
我已经尝试使用 qt-creator,您只需将 "custom files" 作为源文件添加到您的库或可执行 CMake 目标中,以显示在您的 IDE 项目中:
但我不得不承认这不适用于 non-existing/optional 文件。
因此您可以向您的函数添加 if (EXISTS ...)
检查,如下例所示:
cmake_minimum_required(VERSION 2.8)
project(CMakeTest)
add_executable(${PROJECT_NAME} "main.cpp")
function(IndicateExternalFile _target)
foreach(_file IN ITEMS ${ARGN})
if ((IS_ABSOLUTE "${_file}" AND EXISTS "${_file}") OR
(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_file}"))
target_sources(${_target} PRIVATE "${_file}")
endif()
endforeach()
endfunction()
file(WRITE "text.xml" "")
IndicateExternalFile(${PROJECT_NAME} "text.xml" "test2.xml")
注意:您需要一个现有的目标来添加"sources"和target_sources()
。
使用CMAKE
管理QtCreator
下的项目,一些有用的文件没有显示在项目浏览器中(例如xml文件,.ui文件等.).
是否可以使用 CMAKE
显式添加自定义文件以在项目中列出?
#*************************************************************************
# Indicate a related file for the project, only for convenient showing in
# project, does not mean dependency, inclusion, but just related.
function ("IndicateExternalFile" NAME )
# TODO: No idea how to make this.
endfunction()
目前尝试次数:
file( GLOB "test.xml") #Not showing.
您可以添加自定义目标并将附加目标绑定到此目标。
示例:
add_custom_target(useful_files ALL
SOURCES
MyUsefulFile.txt
Read.me
Version.txt
)
我在每个子文件夹中都使用它。 QtCreator 在项目列表中显示添加的文件。
顺便说一句:我避免使用 file( GLOB ...)
。 CMake的文档原因。
将我的评论变成答案
我已经尝试使用 qt-creator,您只需将 "custom files" 作为源文件添加到您的库或可执行 CMake 目标中,以显示在您的 IDE 项目中:
但我不得不承认这不适用于 non-existing/optional 文件。
因此您可以向您的函数添加 if (EXISTS ...)
检查,如下例所示:
cmake_minimum_required(VERSION 2.8)
project(CMakeTest)
add_executable(${PROJECT_NAME} "main.cpp")
function(IndicateExternalFile _target)
foreach(_file IN ITEMS ${ARGN})
if ((IS_ABSOLUTE "${_file}" AND EXISTS "${_file}") OR
(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_file}"))
target_sources(${_target} PRIVATE "${_file}")
endif()
endforeach()
endfunction()
file(WRITE "text.xml" "")
IndicateExternalFile(${PROJECT_NAME} "text.xml" "test2.xml")
注意:您需要一个现有的目标来添加"sources"和target_sources()
。