From 5b4bea1fefc1275a2cf8849be0f284634e91d55e Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 11 Feb 2022 14:46:30 +0300 Subject: [PATCH] Add HashMap build time benchmark. --- benchmark/CMakeLists.txt | 13 +- benchmark/hashmap_build.cpp | 540 +++++++++++++++++++++++++++++ tdutils/CMakeLists.txt | 5 +- tdutils/test/hashset_benchmark.cpp | 2 +- test/CMakeLists.txt | 2 +- 5 files changed, 551 insertions(+), 11 deletions(-) create mode 100644 benchmark/hashmap_build.cpp diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index accadaf60..a3d3fbd31 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -77,13 +77,14 @@ find_package(ABSL QUIET) find_package(folly QUIET) if (ABSL_FOUND AND folly_FOUND) - add_executable(memory-hashset-memprof EXCLUDE_FROM_ALL ${CMAKE_CURRENT_SOURCE_DIR}/hashset_memory.cpp) + add_executable(memory-hashset-memprof EXCLUDE_FROM_ALL hashset_memory.cpp) target_compile_definitions(memory-hashset-memprof PRIVATE USE_MEMPROF=1) - target_link_libraries(memory-hashset-memprof PRIVATE tdutils memprof_stat) - target_link_libraries(memory-hashset-memprof PRIVATE Folly::folly absl::flat_hash_map absl::hash) + target_link_libraries(memory-hashset-memprof PRIVATE tdutils memprof_stat Folly::folly absl::flat_hash_map absl::hash) - add_executable(memory-hashset-os ${CMAKE_CURRENT_SOURCE_DIR}/hashset_memory.cpp) + add_executable(memory-hashset-os hashset_memory.cpp) target_compile_definitions(memory-hashset-os PRIVATE USE_MEMPROF=0) - target_link_libraries(memory-hashset-os PRIVATE tdutils) - target_link_libraries(memory-hashset-os PRIVATE Folly::folly absl::flat_hash_map absl::hash) + target_link_libraries(memory-hashset-os PRIVATE tdutils Folly::folly absl::flat_hash_map absl::hash) + + add_executable(hashmap-build hashmap_build.cpp) + target_link_libraries(hashmap-build PRIVATE tdutils Folly::folly absl::flat_hash_map absl::hash) endif() diff --git a/benchmark/hashmap_build.cpp b/benchmark/hashmap_build.cpp new file mode 100644 index 000000000..be58967de --- /dev/null +++ b/benchmark/hashmap_build.cpp @@ -0,0 +1,540 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2022 +// +// 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/utils/FlatHashMap.h" + +#include +#include +#include +#include + +#define test_map td::FlatHashMap +//#define test_map folly::F14FastMap +//#define test_map absl::flat_hash_map +//#define test_map std::map +//#define test_map std::unordered_map + +//#define CREATE_MAP(num) CREATE_MAP_IMPL(num) +#define CREATE_MAP(num) + +#define CREATE_MAP_IMPL(num) \ + int f_##num() { \ + test_map> m; \ + m.emplace(1, std::array{}); \ + int sum = 0; \ + for (auto &it : m) { \ + sum += it.first; \ + } \ + auto it = m.find(1); \ + sum += it->first; \ + m.erase(it); \ + return sum; \ + } \ + int x_##num = f_##num() + +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); +CREATE_MAP(__LINE__); + +int main() { +} diff --git a/tdutils/CMakeLists.txt b/tdutils/CMakeLists.txt index f8dc15013..837de5c12 100644 --- a/tdutils/CMakeLists.txt +++ b/tdutils/CMakeLists.txt @@ -391,7 +391,6 @@ find_package(benchmark QUIET) find_package(folly QUIET) if (ABSL_FOUND AND benchmark_FOUND AND folly_FOUND) - add_executable(benchmark-hashset ${CMAKE_CURRENT_SOURCE_DIR}/test/hashset_benchmark.cpp) - target_link_libraries(benchmark-hashset PRIVATE tdutils) - target_link_libraries(benchmark-hashset PRIVATE benchmark::benchmark Folly::folly absl::flat_hash_map absl::hash) + add_executable(benchmark-hashset test/hashset_benchmark.cpp) + target_link_libraries(benchmark-hashset PRIVATE tdutils benchmark::benchmark Folly::folly absl::flat_hash_map absl::hash) endif() diff --git a/tdutils/test/hashset_benchmark.cpp b/tdutils/test/hashset_benchmark.cpp index c6d66b2c2..07e4b1d80 100644 --- a/tdutils/test/hashset_benchmark.cpp +++ b/tdutils/test/hashset_benchmark.cpp @@ -372,7 +372,7 @@ static void BM_cache3(benchmark::State &state) { } template static void BM_remove_if_slow(benchmark::State &state) { - constexpr size_t N = 100000; + constexpr size_t N = 5000; constexpr size_t BATCH_SIZE = 500000; TableT table; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 7baaff361..2ac9ad32d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -37,7 +37,7 @@ set(TESTS_MAIN if (NOT CMAKE_CROSSCOMPILING OR EMSCRIPTEN) #Tests if (OPENSSL_FOUND) - add_executable(test-crypto EXCLUDE_FROM_ALL ${CMAKE_CURRENT_SOURCE_DIR}/crypto.cpp) + add_executable(test-crypto EXCLUDE_FROM_ALL crypto.cpp) target_include_directories(test-crypto SYSTEM PRIVATE ${OPENSSL_INCLUDE_DIR}) target_link_libraries(test-crypto PRIVATE ${OPENSSL_CRYPTO_LIBRARY} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES} tdutils tdcore)