Mercurial > projects > qtd
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}" |