ctkMacroGenerateMocs.cmake 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # QT4_GENERATE_MOCS(inputfile1 [inputfile2 ...])
  2. include(MacroAddFileDependencies)
  3. function(QT4_GENERATE_MOCS)
  4. if(CTK_QT_VERSION VERSION_GREATER "4")
  5. QT5_GET_MOC_FLAGS(_moc_flags)
  6. else()
  7. QT4_GET_MOC_FLAGS(_moc_flags)
  8. endif()
  9. foreach(file ${ARGN})
  10. get_filename_component(abs_file ${file} ABSOLUTE)
  11. get_filename_component(source_name ${file} NAME_WE)
  12. get_filename_component(source_ext ${file} EXT)
  13. if(${source_ext} MATCHES "\\.[hH]")
  14. if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${source_name}.cpp)
  15. set(source_ext .cpp)
  16. elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${source_name}.cxx)
  17. set(source_ext .cxx)
  18. endif()
  19. endif()
  20. set(moc_file ${CMAKE_CURRENT_BINARY_DIR}/moc_${source_name}${source_ext})
  21. if(CTK_QT_VERSION VERSION_GREATER "4")
  22. if(Qt5_VERSION VERSION_LESS "5.6")
  23. QT5_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "")
  24. else()
  25. QT5_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "" "")
  26. endif()
  27. else()
  28. QT4_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "")
  29. endif()
  30. MACRO_ADD_FILE_DEPENDENCIES(${abs_file} ${moc_file})
  31. endforeach()
  32. endfunction()
  33. # create a Qt5 alias
  34. macro(QT5_GENERATE_MOCS)
  35. QT4_GENERATE_MOCS(${ARGN})
  36. endmacro()