From ef79aa8b80f4bb73e324f91259b1de586c5841b8 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Wed, 29 May 2024 10:38:57 +0200 Subject: [PATCH] support building tomato as a lib/shared object --- CMakeLists.txt | 1 + src/CMakeLists.txt | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 32d4a5af..2436386c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,7 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") +option(TOMATO_MAIN_SO "Build tomato as a shared object (for eg android apps)" ANDROID) option(TOMATO_ASAN "Build tomato with asan (gcc/clang/msvc)" OFF) if (TOMATO_ASAN) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cacd6b14..445a5cb6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,8 +1,15 @@ -cmake_minimum_required(VERSION 3.9 FATAL_ERROR) +cmake_minimum_required(VERSION 3.9...3.24 FATAL_ERROR) ######################################## -add_executable(tomato +if (TOMATO_MAIN_SO) + add_library(tomato MODULE) + target_compile_definitions(tomato PUBLIC TOMATO_MAIN_SO) +else() + add_executable(tomato) +endif() + +target_sources(tomato PUBLIC ./main.cpp ./icon.rc