diff options
| -rw-r--r-- | modules/KDE4Macros.cmake | 42 | 
1 files changed, 25 insertions, 17 deletions
| diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake index ece967aa..7e25471c 100644 --- a/modules/KDE4Macros.cmake +++ b/modules/KDE4Macros.cmake @@ -53,32 +53,40 @@ endif(NOT COMMAND _AUTOMOC4_KDE4_PRE_TARGET_HANDLING)  macro (KDE4_ADD_KCFG_FILES _sources ) -   if( ${ARGV1} STREQUAL "GENERATE_MOC" ) -      set(_kcfg_generatemoc TRUE) -   endif( ${ARGV1} STREQUAL "GENERATE_MOC" ) +   foreach (_current_ARG ${ARGN}) +       if( ${_current_ARG} STREQUAL "GENERATE_MOC" ) +           set(_kcfg_generatemoc TRUE) +       endif( ${_current_ARG} STREQUAL "GENERATE_MOC" ) + +       if( ${_current_ARG} STREQUAL "USE_RELATIVE_PATH" ) +           set(_kcfg_relativepath TRUE) +       endif( ${_current_ARG} STREQUAL "USE_RELATIVE_PATH" ) +   endforeach (_current_ARG ${ARGN})     foreach (_current_FILE ${ARGN}) -     if(NOT ${_current_FILE} STREQUAL "GENERATE_MOC") +     if(NOT ${_current_FILE} STREQUAL "GENERATE_MOC" AND NOT ${_current_FILE} STREQUAL "USE_RELATIVE_PATH")         get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE)         get_filename_component(_abs_PATH ${_tmp_FILE} PATH) -       # Get relative path -       get_filename_component(_rel_PATH ${_current_FILE} PATH) +       if (_kcfg_relativepath) # Process relative path only if the option was set +           # Get relative path +           get_filename_component(_rel_PATH ${_current_FILE} PATH) -       # Resolve the relative path from the current source dir -       if(NOT ${_rel_PATH} STREQUAL "") -           get_filename_component(_abs_PATH2 ${CMAKE_CURRENT_SOURCE_DIR}/${_rel_PATH} ABSOLUTE) -       endif(NOT ${_rel_PATH} STREQUAL "") +           # Resolve the relative path from the current source dir +           if(NOT ${_rel_PATH} STREQUAL "") +               get_filename_component(_abs_PATH2 ${CMAKE_CURRENT_SOURCE_DIR}/${_rel_PATH} ABSOLUTE) +           endif(NOT ${_rel_PATH} STREQUAL "") -       # If the resolved relative path is not equal to the absolute one, -       # that means that we got an absolute path in the first place -       if(NOT "${_abs_PATH2}" STREQUAL "${_abs_PATH}") -           set(_rel_PATH "") -       endif(NOT "${_abs_PATH2}" STREQUAL "${_abs_PATH}") +           # If the resolved relative path is not equal to the absolute one, +           # that means that we got an absolute path in the first place +           if(NOT "${_abs_PATH2}" STREQUAL "${_abs_PATH}") +               set(_rel_PATH "") +           endif(NOT "${_abs_PATH2}" STREQUAL "${_abs_PATH}") +       endif (_kcfg_relativepath)         get_filename_component(_basename ${_tmp_FILE} NAME_WE) -       # If we had a real relative path, then change the basename accordingly +       # If we had a real relative path and we're asked to use it, then change the basename accordingly         if(NOT ${_rel_PATH} STREQUAL "")             set(_basename ${_rel_PATH}/${_basename})         endif(NOT ${_rel_PATH} STREQUAL "") @@ -116,7 +124,7 @@ macro (KDE4_ADD_KCFG_FILES _sources )         endif(_kcfg_generatemoc)         list(APPEND ${_sources} ${_src_FILE} ${_header_FILE}) -     endif(NOT ${_current_FILE} STREQUAL "GENERATE_MOC") +     endif(NOT ${_current_FILE} STREQUAL "GENERATE_MOC" AND NOT ${_current_FILE} STREQUAL "USE_RELATIVE_PATH")     endforeach (_current_FILE)  endmacro (KDE4_ADD_KCFG_FILES) | 
