123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- if(COMMAND cmake_policy)
- cmake_policy(PUSH)
- endif(COMMAND cmake_policy)
- cmake_minimum_required( VERSION 2.6.4 FATAL_ERROR )
- cmake_policy(SET CMP0002 OLD)
- get_filename_component(_AUTOMOC4_CURRENT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
- include(${_AUTOMOC4_CURRENT_DIR}/Automoc4Version.cmake)
- if(EXISTS ${_AUTOMOC4_CURRENT_DIR}/kde4automoc.cpp)
- get_target_property(AUTOMOC4_EXECUTABLE automoc4 LOCATION)
-
- set(_AUTOMOC4_EXECUTABLE_DEP automoc4)
- else(EXISTS ${_AUTOMOC4_CURRENT_DIR}/kde4automoc.cpp)
- get_filename_component(_AUTOMOC4_BIN_DIR "${_AUTOMOC4_CURRENT_DIR}" PATH)
- get_filename_component(_AUTOMOC4_BIN_DIR "${_AUTOMOC4_BIN_DIR}" PATH)
-
-
- if(WIN32)
- get_filename_component(_AUTOMOC4_BIN_DIR "${_AUTOMOC4_BIN_DIR}" REALPATH)
- endif(WIN32)
- find_program(AUTOMOC4_EXECUTABLE automoc4 PATHS "${_AUTOMOC4_BIN_DIR}/bin" NO_DEFAULT_PATH)
- set(_AUTOMOC4_EXECUTABLE_DEP)
- mark_as_advanced(AUTOMOC4_EXECUTABLE)
- endif(EXISTS ${_AUTOMOC4_CURRENT_DIR}/kde4automoc.cpp)
- macro (AUTOMOC4_MOC_HEADERS _target_NAME)
- set (_headers_to_moc)
- foreach (_current_FILE ${ARGN})
- get_filename_component(_suffix "${_current_FILE}" EXT)
- if (".h" STREQUAL "${_suffix}" OR ".hpp" STREQUAL "${_suffix}" OR ".hxx" STREQUAL "${_suffix}" OR ".H" STREQUAL "${_suffix}")
- list(APPEND _headers_to_moc ${_current_FILE})
- else (".h" STREQUAL "${_suffix}" OR ".hpp" STREQUAL "${_suffix}" OR ".hxx" STREQUAL "${_suffix}" OR ".H" STREQUAL "${_suffix}")
- message(STATUS "AUTOMOC4_MOC_HEADERS: ignoring non-header file ${_current_FILE}")
- endif (".h" STREQUAL "${_suffix}" OR ".hpp" STREQUAL "${_suffix}" OR ".hxx" STREQUAL "${_suffix}" OR ".H" STREQUAL "${_suffix}")
- endforeach (_current_FILE)
-
-
- if(_headers_to_moc)
- set(_automoc4_headers_${_target_NAME} "${_headers_to_moc}")
- set(_automoc4_headers_${_target_NAME}_automoc "${_headers_to_moc}")
- endif(_headers_to_moc)
- endmacro (AUTOMOC4_MOC_HEADERS)
- macro(AUTOMOC4 _target_NAME _SRCS)
- set(_moc_files)
-
- foreach(_header_to_moc ${_automoc4_headers_${_target_NAME}} )
- get_filename_component(_abs_header ${_header_to_moc} ABSOLUTE)
- list(APPEND _moc_files ${_abs_header})
- endforeach(_header_to_moc)
-
- foreach (_current_FILE ${${_SRCS}})
- get_filename_component(_abs_current_FILE "${_current_FILE}" ABSOLUTE)
- get_source_file_property(_skip "${_abs_current_FILE}" SKIP_AUTOMOC)
- get_source_file_property(_generated "${_abs_current_FILE}" GENERATED)
- if(NOT _generated AND NOT _skip)
- get_filename_component(_suffix "${_current_FILE}" EXT)
-
- if(_suffix STREQUAL ".cpp" OR _suffix STREQUAL ".cc" OR _suffix STREQUAL ".cxx" OR _suffix STREQUAL ".C" OR _suffix STREQUAL ".mm")
- list(APPEND _moc_files ${_abs_current_FILE})
- endif(_suffix STREQUAL ".cpp" OR _suffix STREQUAL ".cc" OR _suffix STREQUAL ".cxx" OR _suffix STREQUAL ".C" OR _suffix STREQUAL ".mm")
- endif(NOT _generated AND NOT _skip)
- endforeach (_current_FILE)
- if(_moc_files)
- set(_automoc_source "${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_automoc.cpp")
- get_directory_property(_moc_incs INCLUDE_DIRECTORIES)
- get_directory_property(_moc_defs DEFINITIONS)
- get_directory_property(_moc_cdefs COMPILE_DEFINITIONS)
-
- list(APPEND _moc_incs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
-
- configure_file(${_AUTOMOC4_CURRENT_DIR}/automoc4.files.in ${_automoc_source}.files)
- add_custom_command(OUTPUT ${_automoc_source}
- COMMAND ${AUTOMOC4_EXECUTABLE}
- ${_automoc_source}
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_BINARY_DIR}
- ${QT_MOC_EXECUTABLE}
- ${CMAKE_COMMAND}
- --touch
- DEPENDS ${_automoc_source}.files ${_AUTOMOC4_EXECUTABLE_DEP}
- COMMENT ""
- VERBATIM
- )
- set(${_SRCS} ${_automoc_source} ${${_SRCS}})
- endif(_moc_files)
- endmacro(AUTOMOC4)
- macro(_ADD_AUTOMOC4_TARGET _target_NAME _SRCS)
- set(_moc_files)
- set(_moc_headers)
-
- foreach(_header_to_moc ${_automoc4_headers_${_target_NAME}} )
- get_filename_component(_abs_header ${_header_to_moc} ABSOLUTE)
- list(APPEND _moc_files ${_abs_header})
- list(APPEND _moc_headers ${_abs_header})
- endforeach(_header_to_moc)
-
- foreach (_current_FILE ${${_SRCS}})
- get_filename_component(_abs_current_FILE "${_current_FILE}" ABSOLUTE)
- get_source_file_property(_skip "${_abs_current_FILE}" SKIP_AUTOMOC)
- get_source_file_property(_generated "${_abs_current_FILE}" GENERATED)
- if(NOT _generated AND NOT _skip)
- get_filename_component(_suffix "${_current_FILE}" EXT)
-
- if(_suffix STREQUAL ".cpp" OR _suffix STREQUAL ".cc" OR _suffix STREQUAL ".cxx" OR _suffix STREQUAL ".C" OR _suffix STREQUAL ".mm")
- get_filename_component(_basename "${_current_FILE}" NAME_WE)
- get_filename_component(_abs_path "${_abs_current_FILE}" PATH)
- set(_header "${_abs_path}/${_basename}.h")
- if(EXISTS "${_header}")
- list(APPEND _moc_headers ${_header})
- endif(EXISTS "${_header}")
- set(_pheader "${_abs_path}/${_basename}_p.h")
- if(EXISTS "${_pheader}")
- list(APPEND _moc_headers ${_pheader})
- endif(EXISTS "${_pheader}")
- list(APPEND _moc_files ${_abs_current_FILE})
- endif(_suffix STREQUAL ".cpp" OR _suffix STREQUAL ".cc" OR _suffix STREQUAL ".cxx" OR _suffix STREQUAL ".C" OR _suffix STREQUAL ".mm")
- endif(NOT _generated AND NOT _skip)
- endforeach (_current_FILE)
- if(_moc_files)
- set(_automoc_source "${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}.cpp")
- set(_automoc_dotFiles "${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}.cpp.files")
- get_directory_property(_moc_incs INCLUDE_DIRECTORIES)
- get_directory_property(_moc_defs DEFINITIONS)
- get_directory_property(_moc_cdefs COMPILE_DEFINITIONS)
-
- list(APPEND _moc_incs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
-
- configure_file(${_AUTOMOC4_CURRENT_DIR}/automoc4.files.in ${_automoc_dotFiles})
- add_custom_target(${_target_NAME}
- COMMAND ${AUTOMOC4_EXECUTABLE}
- ${_automoc_source}
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_BINARY_DIR}
- ${QT_MOC_EXECUTABLE}
- ${CMAKE_COMMAND}
- COMMENT ""
- VERBATIM
- )
- if(_AUTOMOC4_EXECUTABLE_DEP)
- add_dependencies(${_target_NAME} ${_AUTOMOC4_EXECUTABLE_DEP})
- endif(_AUTOMOC4_EXECUTABLE_DEP)
- set_source_files_properties(${_automoc_source} PROPERTIES GENERATED TRUE)
- get_directory_property(_extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
- list(APPEND _extra_clean_files "${_automoc_source}")
- set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${_extra_clean_files}")
- set(${_SRCS} ${_automoc_source} ${${_SRCS}})
- endif(_moc_files)
- endmacro(_ADD_AUTOMOC4_TARGET)
- macro(AUTOMOC4_ADD_EXECUTABLE _target_NAME)
- set(_SRCS ${ARGN})
- set(_add_executable_param)
- foreach(_argName "WIN32" "MACOSX_BUNDLE" "EXCLUDE_FROM_ALL")
- list(FIND _SRCS ${_argName} _index)
- if(_index GREATER -1)
- list(APPEND _add_executable_param ${_argName})
- list(REMOVE_AT _SRCS ${_index})
- endif(_index GREATER -1)
- endforeach(_argName)
- _add_automoc4_target("${_target_NAME}_automoc" _SRCS)
- add_executable(${_target_NAME} ${_add_executable_param} ${_SRCS})
- add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
- endmacro(AUTOMOC4_ADD_EXECUTABLE)
- macro(AUTOMOC4_ADD_LIBRARY _target_NAME)
- set(_SRCS ${ARGN})
- set(_add_executable_param)
- foreach(_argName "STATIC" "SHARED" "MODULE" "EXCLUDE_FROM_ALL")
- list(FIND _SRCS ${_argName} _index)
- if(_index GREATER -1)
- list(APPEND _add_executable_param ${_argName})
- list(REMOVE_AT _SRCS ${_index})
- endif(_index GREATER -1)
- endforeach(_argName)
- _add_automoc4_target("${_target_NAME}_automoc" _SRCS)
- add_library(${_target_NAME} ${_add_executable_param} ${_SRCS})
- add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
- endmacro(AUTOMOC4_ADD_LIBRARY)
- macro(_AUTOMOC4_KDE4_PRE_TARGET_HANDLING _target _srcs)
- _add_automoc4_target("${_target}_automoc" ${_srcs})
- endmacro(_AUTOMOC4_KDE4_PRE_TARGET_HANDLING)
- macro(_AUTOMOC4_KDE4_POST_TARGET_HANDLING _target)
- add_dependencies(${_target} "${_target}_automoc")
- endmacro(_AUTOMOC4_KDE4_POST_TARGET_HANDLING)
- if(COMMAND cmake_policy)
- cmake_policy(POP)
- endif(COMMAND cmake_policy)
|