diff options
Diffstat (limited to 'modules/KDE3Macros.cmake')
| -rw-r--r-- | modules/KDE3Macros.cmake | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/modules/KDE3Macros.cmake b/modules/KDE3Macros.cmake index eb3f2c01..5924b39d 100644 --- a/modules/KDE3Macros.cmake +++ b/modules/KDE3Macros.cmake @@ -189,13 +189,21 @@ MACRO(KDE3_AUTOMOC)     SET(_matching_FILES )     FOREACH (_current_FILE ${ARGN}) -      GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) +      GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE) + +      # if "SKIP_AUTOMOC" is set to true, we will not handle this file here. +      # here. this is required to make bouic work correctly: +      # we need to add generated .cpp files to the sources (to compile them), +      # but we cannot let automoc handle them, as the .cpp files don't exist yet when +      # cmake is run for the very first time on them -> however the .cpp files might +      # exist at a later run. at that time we need to skip them, so that we don't add two +      # different rules for the same moc file +      GET_SOURCE_FILE_PROPERTY(_skip ${_abs_FILE} SKIP_AUTOMOC) -      IF (EXISTS ${_tmp_FILE}) +      IF (EXISTS ${_abs_FILE} AND NOT _skip) -         FILE(READ ${_tmp_FILE} _contents) +         FILE(READ ${_abs_FILE} _contents) -         GET_FILENAME_COMPONENT(_abs_FILE ${_tmp_FILE} ABSOLUTE)           GET_FILENAME_COMPONENT(_abs_PATH ${_abs_FILE} PATH)           STRING(REGEX MATCHALL "#include +[^ ]+\\.moc[\">]" _match "${_contents}") @@ -214,12 +222,12 @@ MACRO(KDE3_AUTOMOC)                    DEPENDS ${_header}                 ) -               MACRO_ADD_FILE_DEPENDENCIES(${_tmp_FILE} ${_moc}) +               MACRO_ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc})              ENDFOREACH (_current_MOC_INC)           ENDIF(_match) -      ENDIF (EXISTS ${_tmp_FILE}) +      ENDIF (EXISTS ${_abs_FILE} AND NOT _skip)     ENDFOREACH (_current_FILE)  ENDMACRO(KDE3_AUTOMOC) | 
