diff options
Diffstat (limited to 'modules/KDE4Macros.cmake')
-rw-r--r-- | modules/KDE4Macros.cmake | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake index 5533284b..ce310ebf 100644 --- a/modules/KDE4Macros.cmake +++ b/modules/KDE4Macros.cmake @@ -66,17 +66,25 @@ macro (KDE4_ADD_KCFG_FILES _sources ) get_filename_component(_basename ${_tmp_FILE} NAME_WE) file(READ ${_tmp_FILE} _contents) - string(REGEX REPLACE "^(.*\n)?File=([^\n]+kcfg).*\n.*$" "\\2" _kcfg_FILE "${_contents}") + string(REGEX REPLACE "^(.*\n)?File=([^\n]+kcfg).*\n.*$" "\\2" _kcfg_FILENAME "${_contents}") set(_src_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) set(_header_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) set(_moc_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc) + set(_kcfg_FILE ${_abs_PATH}/${_kcfg_FILENAME}) + # Maybe the .kcfg is a generated file? + if(NOT EXISTS "${_kcfg_FILE}") + set(_kcfg_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_kcfg_FILENAME}) + endif(NOT EXISTS "${_kcfg_FILE}") + if(NOT EXISTS "${_kcfg_FILE}") + message(ERROR "${_kcfg_FILENAME} not found; tried in ${_abs_PATH} and ${CMAKE_CURRENT_BINARY_DIR}") + endif(NOT EXISTS "${_kcfg_FILE}") # the command for creating the source file from the kcfg file add_custom_command(OUTPUT ${_header_FILE} ${_src_FILE} COMMAND ${KDE4_KCFGC_EXECUTABLE} - ARGS ${_abs_PATH}/${_kcfg_FILE} ${_tmp_FILE} -d ${CMAKE_CURRENT_BINARY_DIR} + ARGS ${_kcfg_FILE} ${_tmp_FILE} -d ${CMAKE_CURRENT_BINARY_DIR} MAIN_DEPENDENCY ${_tmp_FILE} - DEPENDS ${_abs_PATH}/${_kcfg_FILE} ${_KDE4_KCONFIG_COMPILER_DEP} ) + DEPENDS ${_kcfg_FILE} ${_KDE4_KCONFIG_COMPILER_DEP} ) if(_kcfg_generatemoc) qt4_generate_moc(${_header_FILE} ${_moc_FILE} ) @@ -826,7 +834,7 @@ macro (KDE4_ADD_EXECUTABLE _target_NAME) _automoc4_kde4_post_target_handling(${_target_NAME}) if (_test) - set_target_properties(${_target_NAME} PROPERTIES COMPILE_FLAGS -DKDESRCDIR="\\"${CMAKE_CURRENT_SOURCE_DIR}\\"") + set_target_properties(${_target_NAME} PROPERTIES COMPILE_FLAGS -DKDESRCDIR="\\"${CMAKE_CURRENT_SOURCE_DIR}/\\"") endif (_test) kde4_handle_rpath_for_executable(${_target_NAME} ${_type}) @@ -1016,7 +1024,7 @@ macro (KDE4_ADD_APP_ICON appsources pattern) endif(MSVC) if (PNG2ICO_EXECUTABLE AND WINDRES_EXECUTABLE) string(REPLACE "*" "(.*)" pattern_rx "${pattern}") - file(GLOB_RECURSE files "${pattern}") + file(GLOB files "${pattern}") foreach (it ${files}) string(REGEX REPLACE "${pattern_rx}" "\\1" fn "${it}") if (fn MATCHES ".*16.*" ) |