From 1b70e483272c193926633e41eb357a700b0bc293 Mon Sep 17 00:00:00 2001 From: Marat <98183742+dungeon-master-666@users.noreply.github.com> Date: Sun, 23 Feb 2025 13:01:33 +0100 Subject: [PATCH] Add option to build static tonlibjson and emulator (#1527) * add option to build static tonlibjson and emulator * do not export cmake project in case of static tonlibjson --- emulator/CMakeLists.txt | 8 +++----- tonlib/CMakeLists.txt | 8 +++++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/emulator/CMakeLists.txt b/emulator/CMakeLists.txt index a0799541..663c8fd2 100644 --- a/emulator/CMakeLists.txt +++ b/emulator/CMakeLists.txt @@ -1,8 +1,6 @@ cmake_minimum_required(VERSION 3.5 FATAL_ERROR) -if (NOT OPENSSL_FOUND) - find_package(OpenSSL REQUIRED) -endif() +option(EMULATOR_STATIC "Build emulator as static library" OFF) set(EMULATOR_STATIC_SOURCE transaction-emulator.cpp @@ -22,7 +20,7 @@ include(GenerateExportHeader) add_library(emulator_static STATIC ${EMULATOR_STATIC_SOURCE}) target_link_libraries(emulator_static PUBLIC ton_crypto smc-envelope) -if (USE_EMSCRIPTEN) +if (EMULATOR_STATIC OR USE_EMSCRIPTEN) add_library(emulator STATIC ${EMULATOR_SOURCE}) else() add_library(emulator SHARED ${EMULATOR_SOURCE}) @@ -35,7 +33,7 @@ else() endif() generate_export_header(emulator EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/emulator_export.h) -if (USE_EMSCRIPTEN) +if (EMULATOR_STATIC OR USE_EMSCRIPTEN) target_compile_definitions(emulator PUBLIC EMULATOR_STATIC_DEFINE) endif() target_include_directories(emulator PUBLIC diff --git a/tonlib/CMakeLists.txt b/tonlib/CMakeLists.txt index eb538361..3dbd628d 100644 --- a/tonlib/CMakeLists.txt +++ b/tonlib/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 3.5 FATAL_ERROR) +option(TONLIBJSON_STATIC "Build tonlibjson as static library" OFF) + if (NOT OPENSSL_FOUND) find_package(OpenSSL REQUIRED) endif() @@ -90,7 +92,7 @@ set(TONLIB_JSON_HEADERS tonlib/tonlib_client_json.h) set(TONLIB_JSON_SOURCE tonlib/tonlib_client_json.cpp) include(GenerateExportHeader) -if (USE_EMSCRIPTEN) +if (TONLIBJSON_STATIC OR USE_EMSCRIPTEN) add_library(tonlibjson STATIC ${TONLIB_JSON_SOURCE}) else() add_library(tonlibjson SHARED ${TONLIB_JSON_SOURCE}) @@ -103,7 +105,7 @@ else() endif() generate_export_header(tonlibjson EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/tonlib/tonlibjson_export.h) -if (USE_EMSCRIPTEN) +if (TONLIBJSON_STATIC OR USE_EMSCRIPTEN) target_compile_definitions(tonlibjson PUBLIC TONLIBJSON_STATIC_DEFINE) endif() target_include_directories(tonlibjson PUBLIC @@ -157,7 +159,7 @@ endif() install(FILES ${TONLIB_JSON_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/tonlib/tonlibjson_export.h DESTINATION include/tonlib/) -if (NOT USE_EMSCRIPTEN) +if (NOT USE_EMSCRIPTEN AND NOT TONLIBJSON_STATIC) install(EXPORT Tonlib FILE TonlibTargets.cmake NAMESPACE Tonlib::