gpt4 book ai didi

c++ - CMake source_group 不适用于 Qtcreator

转载 作者:行者123 更新时间:2023-11-28 04:27:28 24 4
gpt4 key购买 nike

在我的项目中,我有一个顶级 CMakeLists.txt,我在其中定义了一般项目属性:

cmake_minimum_required(VERSION 3.11 FATAL_ERROR)

find_program(CCACHE_PROGRAM ccache)
if(CCACHE_PROGRAM)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
endif (CCACHE_PROGRAM)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)

project(databaseclient LANGUAGES CXX VERSION 0.1.0.0 DESCRIPTION "Asynchronous database client")

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE DEBUG)
endif(NOT CMAKE_BUILD_TYPE)

add_subdirectory(src)

在我项目的源文件夹中,我定义了一个 OBJECT 库,稍后将链接到静态库和动态库:

set(
SOURCE_FILES
${PROJECT_SOURCE_DIR}/include/databaseclient/parameters.hpp
)
add_library(
${PROJECT_NAME}
OBJECT
${SOURCE_FILES}
)
set_target_properties(
${PROJECT_NAME}
PROPERTIES
VERSION ${PROJECT_VERSION}
POSITION_INDEPENDENT_CODE ON
)
target_compile_features(
${PROJECT_NAME}
PUBLIC
cxx_std_11 cxx_noexcept
cxx_auto_type
cxx_constexpr
cxx_deleted_functions
cxx_inline_namespaces
cxx_lambdas
cxx_noexcept
cxx_nullptr
cxx_override
cxx_range_for
)
target_compile_definitions(
${PROJECT_NAME}
PRIVATE
ASIO_STANDALONE=1
ASIO_NO_EXCEPTIONS=1
ASIO_NO_DEPRECATED=1
)
target_include_directories(
${PROJECT_NAME}
PRIVATE
${byte-lite_SOURCE_DIR}/include/nonstd
${asio_SOURCE_DIR}/asio/include/
${PROJECT_SOURCE_DIR}/include/
)

QtCreator 创建了一个文件夹结构,其中一个节点具有我的源文件的完整路径,这显然不是最佳选择。我试图将 source_group 添加到 src 文件夹下的列表中,但 QtCreator 似乎只是忽略它。

如何让 source_group 工作?

最佳答案

source_group 用于由 cmake 创建的项目,这些项目使用 Visual Studio 等生成器,否则将被忽略。我看到 QtCreator 有一个生成器的下拉列表。你用的是哪一个?我没有看到任何关于 QtCreator 如何解释项目以将文件列表到它自己的 GUI 中的文档。这超出了 cmake 的控制范围。

关于c++ - CMake source_group 不适用于 Qtcreator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53963481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com