comparison generator/CMakeLists.txt @ 27:a9626891eca6

CMake: generator will work only for needed packages. CMake: check for depends packages. CMake: add options 'QT_BUILD_PACKAGE'. Now you can build only needed packages.
author SokoL_SD
date Fri, 15 May 2009 16:42:02 +0000
parents 907d517d37c6
children 10baf869635a
comparison
equal deleted inserted replaced
26:6873e4b22c08 27:a9626891eca6
181 ${res_wrapped_files}) 181 ${res_wrapped_files})
182 include_directories(${inc_paths}) 182 include_directories(${inc_paths})
183 add_executable(generator ${all_srcs} ) 183 add_executable(generator ${all_srcs} )
184 target_link_libraries(generator ${libs}) 184 target_link_libraries(generator ${libs})
185 185
186 foreach(package ${packages}) 186 macro(add_dgen_target package)
187 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml 187 string(TOLOWER ${package} package)
188 ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}-java.java) 188 set(dgen_build_conf ${CMAKE_BINARY_DIR}/CMakeFiles/built_${package}.txt)
189 set(dgen_build_conf_req ${CMAKE_BINARY_DIR}/CMakeFiles/built_${package}_with_req.txt)
190 file(REMOVE ${dgen_build_conf})
191 file(REMOVE ${dgen_build_conf_req})
192 file(APPEND ${dgen_build_conf} "<typesystem>\n")
193 file(APPEND ${dgen_build_conf_req} "<typesystem>\n")
194 foreach(req ${ARGN})
195 string(TOLOWER ${req} req_lower)
196 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${req_lower}.xml\" generate=\"no\" />\n")
197 file(APPEND ${dgen_build_conf_req} " <load-typesystem name=\"typesystem_${req_lower}.xml\" generate=\"yes\" />\n")
198 endforeach(req ${ARGN})
199
200 if(${package} STREQUAL "all")
201 foreach(pack ${ARGN})
202 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${pack}/metainfo.cpp) ## Temporary
203 break(pack ${ARGN})
204 endforeach(pack ${ARGN})
205 else(${package} STREQUAL "all")
206 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${package}/qt_${package}.pri)
207 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml
208 ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}-java.java)
209 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n")
210 file(APPEND ${dgen_build_conf_req} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n")
211 endif(${package} STREQUAL "all")
212
213 file(APPEND ${dgen_build_conf} "</typesystem>\n")
214 file(APPEND ${dgen_build_conf_req} "</typesystem>\n")
215
216 foreach(pack ${ARGN})
217 string(TOLOWER ${pack} pack_lower)
218 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack_lower}.xml
219 ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack_lower}-java.java)
220 endforeach(pack ${ARGN})
221
222 add_custom_command(OUTPUT ${dgen_impl}
223 COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl}
224 COMMAND "generator"
225 ARGS ${GEN_OPT} --no-repreprocess --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=./
226 --source-directory=${CMAKE_SOURCE_DIR}/generator
227 qtjambi_masterinclude.h
228 ${dgen_build_conf}
229 COMMENT "Generating binding..."
230 DEPENDS generator ${gen_sources}
231 )
232 add_custom_target(dgen_${package} DEPENDS ${dgen_impl} COMMENT "")
233 endmacro(add_dgen_target target package required)
234
235 foreach(pack ${packages})
236 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${pack}/qt_${pack}.pri)
237 break(pack ${packages})
238 endforeach(pack ${packages})
239
240 foreach(pack ${packages})
241 set(gen_typesystem ${gen_typesystem} ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack}.xml)
242 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack}-java.java)
243 endforeach(pack ${packages})
244
245
246 set(dgen_build_conf ${CMAKE_BINARY_DIR}/CMakeFiles/built.txt)
247 file(REMOVE ${dgen_build_conf})
248 file(APPEND ${dgen_build_conf} "<typesystem>\n")
249 foreach(package ${packages})
250 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n")
189 endforeach(package ${packages}) 251 endforeach(package ${packages})
190 252 file(APPEND ${dgen_build_conf} "</typesystem>\n")
191 foreach(package ${packages})
192 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${package}/qt_${package}.pri)
193 break(package ${packages})
194 endforeach(package ${packages})
195 253
196 add_custom_command(OUTPUT ${dgen_impl} 254 add_custom_command(OUTPUT ${dgen_impl}
197 COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl} 255 COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl}
198 COMMAND "generator" 256 COMMAND "generator"
199 ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=../ 257 ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
200 --source-directory=${CMAKE_SOURCE_DIR}/generator 258 --source-directory=${CMAKE_SOURCE_DIR}/generator
201 qtjambi_masterinclude.h 259 qtjambi_masterinclude.h
202 build_opengl.txt 260 ${dgen_build_conf}
203 COMMENT "Generating binding..." 261 COMMENT "Generating binding..."
204 DEPENDS generator ${gen_sources} 262 DEPENDS generator ${gen_typesystem} ${gen_sources}
205 ) 263 )
206 add_custom_target(dgen DEPENDS ${dgen_impl} COMMENT "") 264 add_custom_target(dgen DEPENDS ${dgen_impl} COMMENT "")
207 265
208 macro(add_sources_for_generating) 266 macro(add_sources_for_generating)
209 foreach(source ${ARGN}) 267 foreach(source ${ARGN})
210 add_custom_command(OUTPUT "${source}" 268 add_custom_command(OUTPUT "${source}"