changeset 275:bb0f228c27cd

Caching dependencies for d sources.
author SokoL_SD
date Mon, 28 Sep 2009 05:53:47 +0000
parents f5606687c578
children 501128ac7a2c
files cmake/FindD.cmake
diffstat 1 files changed, 19 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/cmake/FindD.cmake	Mon Sep 28 05:32:25 2009 +0000
+++ b/cmake/FindD.cmake	Mon Sep 28 05:53:47 2009 +0000
@@ -611,7 +611,23 @@
 endmacro(filter_paths )
 
 macro(get_files_depends out)
-    get_imported_files_old(${out} ${ARGN})
-    #filter_paths(${out} ${${out}} INCLUDE_CURRENT_DIR INCLUDE_PATHS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
-    set(${out} ${ARGN} ${${out}})
+    set(deps_file_tmp ${CMAKE_CURRENT_BINARY_DIR}/${ARGN}.deps)
+    set(update_deps_tmp 0)
+    foreach(arg_tmp ${ARGN})
+	if(NOT IS_ABSOLUTE arg_tmp)
+	    set(arg_tmp ${CMAKE_CURRENT_SOURCE_DIR}/${arg_tmp})
+	endif(NOT IS_ABSOLUTE arg_tmp)
+	if(${arg_tmp} IS_NEWER_THAN ${deps_file_tmp})
+	    set(update_deps_tmp 1)
+	    break(arg_tmp ${ARGN})
+	endif(${arg_tmp} IS_NEWER_THAN ${deps_file_tmp})
+    endforeach(arg_tmp ${ARGN})
+    if(update_deps_tmp)
+	get_imported_files_old(${out} ${ARGN})
+	#filter_paths(${out} ${${out}} INCLUDE_CURRENT_DIR INCLUDE_PATHS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+	set(${out} ${ARGN} ${${out}})
+	file(WRITE ${deps_file_tmp} "${${out}}")
+    else(update_deps_tmp)
+	file(STRINGS ${deps_file_tmp} ${out})
+    endif(update_deps_tmp)
 endmacro(get_files_depends out)
\ No newline at end of file