current commit
260907.5 · build: allow linking shared dependencies in the GN build
# This file is used by GN for building, which is NOT the build system used for
# building official binaries.
# Please edit the gyp files if you are making changes to build system.

# The actual configurations are put inside a template in unofficial.gni to
# prevent accidental edits from contributors.
import("../../node.gni")

template("sqlite_gn_build") {
  if (node_shared_sqlite) {
    import("//build/config/linux/pkg_config.gni")
    pkg_config("sqlite_config") {
      packages = [ "sqlite3" ]
    }
    # sqlite3.h only declares the session extension when this is defined.
    config("sqlite_defines") {
      defines = [ "SQLITE_ENABLE_SESSION" ]
    }
    group(target_name) {
      forward_variables_from(invoker, "*")
      public_configs = [
        ":sqlite_config",
        ":sqlite_defines",
      ]
    }
  } else {
    config("sqlite_config") {
      include_dirs = [ "." ]
      defines = [
        "SQLITE_ENABLE_COLUMN_METADATA",
        "SQLITE_ENABLE_DBSTAT_VTAB",
        "SQLITE_ENABLE_FTS3",
        "SQLITE_ENABLE_FTS3_PARENTHESIS",
        "SQLITE_ENABLE_FTS5",
        "SQLITE_ENABLE_GEOPOLY",
        "SQLITE_ENABLE_MATH_FUNCTIONS",
        "SQLITE_ENABLE_PERCENTILE",
        "SQLITE_ENABLE_PREUPDATE_HOOK",
        "SQLITE_ENABLE_RBU",
        "SQLITE_ENABLE_RTREE",
        "SQLITE_ENABLE_SESSION",
      ]
    }

    gypi_values = exec_script("../../tools/gypi_to_gn.py",
                              [ rebase_path("sqlite.gyp") ],
                              "scope",
                              [ "sqlite.gyp" ])

    source_set(target_name) {
      forward_variables_from(invoker, "*")
      public_configs = [ ":sqlite_config" ]
      sources = gypi_values.sqlite_sources
      cflags_c = [
        "-Wno-implicit-fallthrough",
        "-Wno-unreachable-code-return",
        "-Wno-unreachable-code-break",
        "-Wno-unreachable-code",
      ]
      if (is_win) {
        cflags_c += [
          "-Wno-sign-compare",
          "-Wno-unused-but-set-variable",
          "-Wno-unused-function",
          "-Wno-unused-variable",
        ]
      }
    }
  }
}