diff generator/CMakeLists.txt @ 42:eb3b5bbffc8f

CMake: generator is not running multiple times. generator: packages can have dependencies now (but this do not used in real code yet).
author SokoL_SD
date Sun, 17 May 2009 15:53:27 +0000
parents a293cd68d56c
children a860544c5ee8
line wrap: on
line diff
--- a/generator/CMakeLists.txt	Sun May 17 12:41:14 2009 +0000
+++ b/generator/CMakeLists.txt	Sun May 17 15:53:27 2009 +0000
@@ -245,44 +245,67 @@
 endforeach(package ${packages})
 file(APPEND ${dgen_build_conf} "</typesystem>\n")
 
-# foreach(dgen_impl ${files_for_gen})
-#     add_custom_command(OUTPUT ${dgen_impl}
-# 			COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl}
-# 			COMMAND "generator"
-# 			ARGS ${GEN_OPT}  --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
-# 			    --source-directory=${CMAKE_SOURCE_DIR}/generator
-# 			    qtjambi_masterinclude.h 
-# 			    ${dgen_build_conf}
-# 			COMMENT "Generating binding..."
-# 			DEPENDS  generator ${gen_typesystem} ${gen_sources} 
-# 		    )
-# endforeach(dgen_impl ${files_for_gen})
-add_custom_target(dgen COMMENT "")
+# macro(add_sources_for_generating)	
+#     set(parameters_list_file ${CMAKE_BINARY_DIR}/CMakeFiles/dgen_parameters)
+#     if(${CMAKE_SYSTEM_NAME} STREQUAL Windows)	
+# 	file(REMOVE ${parameters_list_file})
+# 	foreach(arg ${ARGN})
+# 	    file(APPEND ${parameters_list_file} "${arg}\n")
+# 	endforeach(arg)
+# 	set(param @${parameters_list_file})
+#     elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux)
+# 	set(param ${parameters})
+#     endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
+#     foreach(dgen_impl ${ARGN})
+# 	add_custom_command(OUTPUT ${dgen_impl}
+# 			    COMMAND ${CMAKE_COMMAND} -E remove -f ${param}
+# 			    COMMAND "generator"
+# 			    ARGS ${GEN_OPT}  --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
+# 							--source-directory=${CMAKE_SOURCE_DIR}/generator 
+# 							qtjambi_masterinclude.h  
+# 							${CMAKE_BINARY_DIR}/CMakeFiles/build.txt
+# 			    COMMENT "Generating binding..."
+# 			    DEPENDS  generator ${gen_typesystem} ${gen_sources} 
+# 			)
+#     endforeach(dgen_impl ${ARGN})
+#     add_custom_target(dgen DEPENDS ${ARGN})
+# endmacro(add_sources_for_generating)
 
-macro(add_sources_for_generating)	
-    set(parameters_list_file ${CMAKE_BINARY_DIR}/CMakeFiles/dgen_parameters)
-    if(${CMAKE_SYSTEM_NAME} STREQUAL Windows)	
-	file(REMOVE ${parameters_list_file})
-	foreach(arg ${ARGN})
-	    file(APPEND ${parameters_list_file} "${arg}\n")
-	endforeach(arg)
-	set(param @${parameters_list_file})
-    elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux)
-	set(param ${parameters})
-    endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
-    foreach(dgen_impl ${ARGN})
+set(gen_sources)
+foreach(package ${packages})   
+    set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml)
+    find_file(d_inc_file_found typesystem_${package}-java.java PATHS ${CMAKE_SOURCE_DIR}/generator/) 
+    if(d_inc_file_found)
+	set(${CMAKE_SOURCE_DIR}/generator/typesystem_${package}-java.java)
+    endif(d_inc_file_found)
+endforeach(package ${packages})
+mark_as_advanced(d_inc_file_found)
+set(d_inc_file_found 1)
+	
+foreach(package ${packages})   
+    set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${package}/qt_${package}.pri) 
+    break(package ${packages}) 
+endforeach(package ${packages})    
 
-	add_custom_command(OUTPUT ${dgen_impl}
-			    COMMAND ${CMAKE_COMMAND} -E remove -f ${param}
-			    COMMAND "generator"
-			    ARGS ${GEN_OPT}  --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
-							--source-directory=${CMAKE_SOURCE_DIR}/generator 
-							qtjambi_masterinclude.h  
-							${CMAKE_BINARY_DIR}/CMakeFiles/build.txt
-			    COMMENT "Generating binding..."
-			    DEPENDS  generator ${gen_typesystem} ${gen_sources} 
-			)
-	#add_custom_target(${target_name} DEPENDS ${dgen_impl})
-	#add_dependencies(dgen ${target_name})
-    endforeach(dgen_impl ${ARGN})
+add_custom_command(OUTPUT ${dgen_impl}
+	COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl}
+	COMMAND "generator"
+	ARGS ${GEN_OPT}  --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
+	    --source-directory=${CMAKE_SOURCE_DIR}/generator 
+	    qtjambi_masterinclude.h  
+	    ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt
+	COMMENT "Generating binding..."
+	DEPENDS  generator ${gen_sources}
+	)       
+add_custom_target(dgen DEPENDS ${dgen_impl} COMMENT "")
+
+macro(add_sources_for_generating)
+    foreach(source ${ARGN})
+	add_custom_command(OUTPUT "${source}"
+		COMMAND ""
+		ARGS ""
+		DEPENDS ${dgen_impl}
+		COMMENT ""
+		)
+    endforeach(source ${ARGN})
 endmacro(add_sources_for_generating)
\ No newline at end of file