cmake_minimum_required(VERSION 4.0) project(native_invoker_lib VERSION 1.0.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) file(GLOB_RECURSE NATIVE_INVOKER_SOURCES src/*.cpp ) add_library(native_invoker_lib SHARED ${NATIVE_INVOKER_SOURCES}) target_include_directories(native_invoker_lib PUBLIC include PRIVATE src ) set(BLACKBASE_BUILD_TESTS OFF CACHE BOOL "Disable building tests for blackbase") add_subdirectory(vendor/blackbase) target_link_libraries(native_invoker_lib PUBLIC blackbase) file(GLOB NATIVE_INVOKER_EXAMPLES examples/*.cpp ) foreach(EXAMPLE_SOURCE ${NATIVE_INVOKER_EXAMPLES}) get_filename_component(EXAMPLE_NAME ${EXAMPLE_SOURCE} NAME_WE) add_library(${EXAMPLE_NAME} SHARED ${EXAMPLE_SOURCE}) target_include_directories(${EXAMPLE_NAME} PUBLIC include ) target_compile_definitions(${EXAMPLE_NAME} PRIVATE FXN_IMPORTS ) endforeach()