comparison 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
comparison
equal deleted inserted replaced
41:691e68637348 42:eb3b5bbffc8f
243 foreach(package ${packages}) 243 foreach(package ${packages})
244 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n") 244 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n")
245 endforeach(package ${packages}) 245 endforeach(package ${packages})
246 file(APPEND ${dgen_build_conf} "</typesystem>\n") 246 file(APPEND ${dgen_build_conf} "</typesystem>\n")
247 247
248 # foreach(dgen_impl ${files_for_gen}) 248 # macro(add_sources_for_generating)
249 # add_custom_command(OUTPUT ${dgen_impl} 249 # set(parameters_list_file ${CMAKE_BINARY_DIR}/CMakeFiles/dgen_parameters)
250 # COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl} 250 # if(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
251 # COMMAND "generator" 251 # file(REMOVE ${parameters_list_file})
252 # ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR} 252 # foreach(arg ${ARGN})
253 # --source-directory=${CMAKE_SOURCE_DIR}/generator 253 # file(APPEND ${parameters_list_file} "${arg}\n")
254 # qtjambi_masterinclude.h 254 # endforeach(arg)
255 # ${dgen_build_conf} 255 # set(param @${parameters_list_file})
256 # COMMENT "Generating binding..." 256 # elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux)
257 # DEPENDS generator ${gen_typesystem} ${gen_sources} 257 # set(param ${parameters})
258 # ) 258 # endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
259 # endforeach(dgen_impl ${files_for_gen}) 259 # foreach(dgen_impl ${ARGN})
260 add_custom_target(dgen COMMENT "") 260 # add_custom_command(OUTPUT ${dgen_impl}
261 261 # COMMAND ${CMAKE_COMMAND} -E remove -f ${param}
262 macro(add_sources_for_generating) 262 # COMMAND "generator"
263 set(parameters_list_file ${CMAKE_BINARY_DIR}/CMakeFiles/dgen_parameters) 263 # ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
264 if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) 264 # --source-directory=${CMAKE_SOURCE_DIR}/generator
265 file(REMOVE ${parameters_list_file}) 265 # qtjambi_masterinclude.h
266 foreach(arg ${ARGN}) 266 # ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt
267 file(APPEND ${parameters_list_file} "${arg}\n") 267 # COMMENT "Generating binding..."
268 endforeach(arg) 268 # DEPENDS generator ${gen_typesystem} ${gen_sources}
269 set(param @${parameters_list_file}) 269 # )
270 elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux) 270 # endforeach(dgen_impl ${ARGN})
271 set(param ${parameters}) 271 # add_custom_target(dgen DEPENDS ${ARGN})
272 endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) 272 # endmacro(add_sources_for_generating)
273 foreach(dgen_impl ${ARGN}) 273
274 274 set(gen_sources)
275 add_custom_command(OUTPUT ${dgen_impl} 275 foreach(package ${packages})
276 COMMAND ${CMAKE_COMMAND} -E remove -f ${param} 276 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml)
277 COMMAND "generator" 277 find_file(d_inc_file_found typesystem_${package}-java.java PATHS ${CMAKE_SOURCE_DIR}/generator/)
278 ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR} 278 if(d_inc_file_found)
279 --source-directory=${CMAKE_SOURCE_DIR}/generator 279 set(${CMAKE_SOURCE_DIR}/generator/typesystem_${package}-java.java)
280 qtjambi_masterinclude.h 280 endif(d_inc_file_found)
281 ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt 281 endforeach(package ${packages})
282 COMMENT "Generating binding..." 282 mark_as_advanced(d_inc_file_found)
283 DEPENDS generator ${gen_typesystem} ${gen_sources} 283 set(d_inc_file_found 1)
284 ) 284
285 #add_custom_target(${target_name} DEPENDS ${dgen_impl}) 285 foreach(package ${packages})
286 #add_dependencies(dgen ${target_name}) 286 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${package}/qt_${package}.pri)
287 endforeach(dgen_impl ${ARGN}) 287 break(package ${packages})
288 endforeach(package ${packages})
289
290 add_custom_command(OUTPUT ${dgen_impl}
291 COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl}
292 COMMAND "generator"
293 ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
294 --source-directory=${CMAKE_SOURCE_DIR}/generator
295 qtjambi_masterinclude.h
296 ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt
297 COMMENT "Generating binding..."
298 DEPENDS generator ${gen_sources}
299 )
300 add_custom_target(dgen DEPENDS ${dgen_impl} COMMENT "")
301
302 macro(add_sources_for_generating)
303 foreach(source ${ARGN})
304 add_custom_command(OUTPUT "${source}"
305 COMMAND ""
306 ARGS ""
307 DEPENDS ${dgen_impl}
308 COMMENT ""
309 )
310 endforeach(source ${ARGN})
288 endmacro(add_sources_for_generating) 311 endmacro(add_sources_for_generating)