CMake source_group не работает на Qtcreator - PullRequest
0 голосов
/ 28 декабря 2018

В моем проекте у меня есть 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 работать?

1 Ответ

0 голосов
/ 29 декабря 2018

source_group используется для проектов, созданных cmake, которые используют генератор типа Visual Studio, в противном случае он просто игнорируется.Я видел, что QtCreator имеет выпадающий список для генератора.Какой вы используете?Я не видел никакой документации о том, как QtCreator интерпретирует проект для вывода списка файлов в его собственный графический интерфейс.Это выше того, что контролирует cmake.

...