conda-forge / sqlite-feedstock

A conda-smithy repository for sqlite.
BSD 3-Clause "New" or "Revised" License
2 stars 40 forks source link

C functions missing from the library under Windows w.s.t. Linux (moved to Anaconda sqlite-feedstock) #51

Closed LeslieGerman closed 4 years ago

LeslieGerman commented 4 years ago

Hello,

Lots of functions are missing from the created library under Windows, which causes (may cause) dependent packages to break under Windows. (E.g. QT. See the issue I encountered there.)

Actually my issue was that the SQLITE_ENABLE_COLUMN_METADATA macro was needed for the sqlite3_column_table_name16(..) function to be included, however that macro is not set to 1 and not passed to the compiler under Windows.

On Linux the build.sh passes a banch of such SQLITE_ENABLE... macros:

export CPPFLAGS="${CPPFLAGS} -DSQLITE_ENABLE_COLUMN_METADATA=1 \
                             -DSQLITE_ENABLE_UNLOCK_NOTIFY \
                             -DSQLITE_ENABLE_DBSTAT_VTAB=1 \
                             -DSQLITE_ENABLE_FTS3_TOKENIZER=1 \
                             -DSQLITE_SECURE_DELETE \
                             -DSQLITE_MAX_VARIABLE_NUMBER=250000 \
                             -DSQLITE_MAX_EXPR_DEPTH=10000"

However bld.bat completely misses them:

:: build the dll
cl sqlite3.c -link -dll -out:sqlite3.dll

I suggest to keep them in sync, and fix bld.bat to pass these macros, too.

LeslieGerman commented 4 years ago

Sorry I accidentally opened the issue here, instead of the Anaconda feedstock so I moved my issue there and close this one.