generate_scheme.cmake 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # This file is part of Telegram Desktop,
  2. # the official desktop application for the Telegram messaging service.
  3. #
  4. # For license and copyright information please follow this link:
  5. # https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. function(generate_scheme target_name script scheme_files)
  7. find_package(Python3 REQUIRED)
  8. set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen)
  9. file(MAKE_DIRECTORY ${gen_dst})
  10. set(gen_timestamp ${gen_dst}/scheme.timestamp)
  11. set(gen_files
  12. ${gen_dst}/scheme.cpp
  13. ${gen_dst}/scheme.h
  14. ${gen_dst}/scheme-dump_to_text.cpp
  15. ${gen_dst}/scheme-dump_to_text.h
  16. )
  17. add_custom_command(
  18. OUTPUT
  19. ${gen_timestamp}
  20. BYPRODUCTS
  21. ${gen_files}
  22. COMMAND
  23. ${Python3_EXECUTABLE}
  24. ${script}
  25. -o${gen_dst}/scheme
  26. ${scheme_files}
  27. COMMENT "Generating scheme (${target_name})"
  28. DEPENDS
  29. ${script}
  30. ${submodules_loc}/lib_tl/tl/generate_tl.py
  31. ${scheme_files}
  32. )
  33. generate_target(${target_name} scheme ${gen_timestamp} "${gen_files}" ${gen_dst})
  34. endfunction()