msvc не генерирует moc-файл с CMake automoc - PullRequest
0 голосов
/ 23 ноября 2018
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)

set(source_files
    a.cpp
    b.cpp
    ...
   )

set(header_files
    a.hpp
    b.hpp
    ...
   )

set(Qt_libs
    Qt5::Core
    Qt5::Gui
    Qt5::Widget
    ...
   )

add_library(demo SHARED ${header_files} ${source_files})
target_link_libraries(demo ${Qt_libs} ...)
set_properties(TARGET demo PROPERTY FOLDER "somewhere")
install(...)

У меня есть пример CMakeLists.txt, показанный выше.

Самое странное, что эти moc-файлы не будут генерироваться до тех пор, пока я не изменю их вручную (например, добавив пустую строку в файл)эти заголовочные файлы (где Q_OBJECT представлены).

Ситуация не происходит каждый раз.Но, как только это произойдет, чистая сборка и удаление всего файла проекта не помогут.

Я использую qt 5.11, CMake 3.7, Visual Studio 2015.

1 Ответ

0 голосов
/ 26 ноября 2018

Вы устанавливаете глобальную настройку с помощью set (), которая может быть перезаписана.Пожалуйста, используйте set_target_properties, например

project(exampleProj)
add_executable(exampleProj main.cpp)
set_target_properties(exampleProj
   PROPERTIES
     CMAKE_INCLUDE_CURRENT_DIR ON
     CMAKE_AUTOMOC ON)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...