1 /* sqlite3wrapper.c 2 * 3 * ==================================================================== 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 * ==================================================================== 21 */ 22 23 #include "svn_private_config.h" 24 25 /* Include sqlite3 inline, making all symbols private. */ 26 #ifdef SVN_SQLITE_INLINE 27 # define SQLITE_OMIT_DEPRECATED 1 28 # define SQLITE_DEFAULT_MEMSTATUS 0 29 # define SQLITE_OMIT_WAL 1 30 # define SQLITE_API static 31 # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2) 32 # pragma GCC diagnostic ignored "-Wunreachable-code" 33 # pragma GCC diagnostic ignored "-Wunused-function" 34 # pragma GCC diagnostic ignored "-Wcast-qual" 35 # pragma GCC diagnostic ignored "-Wunused" 36 # pragma GCC diagnostic ignored "-Wshadow" 37 # if defined(__APPLE_CC__) || defined(__clang__) 38 # pragma GCC diagnostic ignored "-Wshorten-64-to-32" 39 # endif 40 # if defined(__clang__) 41 # pragma clang diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers" 42 # pragma clang diagnostic ignored "-Wmissing-variable-declarations" 43 # endif 44 # endif 45 # ifdef __APPLE__ 46 /* SQLite uses OSAtomicCompareAndSwapPtrBarrier from libkern/OSAtomic.h, 47 which has been deprecated since macOS 10.12. This will silence the 48 warning. */ 49 # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2) 50 # pragma GCC diagnostic ignored "-Wdeprecated-declarations" 51 # endif 52 # include <Availability.h> 53 # if __MAC_OS_X_VERSION_MIN_REQUIRED < 1060 54 /* <libkern/OSAtomic.h> is included on OS X by sqlite3.c, and 55 on old systems (Leopard or older), it cannot be compiled 56 with -std=c89 because it uses inline. This is a work-around. */ 57 # define inline __inline__ 58 # include <libkern/OSAtomic.h> 59 # undef inline 60 # endif 61 # endif 62 # define SQLITE_DEFAULT_FILE_PERMISSIONS 0666 63 # include <sqlite3.c> 64 65 /* Expose the sqlite API vtable and the two missing functions */ 66 const sqlite3_api_routines *const svn_sqlite3__api_funcs = &sqlite3Apis; 67 int (*const svn_sqlite3__api_initialize)(void) = sqlite3_initialize; 68 int (*const svn_sqlite3__api_config)(int, ...) = sqlite3_config; 69 70 #else /* !SVN_SQLITE_INLINE */ 71 72 /* Silence OSX ranlib warnings about object files with no symbols. */ 73 #include <apr.h> 74 extern const apr_uint32_t svn__fake__sqlite3wrapper; 75 const apr_uint32_t svn__fake__sqlite3wrapper = 0xdeadbeef; 76 77 #endif /* SVN_SQLITE_INLINE */ 78