Mercurial > projects > qtd
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/) |