LiteRT-LM / runtime /util /CMakeLists.txt
SeaWolf-AI's picture
Upload full LiteRT-LM codebase
5f923cd verified
# Copyright 2026 Google LLC.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set(PKG_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
# ==============================================================================
# 0. Local Proto: External File
# ==============================================================================
# set(EXTERNAL_FILE_PROTO "external_file.proto")
# set(EXTERNAL_FILE_PROTO_SRCS "${CMAKE_BINARY_DIR}/runtime/util/external_file.pb.cc")
# set(EXTERNAL_FILE_PROTO_HDRS "${CMAKE_BINARY_DIR}/runtime/util/external_file.pb.h")
# add_custom_command(
# OUTPUT ${EXTERNAL_FILE_PROTO_SRCS} ${EXTERNAL_FILE_PROTO_HDRS}
# COMMAND ${PROTO_COMPILER}
# ARGS --cpp_out=${CMAKE_BINARY_DIR} -I${PROJECT_SOURCE_DIR} ${PKG_ROOT}/${EXTERNAL_FILE_PROTO}
# DEPENDS ${PKG_ROOT}/${EXTERNAL_FILE_PROTO}
# COMMENT "Generating C++ code for external_file.proto"
# VERBATIM
# )
# add_litertlm_library(runtime_util_external_file_cc_proto STATIC
# ${EXTERNAL_FILE_PROTO_SRCS}
# ${EXTERNAL_FILE_PROTO_HDRS}
# )
# target_include_directories(runtime_util_external_file_cc_proto
# PUBLIC
# ${LITERTLM_INCLUDE_PATHS}
# ${CMAKE_BINARY_DIR}
# )
# target_link_libraries(runtime_util_external_file_cc_proto PUBLIC LITERTLM_DEPS)
# ==============================================================================
# 1. Convert Tensor Buffer
# ==============================================================================
add_litertlm_library(runtime_util_convert_tensor_buffer INTERFACE)
add_library(LiteRTLM::Runtime::Util::ConvertTensorBuffer ALIAS runtime_util_convert_tensor_buffer)
target_include_directories(runtime_util_convert_tensor_buffer
INTERFACE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_convert_tensor_buffer
INTERFACE
LITERTLM_DEPS
)
# ==============================================================================
# 2. Tensor Buffer Util
# ==============================================================================
add_litertlm_library(runtime_util_tensor_buffer_util STATIC
tensor_buffer_util.cc
)
add_library(LiteRTLM::Runtime::Util::TensorBufferUtil ALIAS runtime_util_tensor_buffer_util)
target_include_directories(runtime_util_tensor_buffer_util
PRIVATE
${CMAKE_BINARY_DIR}
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_tensor_buffer_util
PUBLIC
LITERTLM_DEPS
)
# ==============================================================================
# 3. LiteRT Status Util
# ==============================================================================
add_litertlm_library(runtime_util_litert_status_util INTERFACE)
add_library(LiteRTLM::Runtime::Util::LiteRtStatusUtil ALIAS runtime_util_litert_status_util)
target_include_directories(runtime_util_litert_status_util
INTERFACE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_litert_status_util
INTERFACE
LITERTLM_DEPS
)
# ==============================================================================
# 4. Scoped File (Platform Specific)
# ==============================================================================
set(LITERT_CC_INTERNAL_DIR "${LITERT_SRC_DIR}/cc/internal/" CACHE PATH "")
set(SCOPED_FILE_SRCS "${LITERT_CC_INTERNAL_DIR}/scoped_file.cc")
if(WIN32)
list(APPEND SCOPED_FILE_SRCS "${LITERT_CC_INTERNAL_DIR}/scoped_file_win.cc")
else()
list(APPEND SCOPED_FILE_SRCS "${LITERT_CC_INTERNAL_DIR}/scoped_file_posix.cc")
endif()
add_litertlm_library(runtime_util_scoped_file STATIC
${SCOPED_FILE_SRCS}
)
add_library(LiteRTLM::Runtime::Util::ScopedFile ALIAS runtime_util_scoped_file)
target_include_directories(runtime_util_scoped_file
PRIVATE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_scoped_file
PUBLIC
LiteRTLM::Runtime::Util::LiteRtStatusUtil
LITERTLM_DEPS
)
# ==============================================================================
# 5. Memory Mapped File (Platform Specific)
# ==============================================================================
if(WIN32)
set(MMAP_SRC memory_mapped_file_win.cc)
else()
set(MMAP_SRC memory_mapped_file_posix.cc)
endif()
add_litertlm_library(runtime_util_memory_mapped_file STATIC
${MMAP_SRC}
)
add_library(LiteRTLM::Runtime::Util::MemoryMappedFile ALIAS runtime_util_memory_mapped_file)
if(WIN32)
target_compile_definitions(runtime_util_memory_mapped_file PRIVATE _WIN32_WINNT=_WIN32_WINNT_WIN10)
endif()
target_include_directories(runtime_util_memory_mapped_file
PRIVATE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_memory_mapped_file
PUBLIC
LiteRTLM::Runtime::Util::LiteRtStatusUtil
LiteRTLM::Runtime::Util::ScopedFile
LITERTLM_DEPS
)
# ==============================================================================
# 6. File Util
# ==============================================================================
add_litertlm_library(runtime_util_file_util STATIC
file_util.cc
)
add_library(LiteRTLM::Runtime::Util::FileUtil ALIAS runtime_util_file_util)
target_include_directories(runtime_util_file_util
PRIVATE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_file_util
PUBLIC
LITERTLM_DEPS
)
# ==============================================================================
# 7. File Format Util
# ==============================================================================
add_litertlm_library(runtime_util_file_format_util STATIC
file_format_util.cc
)
add_library(LiteRTLM::Runtime::Util::FileFormatUtil ALIAS runtime_util_file_format_util)
target_include_directories(runtime_util_file_format_util
PRIVATE
${GENERATED_SRC_DIR}
${CMAKE_BINARY_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_file_format_util
PUBLIC
runtime_executor_executor_settings_base
LiteRTLM::Runtime::Util::LiteRtStatusUtil
LiteRTLM::Runtime::Util::MemoryMappedFile
LiteRTLM::Runtime::Util::ScopedFile
LITERTLM_DEPS
)
# ==============================================================================
# 8. Executor Data Util
# ==============================================================================
add_litertlm_library(runtime_util_executor_data_util STATIC
executor_data_util.cc
)
add_library(LiteRTLM::Runtime::Util::ExecutorDataUtil ALIAS runtime_util_executor_data_util)
target_include_directories(runtime_util_executor_data_util
PRIVATE
${GENERATED_SRC_DIR}
${CMAKE_BINARY_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_executor_data_util
PUBLIC
LiteRTLM::Runtime::Util::ConvertTensorBuffer
LiteRTLM::Runtime::Util::TensorBufferUtil
runtime_executor_llm_executor_io_types # [Restored explicit link]
LITERTLM_DEPS
)
# ==============================================================================
# 9. LiteRT LM Loader
# ==============================================================================
add_litertlm_library(runtime_util_litert_lm_loader STATIC
litert_lm_loader.cc
)
add_library(LiteRTLM::Runtime::Util::LMLoader ALIAS runtime_util_litert_lm_loader)
target_include_directories(runtime_util_litert_lm_loader
PRIVATE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_litert_lm_loader
PUBLIC
LiteRTLM::Runtime::Util::LiteRtStatusUtil
LiteRTLM::Runtime::Util::MemoryMappedFile
LiteRTLM::Runtime::Util::ScopedFile
LiteRTLM::Schema::Core
LITERTLM_DEPS
LiteRTLM::Runtime::Components::ModelResources::Interface # Components
)
# ==============================================================================
# 10. Logging
# ==============================================================================
add_litertlm_library(runtime_util_logging INTERFACE)
add_library(LiteRTLM::Runtime::Util::Logging ALIAS runtime_util_logging)
target_include_directories(runtime_util_logging
INTERFACE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_logging
INTERFACE
LITERTLM_DEPS
)
# ==============================================================================
# 11. Logging Tensor Buffer
# ==============================================================================
add_litertlm_library(runtime_util_logging_tensor_buffer STATIC
logging_tensor_buffer.cc
)
add_library(LiteRTLM::Runtime::Util::LoggingTensorBuffer ALIAS runtime_util_logging_tensor_buffer)
target_include_directories(runtime_util_logging_tensor_buffer
PRIVATE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_logging_tensor_buffer
PUBLIC
LITERTLM_DEPS
)
# ==============================================================================
# 12. LoRA Util
# ==============================================================================
add_litertlm_library(runtime_util_lora_util STATIC
lora_util.cc
)
add_library(LiteRTLM::Runtime::Util::LoRAUtil ALIAS runtime_util_lora_util)
target_include_directories(runtime_util_lora_util
PRIVATE
${GENERATED_SRC_DIR}
${CMAKE_BINARY_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_lora_util
PUBLIC
LiteRTLM::Runtime::Util::LiteRtStatusUtil
LiteRTLM::Runtime::Util::MemoryMappedFile
LiteRTLM::Runtime::Util::ScopedFile
LITERTLM_DEPS
)
# ==============================================================================
# 13. LoRA Data
# ==============================================================================
add_litertlm_library(runtime_util_lora_data STATIC
lora_data.cc
)
add_library(LiteRTLM::Runtime::Util::LoRAData ALIAS runtime_util_lora_data)
target_include_directories(runtime_util_lora_data
PRIVATE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_lora_data
PUBLIC
LiteRTLM::Runtime::Util::LiteRtStatusUtil
LiteRTLM::Runtime::Util::LoRAUtil
LiteRTLM::Runtime::Util::ScopedFile
LITERTLM_DEPS
)
# ==============================================================================
# 14. Metadata Util
# ==============================================================================
add_litertlm_library(runtime_util_metadata_util STATIC
metadata_util.cc
)
add_library(LiteRTLM::Runtime::Util::MetadataUtil ALIAS runtime_util_metadata_util)
target_include_directories(runtime_util_metadata_util
PRIVATE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_metadata_util
PUBLIC
LITERTLM_DEPS
)
# ==============================================================================
# 15. Zip Readonly Mem File
# ==============================================================================
add_litertlm_library(runtime_util_zip_readonly_mem_file STATIC
zip_readonly_mem_file.cc
)
add_library(LiteRTLM::Runtime::Util::ZipReadonlyMemFile ALIAS runtime_util_zip_readonly_mem_file)
target_include_directories(runtime_util_zip_readonly_mem_file
PRIVATE
${CMAKE_BINARY_DIR}
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
${THIRD_PARTY_DIR}/minizip
)
target_link_libraries(runtime_util_zip_readonly_mem_file
PUBLIC
LITERTLM_DEPS
)
# ==============================================================================
# 16. Zip Utils
# ==============================================================================
add_litertlm_library(runtime_util_zip_utils STATIC
zip_utils.cc
)
add_library(LiteRTLM::Runtime::Util::ZipUtils ALIAS runtime_util_zip_utils)
target_include_directories(runtime_util_zip_utils
PRIVATE
${CMAKE_BINARY_DIR}
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
${THIRD_PARTY_DIR}
)
target_link_libraries(runtime_util_zip_utils
PUBLIC
LiteRTLM::Runtime::Util::LiteRtStatusUtil
LiteRTLM::Runtime::Util::ZipReadonlyMemFile
LITERTLM_DEPS
)
# ==============================================================================
# 17. Model Asset Bundle Resources
# ==============================================================================
add_litertlm_library(runtime_util_model_asset_bundle_resources STATIC
model_asset_bundle_resources.cc
)
add_library(LiteRTLM::Runtime::Util::ModelAssetBundleResources ALIAS runtime_util_model_asset_bundle_resources)
target_include_directories(runtime_util_model_asset_bundle_resources
PRIVATE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_model_asset_bundle_resources
PUBLIC
LiteRTLM::Runtime::Util::LiteRtStatusUtil
LiteRTLM::Runtime::Util::MemoryMappedFile
LiteRTLM::Runtime::Util::ScopedFile
LiteRTLM::Runtime::Util::ZipUtils
LITERTLM_DEPS
)
# ==============================================================================
# 18. Model Type Utils
# ==============================================================================
add_litertlm_library(runtime_util_model_type_utils STATIC
model_type_utils.cc
)
add_library(LiteRTLM::Runtime::Util::ModelTypeUtils ALIAS runtime_util_model_type_utils)
target_include_directories(runtime_util_model_type_utils
PRIVATE
${GENERATED_SRC_DIR}
${LITERTLM_INCLUDE_PATHS}
)
target_link_libraries(runtime_util_model_type_utils
PUBLIC
LiteRTLM::Runtime::Util::LiteRtStatusUtil
LiteRTLM::Runtime::Components::Tokenizer::Interface
LITERTLM_DEPS
)
# ==============================================================================
# 19. Folder Facade
# ==============================================================================
add_library(runtime_util_libs INTERFACE)
add_library(LiteRTLM::Runtime::Util ALIAS runtime_util_libs)
target_link_libraries(runtime_util_libs INTERFACE
LiteRTLM::Runtime::Util::ConvertTensorBuffer
LiteRTLM::Runtime::Util::ExecutorDataUtil
LiteRTLM::Runtime::Util::FileFormatUtil
LiteRTLM::Runtime::Util::FileUtil
LiteRTLM::Runtime::Util::LMLoader
LiteRTLM::Runtime::Util::LoggingTensorBuffer
LiteRTLM::Runtime::Util::LoRAData
LiteRTLM::Runtime::Util::LoRAUtil
LiteRTLM::Runtime::Util::MemoryMappedFile
LiteRTLM::Runtime::Util::MetadataUtil
LiteRTLM::Runtime::Util::ModelAssetBundleResources
LiteRTLM::Runtime::Util::ModelTypeUtils
LiteRTLM::Runtime::Util::ScopedFile
LiteRTLM::Runtime::Util::TensorBufferUtil
LiteRTLM::Runtime::Util::ZipReadonlyMemFile
LiteRTLM::Runtime::Util::ZipUtils
)