diff --git a/CMakeLists.txt b/CMakeLists.txt index 95302ba9..84340aac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,10 +2,6 @@ cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR) project(TDLib VERSION 1.1.3 LANGUAGES CXX C) -if ("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") - set(UWP 1) -endif() - option(TD_ENABLE_JNI "Use \"ON\" to enable JNI-compatible TDLib API.") option(TD_ENABLE_DOTNET "Use \"ON\" to enable generation of C++/CLI or C++/CX TDLib API bindings.") @@ -53,7 +49,6 @@ In FAST mode stack is unwinded only using frame pointers, which may fail. \ In SAFE mode stack is unwinded using backtrace function from execinfo.h, which may be very slow. \ By default both methods are used to achieve maximum speed and accuracy") -# LIBRARIES if (EMSCRIPTEN) # use prebuilt zlib set(ZLIB_FOUND 1) @@ -283,7 +278,7 @@ set(TL_C_SCHEME_SOURCE set_source_files_properties(${TL_DOTNET_AUTO} PROPERTIES GENERATED TRUE) set(TL_DOTNET_SCHEME_SOURCE ${TL_TD_DOTNET_AUTO} - td/tl/tl_win_object.h + td/tl/tl_dotnet_object.h ) set(TDLIB_SOURCE @@ -595,27 +590,25 @@ if (TD_ENABLE_JNI AND NOT ANDROID) # jni is available by default on Android endif() if (TD_ENABLE_DOTNET) - add_library(TdWindows SHARED - td/telegram/ClientWindows.cpp - td/telegram/LogWindows.cpp + add_library(TdDotNet SHARED + td/telegram/ClientDotNet.cpp + td/telegram/LogDotNet.cpp ${TL_DOTNET_SCHEME_SOURCE} ) - target_link_libraries(TdWindows PRIVATE tdclient tdutils) - target_include_directories(TdWindows PUBLIC + target_link_libraries(TdDotNet PRIVATE tdclient tdutils) + target_include_directories(TdDotNet PUBLIC $ ) if (NOT CMAKE_CROSSCOMPILING) - add_dependencies(TdWindows generate_td_windows_api) + add_dependencies(TdDotNet generate_dotnet_api) endif() - if (UWP) - set_target_properties(TdWindows PROPERTIES VS_WINRT_COMPONENT "true") - target_compile_options(TdWindows PUBLIC "/ZW") + if ("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") + set_target_properties(TdDotNet PROPERTIES VS_WINRT_COMPONENT "true") + target_compile_options(TdDotNet PUBLIC "/ZW") else() - set_target_properties(TdWindows PROPERTIES COMPILE_FLAGS "/GR /clr") - target_compile_options(TdWindows PUBLIC "/EHa") + set_target_properties(TdDotNet PROPERTIES COMPILE_FLAGS "/GR /clr") + target_compile_options(TdDotNet PUBLIC "/EHa") endif() - - target_compile_options(TdWindows PUBLIC "/bigobj") endif() # tdc - TDLib interface in pure c. @@ -669,6 +662,9 @@ if (BIGOBJ) target_compile_options(tdclient PUBLIC ${BIGOBJ}) target_compile_options(tdjson PUBLIC ${BIGOBJ}) target_compile_options(tdjson_static PUBLIC ${BIGOBJ}) + if (TD_ENABLE_DOTNET) + target_compile_options(TdDotNet PUBLIC "/bigobj") + endif() endif() if (EMSCRIPTEN) diff --git a/sqlite/CMakeLists.txt b/sqlite/CMakeLists.txt index d8aa9630..b1f0e206 100644 --- a/sqlite/CMakeLists.txt +++ b/sqlite/CMakeLists.txt @@ -40,8 +40,8 @@ elseif (MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996") endif() -if (UWP) - target_compile_options(tdsqlite PRIVATE /DSQLITE_OS_WINRT=1) +if ("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") + target_compile_definitions(tdsqlite PRIVATE -DSQLITE_OS_WINRT=1) endif() install(TARGETS tdsqlite EXPORT TdTargets diff --git a/td/generate/CMakeLists.txt b/td/generate/CMakeLists.txt index e9f0fc7b..359728b2 100644 --- a/td/generate/CMakeLists.txt +++ b/td/generate/CMakeLists.txt @@ -38,8 +38,8 @@ set(TL_C_AUTO ) set(TL_TD_DOTNET_AUTO - ${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/TdWindowsApi.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/TdWindowsApi.h + ${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/TdDotNetApi.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/auto/td/telegram/TdDotNetApi.h PARENT_SCOPE ) @@ -98,7 +98,7 @@ if (NOT CMAKE_CROSSCOMPILING) add_custom_target(tl_generate_common WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${GENERATE_COMMON_CMD} COMMENT "Generate common tl source files" - DEPENDS generate_common scheme/mtproto_api.tlo scheme/telegram_api.tlo scheme/secret_api.tlo scheme/td_api.tlo + DEPENDS generate_common scheme/mtproto_api.tlo scheme/telegram_api.tlo scheme/secret_api.tlo ${TL_TD_API_TLO} ) if (TD_ENABLE_JNI) target_compile_definitions(generate_common PRIVATE TD_ENABLE_JNI=1) @@ -110,7 +110,7 @@ if (NOT CMAKE_CROSSCOMPILING) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND generate_c COMMENT "Generate C tl source files" - DEPENDS generate_c scheme/td_api.tlo + DEPENDS generate_c ${TL_TD_API_TLO} ) add_executable(td_generate_java_api ${TL_GENERATE_JAVA_SOURCE}) @@ -122,7 +122,7 @@ if (NOT CMAKE_CROSSCOMPILING) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND generate_json COMMENT "Generate JSON tl source files" - DEPENDS generate_json scheme/td_api.tlo + DEPENDS generate_json ${TL_TD_API_TLO} ) if (TD_ENABLE_JNI) @@ -131,12 +131,14 @@ if (NOT CMAKE_CROSSCOMPILING) install(FILES scheme/td_api.tlo scheme/td_api.tl DESTINATION bin/td/generate/scheme) endif() - add_executable(generate_td_windows_api_exe generate_td_windows_api.cpp tl_writer_win.h) - target_link_libraries(generate_td_windows_api_exe PRIVATE tdtl) - add_custom_target(generate_td_windows_api - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND generate_td_windows_api_exe ${TL_TD_API_TLO} - COMMENT "Generate tl-files" - DEPENDS generate_td_windows_api_exe ${TL_TD_API_TLO} - ) + if (TD_ENABLE_DOTNET) + add_executable(td_generate_dotnet_api generate_dotnet.cpp tl_writer_dotnet.h) + target_link_libraries(td_generate_dotnet_api PRIVATE tdtl) + add_custom_target(generate_dotnet_api + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND td_generate_dotnet_api ${TL_TD_API_TLO} + COMMENT "Generate .Net API files" + DEPENDS td_generate_dotnet_api ${TL_TD_API_TLO} + ) + endif() endif() diff --git a/td/generate/generate_td_windows_api.cpp b/td/generate/generate_dotnet.cpp similarity index 53% rename from td/generate/generate_td_windows_api.cpp rename to td/generate/generate_dotnet.cpp index 59e7f3d6..e6a793b2 100644 --- a/td/generate/generate_td_windows_api.cpp +++ b/td/generate/generate_dotnet.cpp @@ -4,11 +4,11 @@ // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // +#include "tl_writer_dotnet.h" + #include "td/tl/tl_config.h" #include "td/tl/tl_generate.h" -#include "tl_writer_win.h" - int main(int argc, char *argv[]) { if (argc < 2) { return 1; @@ -16,10 +16,8 @@ int main(int argc, char *argv[]) { td::tl::tl_config config_td = td::tl::read_tl_config_from_file(argv[1]); - td::tl::write_tl_to_file(config_td, "auto/td/telegram/TdWindowsApi.cpp", - td::tl::TlWriterWinCommon("TdApi", false, "#include \"td/telegram/TdWindowsApi.h\"\n")); - td::tl::write_tl_to_file(config_td, "auto/td/telegram/TdWindowsApi.h", - td::tl::TlWriterWinCommon("TdApi", true, "#include \"td/telegram/td_api.h\"\n")); - - return 0; + td::tl::write_tl_to_file(config_td, "auto/td/telegram/TdDotNetApi.cpp", + td::tl::TlWriterDotNet("TdApi", false, "#include \"td/telegram/TdDotNetApi.h\"\n")); + td::tl::write_tl_to_file(config_td, "auto/td/telegram/TdDotNetApi.h", + td::tl::TlWriterDotNet("TdApi", true, "#include \"td/telegram/td_api.h\"\n")); } diff --git a/td/generate/tl_writer_win.h b/td/generate/tl_writer_dotnet.h similarity index 98% rename from td/generate/tl_writer_win.h rename to td/generate/tl_writer_dotnet.h index 7483c905..b01679bd 100644 --- a/td/generate/tl_writer_win.h +++ b/td/generate/tl_writer_dotnet.h @@ -16,11 +16,11 @@ namespace td { namespace tl { -class TlWriterWinCommon : public TL_writer { +class TlWriterDotNet : public TL_writer { public: bool is_header_; std::string prefix_; - TlWriterWinCommon(const std::string &name, bool is_header, const std::string &prefix = "") + TlWriterDotNet(const std::string &name, bool is_header, const std::string &prefix = "") : TL_writer(name), is_header_(is_header), prefix_(prefix) { } int get_max_arity(void) const override { @@ -179,7 +179,7 @@ class TlWriterWinCommon : public TL_writer { std::string gen_output_begin(void) const override { return prefix_ + "#include \"td/utils/port/CxCli.h\"\n" - "#include \"td/tl/tl_win_object.h\"\n\n" + "#include \"td/tl/tl_dotnet_object.h\"\n\n" "namespace TdWindows {\n"; } std::string gen_output_end() const override { diff --git a/td/telegram/ClientWindows.cpp b/td/telegram/ClientDotNet.cpp similarity index 98% rename from td/telegram/ClientWindows.cpp rename to td/telegram/ClientDotNet.cpp index d4b18106..d3d26b07 100644 --- a/td/telegram/ClientWindows.cpp +++ b/td/telegram/ClientDotNet.cpp @@ -4,13 +4,14 @@ // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // -#include "td/telegram/TdWindowsApi.h" +#include "td/telegram/TdDotNetApi.h" #include "td/telegram/Client.h" #include "td/utils/port/CxCli.h" namespace TdWindows { + using namespace CxCli; public interface class ClientResultHandler { diff --git a/td/telegram/LogWindows.cpp b/td/telegram/LogDotNet.cpp similarity index 99% rename from td/telegram/LogWindows.cpp rename to td/telegram/LogDotNet.cpp index b79138b3..1ab05ca5 100644 --- a/td/telegram/LogWindows.cpp +++ b/td/telegram/LogDotNet.cpp @@ -9,7 +9,9 @@ #include "td/utils/port/CxCli.h" namespace TdWindows { + using namespace CxCli; + public ref class Log sealed { public: static void SetFilePath(String^ filePath) { @@ -24,4 +26,5 @@ public: ::td::Log::set_verbosity_level(verbosityLevel); } }; + } // namespace TdWindows diff --git a/td/tl/tl_win_object.h b/td/tl/tl_dotnet_object.h similarity index 99% rename from td/tl/tl_win_object.h rename to td/tl/tl_dotnet_object.h index 49a3d166..218d2d52 100644 --- a/td/tl/tl_win_object.h +++ b/td/tl/tl_dotnet_object.h @@ -8,7 +8,6 @@ #include "td/utils/misc.h" #include "td/utils/port/CxCli.h" -#include "td/utils/tl_storers.h" #include "td/telegram/td_api.h" #include "td/telegram/td_api.hpp"