cmakeListsTemplate function
Implementation
String cmakeListsTemplate(String pluginName) => '''
cmake_minimum_required(VERSION 3.10)
project(${pluginName}_library VERSION 0.0.1 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(NITRO_NATIVE "\${CMAKE_CURRENT_SOURCE_DIR}/../../packages/nitro/src/native")
set(GENERATED_CPP "\${CMAKE_CURRENT_SOURCE_DIR}/../lib/src/generated/cpp")
add_library($pluginName SHARED
"$pluginName.cpp"
"\${CMAKE_CURRENT_SOURCE_DIR}/../lib/src/generated/cpp/$pluginName.bridge.g.cpp"
"dart_api_dl.c"
)
target_include_directories($pluginName PRIVATE
"\${CMAKE_CURRENT_SOURCE_DIR}"
"\${GENERATED_CPP}"
"\${NITRO_NATIVE}"
)
target_compile_definitions($pluginName PUBLIC DART_SHARED_LIB)
if(ANDROID)
target_link_libraries($pluginName PRIVATE android log)
target_link_options($pluginName PRIVATE "-Wl,-z,max-page-size=16384")
endif()
''';