# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("sqlite") {
  public = [ "sqlite3.h" ]

  defines = [
    # Disable external linkage and let LTO do a more thorough job (and not
    # pollute the symbol space).
    "SQLITE_EXTERN=\"\"",

    # We don't need to load extensions dynamically ever.
    "SQLITE_OMIT_LOAD_EXTENSION=1",

    # The rest of these are the recommended options in
    # https://www.sqlite.org/compile.html. Side effects are listed.
    "SQLITE_DQS=0",
    "SQLITE_THREADSAFE=0",
    "SQLITE_DEFAULT_MEMSTATUS=0",
    "SQLITE_DEFAULT_WAL_SYNCHRONOUS=1",
    "SQLITE_LIKE_DOESNT_MATCH_BLOBS=1",
    "SQLITE_MAX_EXPR_DEPTH=0",
    "SQLITE_OMIT_DECLTYPE=1",
    "SQLITE_OMIT_DEPRECATED=1",
    "SQLITE_OMIT_PROGRESS_CALLBACK=1",
    "SQLITE_OMIT_SHARED_CACHE=1",
    "SQLITE_USE_ALLOCA=1",

    # This requires an `sqlite3_initialize()` explicitly.
    "SQLITE_OMIT_AUTOINIT=1",
  ]

  if (is_ios) {
    defines += [ "HAVE_GETHOSTUUID=0" ]
  }

  sources = [ "sqlite3.c" ]
}
