diff --git a/CMakeLists.txt b/CMakeLists.txt index ee4662eec..ce6a193a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,10 +19,13 @@ project(Telegram HOMEPAGE_URL "https://desktop.telegram.org" ) -include(cmake/options.cmake) +include(cmake/nice_target_sources.cmake) +include(cmake/target_link_frameworks.cmake) include(cmake/init_target.cmake) include(cmake/generate_target.cmake) -include(cmake/nice_target_sources.cmake) + +include(cmake/options.cmake) + include(cmake/external/qt/package.cmake) add_subdirectory(cmake) diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index 49e7a3543..8abdb7b2c 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -7,9 +7,6 @@ add_executable(Telegram WIN32 MACOSX_BUNDLE) init_target(Telegram) -add_executable(Updater WIN32) -init_target(Updater) - add_subdirectory(lib_rpl) add_subdirectory(lib_crl) add_subdirectory(lib_base) @@ -63,8 +60,7 @@ generate_styles(Telegram ${src_loc} "${style_files}" "${dependent_style_files}") generate_lang(Telegram ${res_loc}/langs/lang.strings) generate_numbers(Telegram ${res_loc}/numbers.txt) -set_target_properties(Telegram PROPERTIES AUTOMOC ON) -set_target_properties(Telegram PROPERTIES AUTORCC ON) +set_target_properties(Telegram PROPERTIES AUTOMOC ON AUTORCC ON) target_link_libraries(Telegram PRIVATE @@ -82,14 +78,17 @@ PRIVATE desktop-app::external_lz4 desktop-app::external_rlottie desktop-app::external_qt - desktop-app::external_openssl - desktop-app::external_crash_reports desktop-app::external_auto_updates + desktop-app::external_openssl desktop-app::external_zlib desktop-app::external_opus desktop-app::external_openal ) +if (NOT DESKTOP_APP_DISABLE_CRASH_REPORTS) + target_link_libraries(Telegram PRIVATE desktop-app::external_crash_reports) +endif() + set(telegram_sources PRIVATE api/api_common.h @@ -960,19 +959,70 @@ if (WIN32) # COMMENT # $ # ) -else() +elseif (APPLE) target_link_libraries(Telegram PRIVATE - desktop-app::external_minizip + desktop-app::external_sp_media_key_tap + desktop-app::external_iconv ) - if (APPLE) - target_link_libraries(Telegram - PRIVATE - desktop-app::external_sp_media_key_tap + + set(icons_path ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets) + set_target_properties(Telegram PROPERTIES RESOURCE ${icons_path}) + target_sources(Telegram PRIVATE ${icons_path}) + + set(lang_packs + en + de + es + it + nl + ko + pt-BR + ) + foreach (lang ${lang_packs}) + set(strings_path ${res_loc}/langs/${lang}.lproj/Localizable.strings) + set_source_files_properties(${strings_path} PROPERTIES + MACOSX_PACKAGE_LOCATION + Resources/${lang}.lproj/Localizable.strings + ) + target_sources(Telegram PRIVATE ${strings_path}) + endforeach() + + add_custom_command(TARGET Telegram + PRE_LINK + COMMAND mkdir -p $/../Frameworks + COMMAND cp $ $/../Frameworks/ + ) + + if (NOT DESKTOP_APP_DISABLE_CRASH_REPORTS) + add_custom_command(TARGET Telegram + PRE_LINK + COMMAND mkdir -p $/../Helpers + COMMAND cp ${libs_loc}/crashpad/out/$,Debug,Release>/crashpad_handler $/../Helpers/ ) endif() endif() +if (build_macstore) + set(bundle_identifier "org.telegram.desktop") +elseif (build_osx) + set(bundle_identifier "com.tdesktop.Telegram$<$:DebugOsx>") +else() + set(bundle_identifier "com.tdesktop.Telegram$<$:Debug>") +endif() +set_target_properties(Telegram PROPERTIES + MACOSX_BUNDLE_GUI_IDENTIFIER ${bundle_identifier} + MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Telegram.plist + XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT $<$>:dwarf-with-dsym> + XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME AppIcon + XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME YES + XCODE_ATTRIBUTE_COMBINE_HIDPI_IMAGES YES + XCODE_ATTRIBUTE_COPY_PHASE_STRIP NO + XCODE_ATTRIBUTE_ALWAYS_SEARCH_USER_PATHS NO + XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY libc++ + XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS --deep +) + target_include_directories(Telegram PRIVATE ${src_loc} @@ -987,6 +1037,11 @@ PRIVATE AL_ALEXT_PROTOTYPES ) +set_target_properties(Telegram PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") + +add_executable(Updater WIN32) +init_target(Updater) + add_dependencies(Telegram Updater) set(updater_sources @@ -998,5 +1053,4 @@ PRIVATE ) nice_target_sources(Updater ${src_loc} "${updater_sources}") -set_target_properties(Telegram PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") set_target_properties(Updater PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") diff --git a/Telegram/SourceFiles/platform/mac/mac_touchbar.mm b/Telegram/SourceFiles/platform/mac/mac_touchbar.mm index 0c305126a..0f1d4d79e 100644 --- a/Telegram/SourceFiles/platform/mac/mac_touchbar.mm +++ b/Telegram/SourceFiles/platform/mac/mac_touchbar.mm @@ -29,7 +29,7 @@ #include "mainwindow.h" #include "observer_peer.h" #include "base/platform/mac/base_utilities_mac.h" -#include "stickers.h" +#include "chat_helpers/stickers.h" #include "styles/style_dialogs.h" #include "styles/style_media_player.h" #include "styles/style_settings.h" diff --git a/Telegram/cmake/generate_lang.cmake b/Telegram/cmake/generate_lang.cmake index 0f9008765..ed7e617aa 100644 --- a/Telegram/cmake/generate_lang.cmake +++ b/Telegram/cmake/generate_lang.cmake @@ -6,6 +6,8 @@ function(generate_lang target_name lang_file) set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen) + file(MAKE_DIRECTORY ${gen_dst}) + set(generated_files ${gen_dst}/lang_auto.cpp ${gen_dst}/lang_auto.h diff --git a/Telegram/cmake/generate_numbers.cmake b/Telegram/cmake/generate_numbers.cmake index 4828d632b..9c360aa7a 100644 --- a/Telegram/cmake/generate_numbers.cmake +++ b/Telegram/cmake/generate_numbers.cmake @@ -6,6 +6,8 @@ function(generate_numbers target_name numbers_file) set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen) + file(MAKE_DIRECTORY ${gen_dst}) + set(generated_files ${gen_dst}/numbers.cpp ${gen_dst}/numbers.h diff --git a/Telegram/cmake/generate_scheme.cmake b/Telegram/cmake/generate_scheme.cmake index b42ae22ab..f5c648f22 100644 --- a/Telegram/cmake/generate_scheme.cmake +++ b/Telegram/cmake/generate_scheme.cmake @@ -6,6 +6,8 @@ function(generate_scheme target_name script scheme_files) set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen) + file(MAKE_DIRECTORY ${gen_dst}) + set(generated_files ${gen_dst}/scheme.cpp ${gen_dst}/scheme.h diff --git a/Telegram/cmake/lib_tgvoip.cmake b/Telegram/cmake/lib_tgvoip.cmake index 71cfee061..962b1b336 100644 --- a/Telegram/cmake/lib_tgvoip.cmake +++ b/Telegram/cmake/lib_tgvoip.cmake @@ -4,8 +4,8 @@ # For license and copyright information please follow this link: # https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL -add_library(lib_tgvoip OBJECT) -init_target(lib_tgvoip) +add_library(lib_tgvoip STATIC) +init_target(lib_tgvoip cxx_std_11) add_library(tdesktop::lib_tgvoip ALIAS lib_tgvoip) set(tgvoip_loc ${third_party_loc}/libtgvoip) @@ -168,6 +168,8 @@ PRIVATE webrtc_dsp/rtc_base/sanitizer.h webrtc_dsp/rtc_base/scoped_ref_ptr.h webrtc_dsp/rtc_base/logging.h + webrtc_dsp/rtc_base/logging_mac.h + webrtc_dsp/rtc_base/logging_mac.mm webrtc_dsp/rtc_base/timeutils.h webrtc_dsp/rtc_base/atomicops.h webrtc_dsp/rtc_base/stringencode.cc @@ -721,6 +723,7 @@ if (WIN32) target_compile_options(lib_tgvoip PRIVATE /wd4005 + /wd4244 # conversion from 'int' to 'float', possible loss of data (several in webrtc) ) target_compile_definitions(lib_tgvoip PRIVATE @@ -732,6 +735,7 @@ elseif (APPLE) WEBRTC_POSIX WEBRTC_MAC TARGET_OS_OSX + TARGET_OSX ) if (build_macstore) target_compile_definitions(lib_tgvoip @@ -755,11 +759,6 @@ PRIVATE ${libs_loc}/opus/include ) -target_compile_options(lib_tgvoip -PRIVATE - /wd4244 # conversion from 'int' to 'float', possible loss of data (several in webrtc) -) - target_link_libraries(lib_tgvoip PRIVATE desktop-app::external_openssl diff --git a/Telegram/lib_rlottie b/Telegram/lib_rlottie index 348f27fcc..0671bf705 160000 --- a/Telegram/lib_rlottie +++ b/Telegram/lib_rlottie @@ -1 +1 @@ -Subproject commit 348f27fcc64a82e0a3ae3ec4dbb302e5bd9f5bab +Subproject commit 0671bf70547381effcf442ec9618e04502a8adbc diff --git a/Telegram/lib_ui b/Telegram/lib_ui index 8e3034213..6fda2709e 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit 8e3034213761ba98a916b16ad230560e5695c856 +Subproject commit 6fda2709ea0f594fc869422dee77eef2fd9dc86c diff --git a/cmake b/cmake index b303af63d..9e68adb86 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit b303af63d7ff7c6f76f223761004c6dee6c15a78 +Subproject commit 9e68adb86662862175f00b8a00c36aa9e1569cc8