changeset 245:2d061b52e077

--
author SokoL_SD
date Tue, 21 Jul 2009 13:51:44 +0000
parents 405f49532492
children 7e589f525254
files cmake/FindD.cmake
diffstat 1 files changed, 21 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/cmake/FindD.cmake	Tue Jul 21 13:50:09 2009 +0000
+++ b/cmake/FindD.cmake	Tue Jul 21 13:51:44 2009 +0000
@@ -497,36 +497,43 @@
     endif(D_IS_MARS)
 endmacro(add_d_lib name)
 
-## 
+##
 macro(get_imported_files_old imported)
     execute_process(COMMAND ${DC} -c -o- -v ${compile_flags_tmp} ${ARGN}
                   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
                   OUTPUT_VARIABLE dc_output_tmp
 		  
     )
-    string(REGEX MATCHALL "import[^\\(]*([^\\)]*)" dc_output_tmp "${dc_output_tmp}")
+    string(REGEX MATCHALL "import[^(]*([^)]*)" dc_output_tmp "${dc_output_tmp}")
     
     ## Initial filter.
     regex_safe_string(tmp ${CMAKE_CURRENT_SOURCE_DIR})
     regex_safe_string(tmp2 ${CMAKE_CURRENT_BINARY_DIR})
-    set(regex_includes_tmp ${tmp}|${tmp2})
+    set(regex_includes_tmp "${tmp}|${tmp2}")
 
     set(${imported})
     foreach(import_tmp ${dc_output_tmp})
 	## Getting a next import.
-	string(REGEX REPLACE "import[^\\(]*\\(([^\\)]*)" "\\1" import_tmp ${import_tmp})
+	string(REGEX REPLACE "import[^(]*\\(([^)]*)" "\\1" import_tmp ${import_tmp})
 	## Filtering.
-	file(TO_CMAKE_PATH import_tmp ${import_tmp})	
-	string(REGEX MATCH "(${regex_includes_tmp})[^/]*" found "${import_tmp}")	
-	string(SUBSTRING "${import_tmp}" 0 1 first_sym_tmp)
-	set(full_path_tmp)
-	if(${first_sym_tmp} STREQUAL "/")
-	    set(full_path_tmp 1)
-	endif(${first_sym_tmp} STREQUAL "/")
-	if(NOT found AND full_path_tmp)
-	else(NOT found AND full_path_tmp)
+	string(REPLACE "\\" "/" import_tmp ${import_tmp})
+	string(REGEX MATCH "(${regex_includes_tmp})" found "${import_tmp}")
+	if(CMAKE_HOST_WIN32)	
+	    string(SUBSTRING "${import_tmp}" 1 2 first_sym_tmp)
+	    set(full_path_tmp)
+	    if(${first_sym_tmp} STREQUAL ":/")
+		set(full_path_tmp 1)
+	    endif(${first_sym_tmp} STREQUAL ":/")
+	elseif(CMAKE_HOST_UNIX)
+	    string(SUBSTRING "${import_tmp}" 0 1 first_sym_tmp)
+	    set(full_path_tmp)
+	    if(${first_sym_tmp} STREQUAL "/")
+		set(full_path_tmp 1)
+	    endif(${first_sym_tmp} STREQUAL "/")
+	endif(CMAKE_HOST_WIN32)	
+	if(found OR NOT full_path_tmp)
 	    set(${imported} ${${imported}} ${import_tmp})	    
-	endif(NOT found AND full_path_tmp)	
+	endif(found OR NOT full_path_tmp)	
     endforeach(import_tmp ${dc_output_tmp})
 endmacro(get_imported_files_old imported)