CMakeLists.txt 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. if (APPLE)
  7. # target_precompile_headers with COMPILE_LANGUAGE restriction.
  8. cmake_minimum_required(VERSION 3.23)
  9. else()
  10. cmake_minimum_required(VERSION 3.16)
  11. endif()
  12. if (POLICY CMP0149)
  13. cmake_policy(SET CMP0149 NEW)
  14. endif()
  15. set_property(GLOBAL PROPERTY USE_FOLDERS ON)
  16. include(cmake/validate_special_target.cmake)
  17. include(cmake/version.cmake)
  18. desktop_app_parse_version(Telegram/build/version)
  19. set(project_langs C CXX)
  20. if (APPLE)
  21. list(APPEND project_langs OBJC OBJCXX)
  22. elseif (LINUX)
  23. list(APPEND project_langs ASM)
  24. endif()
  25. project(Telegram
  26. LANGUAGES ${project_langs}
  27. VERSION ${desktop_app_version_cmake}
  28. DESCRIPTION "Official Telegram Desktop messenger"
  29. HOMEPAGE_URL "https://desktop.telegram.org"
  30. )
  31. set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Telegram)
  32. get_filename_component(third_party_loc "Telegram/ThirdParty" REALPATH)
  33. get_filename_component(submodules_loc "Telegram" REALPATH)
  34. get_filename_component(cmake_helpers_loc "cmake" REALPATH)
  35. if (NOT DESKTOP_APP_USE_PACKAGED AND WIN32)
  36. set(Python3_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/python/Scripts/python)
  37. endif()
  38. include(cmake/variables.cmake)
  39. include(cmake/nice_target_sources.cmake)
  40. include(cmake/target_compile_options_if_exists.cmake)
  41. include(cmake/target_link_frameworks.cmake)
  42. include(cmake/target_link_optional_libraries.cmake)
  43. include(cmake/target_link_options_if_exists.cmake)
  44. include(cmake/target_link_static_libraries.cmake)
  45. include(cmake/init_target.cmake)
  46. include(cmake/generate_target.cmake)
  47. include(cmake/nuget.cmake)
  48. include(cmake/validate_d3d_compiler.cmake)
  49. include(cmake/target_prepare_qrc.cmake)
  50. include(cmake/options.cmake)
  51. include(cmake/external/qt/package.cmake)
  52. set(desktop_app_skip_libs
  53. glibmm
  54. variant
  55. )
  56. add_subdirectory(cmake)
  57. add_subdirectory(Telegram)