# Licensed to the LF AI & Data foundation under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.

option(EMBEDDED_MILVUS "Enable embedded Milvus" OFF)

if(EMBEDDED_MILVUS)
    add_compile_definitions(EMBEDDED_MILVUS)
endif()

milvus_add_pkg_config("milvus_storage")

set(STORAGE_FILES
    PayloadStream.cpp
    DataCodec.cpp
    Util.cpp
    PayloadReader.cpp
    PayloadWriter.cpp
    BinlogReader.cpp
    IndexData.cpp
    InsertData.cpp
    Event.cpp
    ThreadPool.cpp
    prometheus_client.cpp
    storage_c.cpp
    MemFileManagerImpl.cpp
    LocalChunkManager.cpp
    DiskFileManagerImpl.cpp
    ThreadPools.cpp
    ChunkCache.cpp)

add_library(milvus_storage ${STORAGE_FILES})

target_link_libraries(milvus_storage PUBLIC
    milvus_common
    milvus-storage
    pthread
    ${CONAN_LIBS}
    )

# install(TARGETS milvus_storage DESTINATION "${CMAKE_INSTALL_LIBDIR}")
