comparison generator/CMakeLists.txt @ 237:62d0dce52dac

CMake: improvements && fixes
author SokoL_SD
date Mon, 20 Jul 2009 06:00:55 +0000
parents fcc0ada121e1
children 4716eaf4a67e
comparison
equal deleted inserted replaced
236:fcc0ada121e1 237:62d0dce52dac
205 #ELSE(NOT USEPCH) 205 #ELSE(NOT USEPCH)
206 # MESSAGE(STATUS "Using precompiled-header") 206 # MESSAGE(STATUS "Using precompiled-header")
207 # add_precompiled_header(generator ${CMAKE_CURRENT_SOURCE_DIR}/generator_pch.h) 207 # add_precompiled_header(generator ${CMAKE_CURRENT_SOURCE_DIR}/generator_pch.h)
208 #ENDIF(NOT USEPCH) 208 #ENDIF(NOT USEPCH)
209 209
210 macro(add_dgen_target package) 210 if(NOT "${packages_in_build_txt}" STREQUAL "${packages}")
211 string(TOLOWER ${package} package) 211 set(dgen_build_conf ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt)
212 set(dgen_build_conf ${CMAKE_BINARY_DIR}/CMakeFiles/built_${package}.txt)
213 set(dgen_build_conf_req ${CMAKE_BINARY_DIR}/CMakeFiles/built_${package}_with_req.txt)
214 file(REMOVE ${dgen_build_conf}) 212 file(REMOVE ${dgen_build_conf})
215 file(REMOVE ${dgen_build_conf_req})
216 file(APPEND ${dgen_build_conf} "<typesystem>\n") 213 file(APPEND ${dgen_build_conf} "<typesystem>\n")
217 file(APPEND ${dgen_build_conf_req} "<typesystem>\n") 214 foreach(package ${packages})
218 foreach(req ${ARGN})
219 string(TOLOWER ${req} req_lower)
220 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${req_lower}.xml\" generate=\"no\" />\n")
221 file(APPEND ${dgen_build_conf_req} " <load-typesystem name=\"typesystem_${req_lower}.xml\" generate=\"yes\" />\n")
222 endforeach(req ${ARGN})
223
224 if(${package} STREQUAL "all")
225 foreach(pack ${ARGN})
226 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${pack}/metainfo.cpp) ## Temporary
227 break(pack ${ARGN})
228 endforeach(pack ${ARGN})
229 else(${package} STREQUAL "all")
230 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${package}/qt_${package}.pri)
231 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml
232 ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}-java.java)
233 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n") 215 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n")
234 file(APPEND ${dgen_build_conf_req} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n") 216 endforeach(package ${packages})
235 endif(${package} STREQUAL "all")
236
237 file(APPEND ${dgen_build_conf} "</typesystem>\n") 217 file(APPEND ${dgen_build_conf} "</typesystem>\n")
238 file(APPEND ${dgen_build_conf_req} "</typesystem>\n") 218 set(packages_in_build_txt ${packages} CACHE INTERNAL "")
239 219 endif(NOT "${packages_in_build_txt}" STREQUAL "${packages}")
240 foreach(pack ${ARGN})
241 string(TOLOWER ${pack} pack_lower)
242 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack_lower}.xml
243 ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack_lower}-java.java)
244 endforeach(pack ${ARGN})
245
246 add_custom_command(OUTPUT ${dgen_impl}
247 COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl}
248 COMMAND "generator"
249 ARGS ${GEN_OPT} --no-repreprocess --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=./
250 --source-directory=${CMAKE_SOURCE_DIR}/generator
251 qtjambi_masterinclude.h
252 ${dgen_build_conf}
253 COMMENT "Generating binding..."
254 DEPENDS generator ${gen_sources}
255 )
256 add_custom_target(dgen_${package} DEPENDS ${dgen_impl} COMMENT "")
257 endmacro(add_dgen_target target package required)
258
259 foreach(pack ${packages})
260 set(gen_typesystem ${gen_typesystem} ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack}.xml)
261 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack}-java.java)
262 endforeach(pack ${packages})
263
264 set(dgen_build_conf ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt)
265 file(REMOVE ${dgen_build_conf})
266 file(APPEND ${dgen_build_conf} "<typesystem>\n")
267 foreach(package ${packages})
268 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n")
269 endforeach(package ${packages})
270 file(APPEND ${dgen_build_conf} "</typesystem>\n")
271
272 # macro(add_sources_for_generating)
273 # set(parameters_list_file ${CMAKE_BINARY_DIR}/CMakeFiles/dgen_parameters)
274 # if(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
275 # file(REMOVE ${parameters_list_file})
276 # foreach(arg ${ARGN})
277 # file(APPEND ${parameters_list_file} "${arg}\n")
278 # endforeach(arg)
279 # set(param @${parameters_list_file})
280 # elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux)
281 # set(param ${parameters})
282 # endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
283 # foreach(dgen_impl ${ARGN})
284 # add_custom_command(OUTPUT ${dgen_impl}
285 # COMMAND ${CMAKE_COMMAND} -E remove -f ${param}
286 # COMMAND "generator"
287 # ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
288 # --source-directory=${CMAKE_SOURCE_DIR}/generator
289 # qtjambi_masterinclude.h
290 # ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt
291 # COMMENT "Generating binding..."
292 # DEPENDS generator ${gen_typesystem} ${gen_sources}
293 # )
294 # endforeach(dgen_impl ${ARGN})
295 # add_custom_target(dgen DEPENDS ${ARGN})
296 # endmacro(add_sources_for_generating)
297 220
298 set(gen_sources) 221 set(gen_sources)
299 foreach(package ${packages}) 222 foreach(package ${packages})
300 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml) 223 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml)
301 find_file(d_inc_file_found typesystem_${package}-java.java PATHS ${CMAKE_SOURCE_DIR}/generator/) 224 find_file(d_inc_file_found typesystem_${package}-java.java PATHS ${CMAKE_SOURCE_DIR}/generator/)