mirror of
https://github.com/status-im/nim-sqlcipher.git
synced 2025-02-19 20:48:20 +00:00
test: should build and test for SQLITE/SSL_STATIC default (=true) and =false
Refactor the Makefile as necessary.
This commit is contained in:
parent
c51d1705ed
commit
6f84b47de7
117
.github/workflows/test.yml
vendored
117
.github/workflows/test.yml
vendored
@ -56,7 +56,7 @@ jobs:
|
||||
"${M}" -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" V=1 update
|
||||
"${M}" -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" V=1 deps
|
||||
|
||||
- name: Generate the sqlite.nim wrapper for SQLCipher
|
||||
- name: Generate the sqlite.nim wrapper for SQLCipher (static)
|
||||
shell: bash
|
||||
run: |
|
||||
[[ ${{ matrix.platform }} = macos* ]] && \
|
||||
@ -73,7 +73,7 @@ jobs:
|
||||
V=1 \
|
||||
sqlite.nim
|
||||
|
||||
- name: Run tests
|
||||
- name: Run tests (static)
|
||||
shell: bash
|
||||
run: |
|
||||
[[ ${{ matrix.platform }} = macos* ]] && \
|
||||
@ -89,3 +89,116 @@ jobs:
|
||||
SSL_LIB_DIR="${SSL_LIB_DIR}" \
|
||||
V=1 \
|
||||
test
|
||||
|
||||
- name: Generate the sqlite.nim wrapper for SQLCipher (shared)
|
||||
shell: bash
|
||||
run: |
|
||||
rm -rf nimcache sqlcipher sqlite test/build
|
||||
[[ ${{ matrix.platform }} = macos* ]] && \
|
||||
SSL_INCLUDE_DIR=/usr/local/opt/openssl@1.1/include && \
|
||||
SSL_LIB_DIR=/usr/local/opt/openssl@1.1/lib
|
||||
[[ ${{ matrix.platform }} = windows* ]] && \
|
||||
export PATH="${PATH}:${HOME}/scoop/shims" && \
|
||||
SSL_INCLUDE_DIR="${HOME}/scoop/apps/openssl-mingw/current/include" && \
|
||||
SSL_LIB_DIR="${HOME}/scoop/apps/openssl-mingw/current/lib"
|
||||
export M="$(which mingw32-make || echo make)"
|
||||
"${M}" -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" \
|
||||
SQLITE_STATIC=false \
|
||||
SSL_INCLUDE_DIR="${SSL_INCLUDE_DIR}" \
|
||||
SSL_LIB_DIR="${SSL_LIB_DIR}" \
|
||||
SSL_STATIC=false \
|
||||
V=1 \
|
||||
sqlite.nim
|
||||
|
||||
- name: Run tests (shared)
|
||||
shell: bash
|
||||
run: |
|
||||
[[ ${{ matrix.platform }} = macos* ]] && \
|
||||
SSL_INCLUDE_DIR=/usr/local/opt/openssl@1.1/include && \
|
||||
SSL_LIB_DIR=/usr/local/opt/openssl@1.1/lib
|
||||
[[ ${{ matrix.platform }} = windows* ]] && \
|
||||
export PATH="${PATH}:${HOME}/scoop/shims" && \
|
||||
SSL_INCLUDE_DIR="${HOME}/scoop/apps/openssl-mingw/current/include" && \
|
||||
SSL_LIB_DIR="${HOME}/scoop/apps/openssl-mingw/current/lib"
|
||||
export M="$(which mingw32-make || echo make)"
|
||||
"${M}" -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" \
|
||||
SQLITE_STATIC=false \
|
||||
SSL_INCLUDE_DIR="${SSL_INCLUDE_DIR}" \
|
||||
SSL_LIB_DIR="${SSL_LIB_DIR}" \
|
||||
SSL_STATIC=false \
|
||||
V=1 \
|
||||
test
|
||||
|
||||
- name: "Generate the sqlite.nim wrapper for SQLCipher (mixed: shared SQLITE)"
|
||||
shell: bash
|
||||
run: |
|
||||
rm -rf nimcache sqlcipher sqlite test/build
|
||||
[[ ${{ matrix.platform }} = macos* ]] && \
|
||||
SSL_INCLUDE_DIR=/usr/local/opt/openssl@1.1/include && \
|
||||
SSL_LIB_DIR=/usr/local/opt/openssl@1.1/lib
|
||||
[[ ${{ matrix.platform }} = windows* ]] && \
|
||||
export PATH="${PATH}:${HOME}/scoop/shims" && \
|
||||
SSL_INCLUDE_DIR="${HOME}/scoop/apps/openssl-mingw/current/include" && \
|
||||
SSL_LIB_DIR="${HOME}/scoop/apps/openssl-mingw/current/lib"
|
||||
export M="$(which mingw32-make || echo make)"
|
||||
"${M}" -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" \
|
||||
SQLITE_STATIC=false \
|
||||
SSL_INCLUDE_DIR="${SSL_INCLUDE_DIR}" \
|
||||
SSL_LIB_DIR="${SSL_LIB_DIR}" \
|
||||
V=1 \
|
||||
sqlite.nim
|
||||
|
||||
- name: "Run tests (mixed: shared SQLITE)"
|
||||
shell: bash
|
||||
run: |
|
||||
[[ ${{ matrix.platform }} = macos* ]] && \
|
||||
SSL_INCLUDE_DIR=/usr/local/opt/openssl@1.1/include && \
|
||||
SSL_LIB_DIR=/usr/local/opt/openssl@1.1/lib
|
||||
[[ ${{ matrix.platform }} = windows* ]] && \
|
||||
export PATH="${PATH}:${HOME}/scoop/shims" && \
|
||||
SSL_INCLUDE_DIR="${HOME}/scoop/apps/openssl-mingw/current/include" && \
|
||||
SSL_LIB_DIR="${HOME}/scoop/apps/openssl-mingw/current/lib"
|
||||
export M="$(which mingw32-make || echo make)"
|
||||
"${M}" -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" \
|
||||
SQLITE_STATIC=false \
|
||||
SSL_INCLUDE_DIR="${SSL_INCLUDE_DIR}" \
|
||||
SSL_LIB_DIR="${SSL_LIB_DIR}" \
|
||||
V=1 \
|
||||
test
|
||||
|
||||
- name: "Generate the sqlite.nim wrapper for SQLCipher (mixed: shared SSL)"
|
||||
shell: bash
|
||||
run: |
|
||||
rm -rf nimcache sqlcipher sqlite test/build
|
||||
[[ ${{ matrix.platform }} = macos* ]] && \
|
||||
SSL_INCLUDE_DIR=/usr/local/opt/openssl@1.1/include && \
|
||||
SSL_LIB_DIR=/usr/local/opt/openssl@1.1/lib
|
||||
[[ ${{ matrix.platform }} = windows* ]] && \
|
||||
export PATH="${PATH}:${HOME}/scoop/shims" && \
|
||||
SSL_INCLUDE_DIR="${HOME}/scoop/apps/openssl-mingw/current/include" && \
|
||||
SSL_LIB_DIR="${HOME}/scoop/apps/openssl-mingw/current/lib"
|
||||
export M="$(which mingw32-make || echo make)"
|
||||
"${M}" -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" \
|
||||
SSL_INCLUDE_DIR="${SSL_INCLUDE_DIR}" \
|
||||
SSL_LIB_DIR="${SSL_LIB_DIR}" \
|
||||
SSL_STATIC=false \
|
||||
V=1 \
|
||||
sqlite.nim
|
||||
|
||||
- name: "Run tests (mixed: shared SSL)"
|
||||
shell: bash
|
||||
run: |
|
||||
[[ ${{ matrix.platform }} = macos* ]] && \
|
||||
SSL_INCLUDE_DIR=/usr/local/opt/openssl@1.1/include && \
|
||||
SSL_LIB_DIR=/usr/local/opt/openssl@1.1/lib
|
||||
[[ ${{ matrix.platform }} = windows* ]] && \
|
||||
export PATH="${PATH}:${HOME}/scoop/shims" && \
|
||||
SSL_INCLUDE_DIR="${HOME}/scoop/apps/openssl-mingw/current/include" && \
|
||||
SSL_LIB_DIR="${HOME}/scoop/apps/openssl-mingw/current/lib"
|
||||
export M="$(which mingw32-make || echo make)"
|
||||
"${M}" -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" \
|
||||
SSL_INCLUDE_DIR="${SSL_INCLUDE_DIR}" \
|
||||
SSL_LIB_DIR="${SSL_LIB_DIR}" \
|
||||
SSL_STATIC=false \
|
||||
V=1 \
|
||||
test
|
||||
|
46
Makefile
46
Makefile
@ -70,8 +70,10 @@ update: | update-common
|
||||
SQLITE_CDEFS ?= -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=3
|
||||
SQLITE_CFLAGS ?= -pthread
|
||||
ifndef SQLITE_LDFLAGS
|
||||
ifneq ($(detected_OS),macOS)
|
||||
SQLITE_LDFLAGS := -pthread
|
||||
ifeq ($(detected_OS),Windows)
|
||||
SQLITE_LDFLAGS := -lwinpthread
|
||||
else
|
||||
SQLITE_LDFLAGS := -lpthread
|
||||
endif
|
||||
endif
|
||||
SQLITE_STATIC ?= true
|
||||
@ -99,7 +101,7 @@ ifndef SSL_LDFLAGS
|
||||
endif
|
||||
|
||||
SQLITE3_C ?= sqlite/sqlite3.c
|
||||
SQLITE3_H ?= $(CURDIR)/sqlite/sqlite3.h
|
||||
SQLITE3_H ?= $(shell pwd)/sqlite/sqlite3.h
|
||||
|
||||
$(SQLITE3_C): | deps
|
||||
ifeq ($(detected_OS),Windows)
|
||||
@ -125,7 +127,7 @@ endif
|
||||
|
||||
sqlite3.c: $(SQLITE3_C)
|
||||
|
||||
SQLITE_STATIC_LIB ?= $(CURDIR)/sqlite/sqlite3.a
|
||||
SQLITE_STATIC_LIB ?= $(shell pwd)/sqlite/sqlite3.a
|
||||
|
||||
$(SQLITE_STATIC_LIB): $(SQLITE3_C)
|
||||
echo -e $(BUILD_MSG) "SQLCipher static library"
|
||||
@ -148,27 +150,31 @@ ifndef SHARED_LIB_EXT
|
||||
endif
|
||||
endif
|
||||
|
||||
SQLITE_SHARED_LIB ?= $(CURDIR)/sqlite/libsqlite3.$(SHARED_LIB_EXT)
|
||||
SQLITE_SHARED_LIB ?= $(shell pwd)/sqlite/libsqlite3.$(SHARED_LIB_EXT)
|
||||
|
||||
ifndef PLATFORM_LINKER_FLAGS
|
||||
ifndef PLATFORM_FLAGS
|
||||
ifeq ($(detected_OS),macOS)
|
||||
PLATFORM_LINKER_FLAGS := -dylib
|
||||
ifeq ($(SSL_STATIC),false)
|
||||
PLATFORM_FLAGS := -shared -dylib -undefined dynamic_lookup
|
||||
else
|
||||
PLATFORM_FLAGS := -shared -dylib -undefined dynamic_lookup $(SSL_LDFLAGS)
|
||||
endif
|
||||
else ifeq ($(detected_OS),Windows)
|
||||
PLATFORM_FLAGS := -shared $(SSL_LDFLAGS)
|
||||
else
|
||||
PLATFORM_FLAGS := -shared -fPIC
|
||||
endif
|
||||
endif
|
||||
|
||||
$(SQLITE_SHARED_LIB): $(SQLITE3_C)
|
||||
echo -e $(BUILD_MSG) "SQLCipher shared library"
|
||||
+ $(ENV_SCRIPT) $(CC) \
|
||||
-c -fPIC \
|
||||
sqlite/sqlite3.c \
|
||||
$(SQLITE_CDEFS) \
|
||||
$(SQLITE_CFLAGS) \
|
||||
$(SSL_CFLAGS) \
|
||||
-o sqlite/sqlite3.o $(HANDLE_OUTPUT)
|
||||
$(ENV_SCRIPT) ld \
|
||||
$(PLATFORM_LINKER_FLAGS) \
|
||||
-undefined dynamic_lookup \
|
||||
sqlite/sqlite3.o \
|
||||
sqlite/sqlite3.c \
|
||||
$(SQLITE_LDFLAGS) \
|
||||
$(PLATFORM_FLAGS) \
|
||||
-o $(SQLITE_SHARED_LIB) $(HANDLE_OUTPUT)
|
||||
|
||||
ifndef SQLITE_LIB
|
||||
@ -206,7 +212,7 @@ SQLITE_NIM ?= sqlcipher/sqlite.nim
|
||||
$(SQLITE_NIM): $(NIMTEROP_TOAST) $(SQLITE_LIB)
|
||||
echo -e $(BUILD_MSG) "Nim wrapper for SQLCipher"
|
||||
+ mkdir -p sqlcipher
|
||||
SQLITE_CDEFS="$(SQLITE_CDEFS)"\
|
||||
SQLITE_CDEFS="$(SQLITE_CDEFS)" \
|
||||
SQLITE_STATIC="$(SQLITE_STATIC)" \
|
||||
SQLITE3_H="$(SQLITE3_H)" \
|
||||
SQLITE_LIB="$(SQLITE_LIB)" \
|
||||
@ -219,7 +225,17 @@ $(SQLITE_NIM): $(NIMTEROP_TOAST) $(SQLITE_LIB)
|
||||
sqlite.nim: $(SQLITE_NIM)
|
||||
|
||||
test: $(SQLITE_NIM)
|
||||
ifeq ($(detected_OS),macOS)
|
||||
SSL_LDFLAGS="$(SSL_LDFLAGS)" \
|
||||
$(ENV_SCRIPT) nimble tests
|
||||
else ifeq ($(detected_OS),Windows)
|
||||
PATH="$(shell dirname $(SQLITE_SHARED_LIB)):$${PATH}" \
|
||||
SSL_LDFLAGS="$(SSL_LDFLAGS)" \
|
||||
$(ENV_SCRIPT) nimble tests
|
||||
else
|
||||
LD_LIBRARY_PATH="$(shell pwd)/sqlite$${LD_LIBRARY_PATH:+:$${LD_LIBRARY_PATH}}" \
|
||||
SSL_LDFLAGS="$(SSL_LDFLAGS)" \
|
||||
$(ENV_SCRIPT) nimble tests
|
||||
endif
|
||||
|
||||
endif # "variables.mk" was not included
|
||||
|
Loading…
x
Reference in New Issue
Block a user