sqlite: Don't rename types / macros
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Generate sqlite3_namespace.h from sqlite3.c and sqlite3.h
|
||||
# Generate sqlite3_namespace.h from sqlite3.c
|
||||
#
|
||||
# This script extracts all public SQLite3 symbols and generates a header
|
||||
# that renames them with a heim_ prefix to avoid symbol conflicts.
|
||||
# This script extracts all public SQLite3 function and data symbols
|
||||
# (marked with SQLITE_API) and generates a header that renames them
|
||||
# with a heim_ prefix to avoid symbol conflicts.
|
||||
#
|
||||
# Usage: ./gen-sqlite3-namespace.sh [sqlite3.c] [sqlite3.h]
|
||||
# Usage: ./gen-sqlite3-namespace.sh [sqlite3.c]
|
||||
#
|
||||
# Run this script after importing a new version of SQLite3.
|
||||
|
||||
set -e
|
||||
|
||||
SQLITE3_C="${1:-sqlite3.c}"
|
||||
SQLITE3_H="${2:-sqlite3.h}"
|
||||
OUTPUT="sqlite3_namespace.h"
|
||||
|
||||
if [ ! -f "$SQLITE3_C" ]; then
|
||||
@@ -20,30 +20,16 @@ if [ ! -f "$SQLITE3_C" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$SQLITE3_H" ]; then
|
||||
echo "Error: $SQLITE3_H not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract symbols from SQLITE_API declarations in sqlite3.c
|
||||
# This catches functions and variables like sqlite3_open, sqlite3_version, etc.
|
||||
# This catches functions and data symbols like sqlite3_open, sqlite3_version, etc.
|
||||
# Also catches sqlite3session_*, sqlite3changegroup_*, sqlite3rbu_*, etc.
|
||||
grep '^SQLITE_API' "$SQLITE3_C" | grep -oE 'sqlite3[a-zA-Z0-9_]*' | sort -u > /tmp/sqlite_funcs.$$
|
||||
|
||||
# Extract type names from typedef declarations in sqlite3.h
|
||||
grep -E '^typedef' "$SQLITE3_H" | grep -oE 'sqlite3[a-zA-Z0-9_]*' | sort -u > /tmp/sqlite_types.$$
|
||||
|
||||
# Also get sqlite_int64 and sqlite_uint64
|
||||
grep -E '^typedef' "$SQLITE3_H" | grep -oE 'sqlite_[a-zA-Z0-9_]*' | sort -u >> /tmp/sqlite_types.$$
|
||||
|
||||
# Combine and deduplicate
|
||||
cat /tmp/sqlite_funcs.$$ /tmp/sqlite_types.$$ | sort -u > /tmp/all_symbols.$$
|
||||
grep '^SQLITE_API' "$SQLITE3_C" | grep -oE 'sqlite3[a-zA-Z0-9_]*' | sort -u > /tmp/sqlite_symbols.$$
|
||||
|
||||
# Clean up temp files on exit
|
||||
trap "rm -f /tmp/sqlite_funcs.$$ /tmp/sqlite_types.$$ /tmp/all_symbols.$$" EXIT
|
||||
trap "rm -f /tmp/sqlite_symbols.$$" EXIT
|
||||
|
||||
# Count symbols
|
||||
NUM_SYMBOLS=$(wc -l < /tmp/all_symbols.$$)
|
||||
NUM_SYMBOLS=$(wc -l < /tmp/sqlite_symbols.$$)
|
||||
echo "Found $NUM_SYMBOLS symbols to rename"
|
||||
|
||||
# Generate the header
|
||||
@@ -82,9 +68,9 @@ cat > "$OUTPUT" << 'HEADER_EOF'
|
||||
*/
|
||||
|
||||
/*
|
||||
* This header renames all public SQLite3 symbols to use a heim_ prefix
|
||||
* to avoid symbol conflicts when both libheimsqlite and libsqlite3 are
|
||||
* loaded in the same process.
|
||||
* This header renames all public SQLite3 function and data symbols to use
|
||||
* a heim_ prefix to avoid symbol conflicts when both libheimsqlite and
|
||||
* libsqlite3 are loaded in the same process.
|
||||
*
|
||||
* This file is auto-generated by gen-sqlite3-namespace.sh
|
||||
* Regenerate after importing a new SQLite version:
|
||||
@@ -100,7 +86,7 @@ HEADER_EOF
|
||||
# Generate the #define lines
|
||||
while read sym; do
|
||||
echo "#define $sym heim_$sym"
|
||||
done < /tmp/all_symbols.$$ >> "$OUTPUT"
|
||||
done < /tmp/sqlite_symbols.$$ >> "$OUTPUT"
|
||||
|
||||
cat >> "$OUTPUT" << 'FOOTER_EOF'
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* This header renames all public SQLite3 symbols to use a heim_ prefix
|
||||
* to avoid symbol conflicts when both libheimsqlite and libsqlite3 are
|
||||
* loaded in the same process.
|
||||
* This header renames all public SQLite3 function and data symbols to use
|
||||
* a heim_ prefix to avoid symbol conflicts when both libheimsqlite and
|
||||
* libsqlite3 are loaded in the same process.
|
||||
*
|
||||
* This file is auto-generated by gen-sqlite3-namespace.sh
|
||||
* Regenerate after importing a new SQLite version:
|
||||
@@ -49,7 +49,6 @@
|
||||
#define sqlite3_activate_cerod heim_sqlite3_activate_cerod
|
||||
#define sqlite3_aggregate_context heim_sqlite3_aggregate_context
|
||||
#define sqlite3_aggregate_count heim_sqlite3_aggregate_count
|
||||
#define sqlite3_api_routines heim_sqlite3_api_routines
|
||||
#define sqlite3_auto_extension heim_sqlite3_auto_extension
|
||||
#define sqlite3_backup heim_sqlite3_backup
|
||||
#define sqlite3_backup_finish heim_sqlite3_backup_finish
|
||||
@@ -82,7 +81,6 @@
|
||||
#define sqlite3_blob_write heim_sqlite3_blob_write
|
||||
#define sqlite3_busy_handler heim_sqlite3_busy_handler
|
||||
#define sqlite3_busy_timeout heim_sqlite3_busy_timeout
|
||||
#define sqlite3_callback heim_sqlite3_callback
|
||||
#define sqlite3_cancel_auto_extension heim_sqlite3_cancel_auto_extension
|
||||
#define sqlite3_changegroup heim_sqlite3_changegroup
|
||||
#define sqlite3changegroup_add heim_sqlite3changegroup_add
|
||||
@@ -172,7 +170,6 @@
|
||||
#define sqlite3_db_status heim_sqlite3_db_status
|
||||
#define sqlite3_declare_vtab heim_sqlite3_declare_vtab
|
||||
#define sqlite3_deserialize heim_sqlite3_deserialize
|
||||
#define sqlite3_destructor_type heim_sqlite3_destructor_type
|
||||
#define sqlite3_diskfull heim_sqlite3_diskfull
|
||||
#define sqlite3_diskfull_pending heim_sqlite3_diskfull_pending
|
||||
#define sqlite3_drop_modules heim_sqlite3_drop_modules
|
||||
@@ -221,7 +218,6 @@
|
||||
#define sqlite3_io_error_hit heim_sqlite3_io_error_hit
|
||||
#define sqlite3_io_error_pending heim_sqlite3_io_error_pending
|
||||
#define sqlite3_io_error_persist heim_sqlite3_io_error_persist
|
||||
#define sqlite3_io_methods heim_sqlite3_io_methods
|
||||
#define sqlite3IoTrace heim_sqlite3IoTrace
|
||||
#define sqlite3_json_init heim_sqlite3_json_init
|
||||
#define sqlite3_keyword_check heim_sqlite3_keyword_check
|
||||
@@ -238,11 +234,9 @@
|
||||
#define sqlite3_malloc64 heim_sqlite3_malloc64
|
||||
#define sqlite3_max_blobsize heim_sqlite3_max_blobsize
|
||||
#define sqlite3_memdebug_vfs_oom_test heim_sqlite3_memdebug_vfs_oom_test
|
||||
#define sqlite3_mem_methods heim_sqlite3_mem_methods
|
||||
#define sqlite3_memory_alarm heim_sqlite3_memory_alarm
|
||||
#define sqlite3_memory_highwater heim_sqlite3_memory_highwater
|
||||
#define sqlite3_memory_used heim_sqlite3_memory_used
|
||||
#define sqlite3_module heim_sqlite3_module
|
||||
#define sqlite3_mprintf heim_sqlite3_mprintf
|
||||
#define sqlite3_msize heim_sqlite3_msize
|
||||
#define sqlite3_mutex heim_sqlite3_mutex
|
||||
@@ -251,7 +245,6 @@
|
||||
#define sqlite3_mutex_free heim_sqlite3_mutex_free
|
||||
#define sqlite3_mutex_held heim_sqlite3_mutex_held
|
||||
#define sqlite3_mutex_leave heim_sqlite3_mutex_leave
|
||||
#define sqlite3_mutex_methods heim_sqlite3_mutex_methods
|
||||
#define sqlite3_mutex_notheld heim_sqlite3_mutex_notheld
|
||||
#define sqlite3_mutex_try heim_sqlite3_mutex_try
|
||||
#define sqlite3_next_stmt heim_sqlite3_next_stmt
|
||||
@@ -268,10 +261,6 @@
|
||||
#define sqlite3_pager_readdb_count heim_sqlite3_pager_readdb_count
|
||||
#define sqlite3_pager_writedb_count heim_sqlite3_pager_writedb_count
|
||||
#define sqlite3_pager_writej_count heim_sqlite3_pager_writej_count
|
||||
#define sqlite3_pcache heim_sqlite3_pcache
|
||||
#define sqlite3_pcache_methods heim_sqlite3_pcache_methods
|
||||
#define sqlite3_pcache_methods2 heim_sqlite3_pcache_methods2
|
||||
#define sqlite3_pcache_page heim_sqlite3_pcache_page
|
||||
#define sqlite3_prepare heim_sqlite3_prepare
|
||||
#define sqlite3_prepare16 heim_sqlite3_prepare16
|
||||
#define sqlite3_prepare16_v2 heim_sqlite3_prepare16_v2
|
||||
@@ -333,11 +322,9 @@
|
||||
#define sqlite3_result_zeroblob heim_sqlite3_result_zeroblob
|
||||
#define sqlite3_result_zeroblob64 heim_sqlite3_result_zeroblob64
|
||||
#define sqlite3_rollback_hook heim_sqlite3_rollback_hook
|
||||
#define sqlite3_rtree_geometry heim_sqlite3_rtree_geometry
|
||||
#define sqlite3_rtree_geometry_callback heim_sqlite3_rtree_geometry_callback
|
||||
#define sqlite3_rtree_init heim_sqlite3_rtree_init
|
||||
#define sqlite3_rtree_query_callback heim_sqlite3_rtree_query_callback
|
||||
#define sqlite3_rtree_query_info heim_sqlite3_rtree_query_info
|
||||
#define sqlite3_search_count heim_sqlite3_search_count
|
||||
#define sqlite3_serialize heim_sqlite3_serialize
|
||||
#define sqlite3_session heim_sqlite3_session
|
||||
@@ -399,7 +386,6 @@
|
||||
#define sqlite3_str_value heim_sqlite3_str_value
|
||||
#define sqlite3_str_vappendf heim_sqlite3_str_vappendf
|
||||
#define sqlite3_sync_count heim_sqlite3_sync_count
|
||||
#define sqlite3_syscall_ptr heim_sqlite3_syscall_ptr
|
||||
#define sqlite3_system_errno heim_sqlite3_system_errno
|
||||
#define sqlite3_table_column_metadata heim_sqlite3_table_column_metadata
|
||||
#define sqlite3_temp_directory heim_sqlite3_temp_directory
|
||||
@@ -446,10 +432,8 @@
|
||||
#define sqlite3_vfs_unregister heim_sqlite3_vfs_unregister
|
||||
#define sqlite3_vmprintf heim_sqlite3_vmprintf
|
||||
#define sqlite3_vsnprintf heim_sqlite3_vsnprintf
|
||||
#define sqlite3_vtab heim_sqlite3_vtab
|
||||
#define sqlite3_vtab_collation heim_sqlite3_vtab_collation
|
||||
#define sqlite3_vtab_config heim_sqlite3_vtab_config
|
||||
#define sqlite3_vtab_cursor heim_sqlite3_vtab_cursor
|
||||
#define sqlite3_vtab_nochange heim_sqlite3_vtab_nochange
|
||||
#define sqlite3_vtab_on_conflict heim_sqlite3_vtab_on_conflict
|
||||
#define sqlite3_wal_autocheckpoint heim_sqlite3_wal_autocheckpoint
|
||||
@@ -473,7 +457,5 @@
|
||||
#define sqlite3_wsd_find heim_sqlite3_wsd_find
|
||||
#define sqlite3_wsd_init heim_sqlite3_wsd_init
|
||||
#define sqlite3_xferopt_count heim_sqlite3_xferopt_count
|
||||
#define sqlite_int64 heim_sqlite_int64
|
||||
#define sqlite_uint64 heim_sqlite_uint64
|
||||
|
||||
#endif /* SQLITE3_NAMESPACE_H */
|
||||
|
||||
Reference in New Issue
Block a user