cmake_policy(SET CMP0100 OLD) # Generate moc files externally. # If AUTOMOC generates the header moc files as well # (it should not in OLD behavior), the test will fail with a # multiple definition error when linking the executable. qtx_wrap_cpp(mocCMP0100OldMoc ${CSD}/Obj.hh ${CSD}/Obj2.hh) qtx_generate_moc(${CBD}/Obj.cpp ${CMAKE_CURRENT_BINARY_DIR}/Obj.moc) qtx_generate_moc(${CBD}/Obj2.cpp ${CMAKE_CURRENT_BINARY_DIR}/Obj2.moc) # Make sure AUTOGEN file skipping is disabled set_source_files_properties( ${CSD}/Obj.hh ${CBD}/Obj.cpp ${CSD}/Obj2.hh ${CBD}/Obj2.cpp PROPERTIES SKIP_AUTOGEN OFF SKIP_AUTOMOC OFF ) add_executable(mocCMP0100Old ${CSD}/main.cpp ${CSD}/Obj.hh # Manually include Obj.hh ${CSD}/Obj.cpp ${CSD}/Obj2.cpp # Let AUTOMOC detect Obj2.hh ${mocCMP0100OldMoc} ) target_link_libraries(mocCMP0100Old ${QT_LIBRARIES}) target_include_directories(mocCMP0100Old PRIVATE ${CMAKE_CURRENT_BINARY_DIR})