SVN commit 1015825 by ervin: OK, my previous claim for r1015454 was wrong. The new behavior breaks old file in many more cases. So activating the new behavior only if the USE_RELATIVE_PATH option is given.
(Still, I think we might want to investigate a this trick for files generated from ui files, and moc files ;-)) CCMAIL: [email protected] M +25 -17 KDE4Macros.cmake --- trunk/KDE/kdelibs/cmake/modules/KDE4Macros.cmake #1015824:1015825 @@ -53,32 +53,40 @@ 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 @@ 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) _______________________________________________ Kde-buildsystem mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-buildsystem
