CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkMacroGenerateMocs.cmake
Go to the documentation of this file.
1 
2 # QT4_GENERATE_MOCS(inputfile1 [inputfile2 ...])
3 
4 include(MacroAddFileDependencies)
5 
6 function(QT4_GENERATE_MOCS)
7  if(CTK_QT_VERSION VERSION_GREATER "4")
8  QT5_GET_MOC_FLAGS(_moc_flags)
9  else()
10  QT4_GET_MOC_FLAGS(_moc_flags)
11  endif()
12  foreach(file ${ARGN})
13 
14  get_filename_component(abs_file ${file} ABSOLUTE)
15 
16  get_filename_component(source_name ${file} NAME_WE)
17  get_filename_component(source_ext ${file} EXT)
18  if(${source_ext} MATCHES "\\.[hH]")
19  if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${source_name}.cpp)
20  set(source_ext .cpp)
21  elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${source_name}.cxx)
22  set(source_ext .cxx)
23  endif()
24  endif()
25 
26  set(moc_file ${CMAKE_CURRENT_BINARY_DIR}/moc_${source_name}${source_ext})
27 
28  if(CTK_QT_VERSION VERSION_GREATER "4")
29  if(Qt5_VERSION VERSION_LESS "5.6")
30  QT5_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "")
31  else()
32  QT5_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "" "")
33  endif()
34  else()
35  QT4_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "")
36  endif()
37  MACRO_ADD_FILE_DEPENDENCIES(${abs_file} ${moc_file})
38  endforeach()
39 endfunction()
40 
41 # create a Qt5 alias
42 macro(QT5_GENERATE_MOCS)
43  QT4_GENERATE_MOCS(${ARGN})
44 endmacro()