# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

with Files("**"):
    BUG_COMPONENT = ("Core", "Networking: Cache")

XPIDL_SOURCES += [
    "nsICacheEntry.idl",
    "nsICacheEntryDoomCallback.idl",
    "nsICacheEntryOpenCallback.idl",
    "nsICachePurgeLock.idl",
    "nsICacheStorage.idl",
    "nsICacheStorageService.idl",
    "nsICacheStorageVisitor.idl",
    "nsICacheTesting.idl",
]

XPIDL_MODULE = "necko_cache2"

EXPORTS += [
    "CacheObserver.h",
    "CacheStorageService.h",
]

EXPORTS.mozilla.net += [
    "CachePurgeLock.h",
    "Dictionary.h",
]

SOURCES += [
    # Not unified: pulls in NSS headers (pk11pub.h) that can clash in a unified
    # build.
    "CacheCrypto.cpp",
    "CacheStorage.cpp",
]


UNIFIED_SOURCES += [
    "CacheEntry.cpp",
    "CacheFile.cpp",
    "CacheFileChunk.cpp",
    "CacheFileContextEvictor.cpp",
    "CacheFileInputStream.cpp",
    "CacheFileIOManager.cpp",
    "CacheFileMetadata.cpp",
    "CacheFileOutputStream.cpp",
    "CacheFileUtils.cpp",
    "CacheHashUtils.cpp",
    "CacheIndex.cpp",
    "CacheIndexContextIterator.cpp",
    "CacheIndexIterator.cpp",
    "CacheIOThread.cpp",
    "CacheLog.cpp",
    "CacheObserver.cpp",
    "CacheStorageService.cpp",
    "Dictionary.cpp",
]

if CONFIG["MOZ_WIDGET_TOOLKIT"] != "android":
    UNIFIED_SOURCES += [
        "CachePurgeLock.cpp",
    ]

LOCAL_INCLUDES += [
    "/netwerk/base",
]

include("/ipc/chromium/chromium-config.mozbuild")

FINAL_LIBRARY = "xul"
