ctkMacroGenerateMocs.cmake 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. QT5_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "")
  23. else()
  24. QT4_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "")
  25. endif()
  26. MACRO_ADD_FILE_DEPENDENCIES(${abs_file} ${moc_file})
  27. endforeach()
  28. endfunction()
  29. # create a Qt5 alias
  30. macro(QT5_GENERATE_MOCS)
  31. QT4_GENERATE_MOCS(${ARGN})
  32. endmacro()