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

# Ripped and modded from chrome.

Import('env')

env = env.Clone(
)

env.Replace(
    SQLITE_DIR = '$THIRD_PARTY_DIR/sqlite_google',
    CPPPATH = [
# from Chrome
#        '$ICU38_DIR/public/common',
#        '$ICU38_DIR/public/i18n',

	'$SQLITE_DIR/src',
	'$SQLITE_DIR/preprocessed',
        '$VC80_CPPPATH',
    ],
)

env.Append(
# from Chrome
#    CPPDEFINES = [
#        'U_STATIC_IMPLEMENTATION',
#        'SQLITE_ENABLE_FTS2',
#        'SQLITE_ENABLE_BROKEN_FTS2',
#        'SQLITE_ENABLE_ICU',
#        'SQLITE_SECURE_DELETE',
#        'THREADSAFE',
#        ['_HAS_EXCEPTIONS', '0'],
#    ],

    CPPDEFINES = [
        'SQLITE_CORE',
        'SQLITE_ENABLE_FTS1',
        'SQLITE_ENABLE_BROKEN_FTS1',
        'SQLITE_ENABLE_FTS2',
        'SQLITE_ENABLE_BROKEN_FTS2',
        'THREADSAFE=1',
        'SQLITE_DEFAULT_FILE_PERMISSIONS=0600',
        'SQLITE_OMIT_LOAD_EXTENSION=1',
        'SQLITE_TRANSACTION_DEFAULT_IMMEDIATE=1',
        'SQLITE_GEARS_DISABLE_SHELL_ICU',
    ],
)

if env['OS'] in ['win32', 'wince']:
  env.Append(
      CPPFLAGS = [
          # from Chrome
          '/TC',
          '/wd4800',
          '/wd4244',

          # from Gears
          '/wd4018',
          '/wd4146',
      ],
  )
  env.Append(CPPFLAGS = ['/wd4146'])
elif env['OS'] == 'linux':
  env.Append(
      CPPFLAGS = [
          '-Wno-uninitialized',
          '-Wno-unused-value',
      ],
      CPPDEFINES = [
          'HAVE_USLEEP=1',
      ],
  )
elif env['OS'] == 'osx':
  env.Append(
      CCFLAGS = [
          '-Wno-uninitialized',
          '-Wno-pointer-sign',
      ],
      CPPDEFINES = [
          'HAVE_USLEEP=1',
      ],
  )

input_files = [
    '$SQLITE_DIR/src/alter.c',
    '$SQLITE_DIR/src/analyze.c',
    '$SQLITE_DIR/src/attach.c',
    '$SQLITE_DIR/src/auth.c',
    '$SQLITE_DIR/src/bitvec.c',
    '$SQLITE_DIR/src/btree.c',
    '$SQLITE_DIR/src/btmutex.c',
    '$SQLITE_DIR/src/build.c',
    '$SQLITE_DIR/src/callback.c',
    '$SQLITE_DIR/src/complete.c',
    '$SQLITE_DIR/src/date.c',
    '$SQLITE_DIR/src/delete.c',
    '$SQLITE_DIR/src/expr.c',
    '$SQLITE_DIR/src/fault.c',
    '$SQLITE_DIR/src/global.c',
    '$SQLITE_DIR/src/journal.c',
    '$SQLITE_DIR/ext/fts1/fts1.c',
    '$SQLITE_DIR/ext/fts1/fts1_hash.c',
#    '$SQLITE_DIR/ext/fts1/fts1_icu.c',
    '$SQLITE_DIR/ext/fts1/fts1_porter.c',
#    '$SQLITE_DIR/ext/fts1/fts1_tokenizer.c',
    '$SQLITE_DIR/ext/fts1/fts1_tokenizer1.c',
    '$SQLITE_DIR/ext/fts2/fts2.c',
    '$SQLITE_DIR/ext/fts2/fts2_hash.c',
#    '$SQLITE_DIR/ext/fts2/fts2_icu.c',
    '$SQLITE_DIR/ext/fts2/fts2_porter.c',
    '$SQLITE_DIR/ext/fts2/fts2_tokenizer.c',
    '$SQLITE_DIR/ext/fts2/fts2_tokenizer1.c',
    '$SQLITE_DIR/src/func.c',
    '$SQLITE_DIR/src/hash.c',
    '$SQLITE_DIR/src/insert.c',
    '$SQLITE_DIR/src/legacy.c',
    '$SQLITE_DIR/src/loadext.c',
    '$SQLITE_DIR/src/main.c',
    '$SQLITE_DIR/src/malloc.c',
    '$SQLITE_DIR/src/mem1.c',
    '$SQLITE_DIR/src/mem2.c',
    '$SQLITE_DIR/src/mem3.c',
    '$SQLITE_DIR/src/mem4.c',
    '$SQLITE_DIR/src/mem5.c',
    '$SQLITE_DIR/src/mem6.c',
    '$SQLITE_DIR/src/sqlite_mutex.c',
    '$SQLITE_DIR/src/mutex_os2.c',
    '$SQLITE_DIR/src/mutex_unix.c',
    '$SQLITE_DIR/src/mutex_w32.c',
    '$SQLITE_DIR/preprocessed/opcodes.c',
    '$SQLITE_DIR/src/os.c',
    '$SQLITE_DIR/src/os_os2.c',
    '$SQLITE_DIR/src/os_unix.c',
    '$SQLITE_DIR/src/os_win.c',
    '$SQLITE_DIR/src/pager.c',
    '$SQLITE_DIR/preprocessed/parse.c',
    '$SQLITE_DIR/src/pragma.c',
    '$SQLITE_DIR/src/prepare.c',
    '$SQLITE_DIR/src/printf.c',
    '$SQLITE_DIR/src/random.c',
    '$SQLITE_DIR/src/select.c',
    '$SQLITE_DIR/src/status.c',
#    '$SQLITE_DIR/src/shell.c',
    '$SQLITE_DIR/src/table.c',
    '$SQLITE_DIR/src/tokenize.c',
    '$SQLITE_DIR/src/trigger.c',
    '$SQLITE_DIR/src/update.c',
    '$SQLITE_DIR/src/utf.c',
    '$SQLITE_DIR/src/util.c',
    '$SQLITE_DIR/src/vacuum.c',
    '$SQLITE_DIR/src/vdbe.c',
    '$SQLITE_DIR/src/vdbeapi.c',
    '$SQLITE_DIR/src/vdbeaux.c',
    '$SQLITE_DIR/src/vdbeblob.c',
    '$SQLITE_DIR/src/vdbefifo.c',
    '$SQLITE_DIR/src/vdbemem.c',
    '$SQLITE_DIR/src/vtab.c',
    '$SQLITE_DIR/src/where.c',
]

if env['OS'] == 'symbian':
  input_files += ['os_symbian.cc']

env.GearsStaticLibrary('sqlite-gears', input_files)
