|
1 |
| -.PHONY: all clean format debug release duckdb_debug duckdb_release pull update wasm_mvp wasm_eh wasm_threads |
2 |
| - |
3 |
| -all: release |
4 |
| - |
5 |
| -MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) |
6 |
| -PROJ_DIR := $(dir $(MKFILE_PATH)) |
7 |
| - |
8 |
| -TEST_PATH="/test/unittest" |
9 |
| -DUCKDB_PATH="/duckdb" |
10 |
| - |
11 |
| -DUCKDB_SRCDIR ?= "./duckdb/" |
12 |
| - |
13 |
| -# For non-MinGW windows the path is slightly different |
14 |
| -ifeq ($(OS),Windows_NT) |
15 |
| -ifneq ($(CXX),g++) |
16 |
| - TEST_PATH="/test/Release/unittest.exe" |
17 |
| - DUCKDB_PATH="/Release/duckdb.exe" |
18 |
| -endif |
19 |
| -endif |
20 |
| - |
21 |
| -#### OSX config |
22 |
| -OSX_BUILD_FLAG= |
23 |
| -ifneq (${OSX_BUILD_ARCH}, "") |
24 |
| - OSX_BUILD_FLAG=-DOSX_BUILD_ARCH=${OSX_BUILD_ARCH} |
25 |
| -endif |
26 |
| - |
27 |
| -#### VCPKG config |
28 |
| -VCPKG_TOOLCHAIN_PATH?= |
29 |
| -ifneq ("${VCPKG_TOOLCHAIN_PATH}", "") |
30 |
| - TOOLCHAIN_FLAGS:=${TOOLCHAIN_FLAGS} -DVCPKG_MANIFEST_DIR='${PROJ_DIR}' -DVCPKG_BUILD=1 -DCMAKE_TOOLCHAIN_FILE='${VCPKG_TOOLCHAIN_PATH}' |
31 |
| -endif |
32 |
| -ifneq ("${VCPKG_TARGET_TRIPLET}", "") |
33 |
| - TOOLCHAIN_FLAGS:=${TOOLCHAIN_FLAGS} -DVCPKG_TARGET_TRIPLET='${VCPKG_TARGET_TRIPLET}' |
34 |
| -endif |
35 |
| - |
36 |
| -#### Enable Ninja as generator |
37 |
| -ifeq ($(GEN),ninja) |
38 |
| - GENERATOR=-G "Ninja" -DFORCE_COLORED_OUTPUT=1 |
39 |
| -endif |
| 1 | +PROJ_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) |
40 | 2 |
|
| 3 | +# Configuration of extension |
41 | 4 | EXT_NAME=sqlite_scanner
|
| 5 | +EXT_CONFIG=${PROJ_DIR}extension_config.cmake |
42 | 6 |
|
43 |
| -#### Configuration for this extension |
44 |
| -EXTENSION_NAME=SQLITE_SCANNER |
45 |
| -EXTENSION_FLAGS=\ |
46 |
| --DDUCKDB_EXTENSION_NAMES="${EXT_NAME}" \ |
47 |
| --DDUCKDB_EXTENSION_${EXTENSION_NAME}_PATH="$(PROJ_DIR)" \ |
48 |
| --DDUCKDB_EXTENSION_${EXTENSION_NAME}_SHOULD_LINK=0 \ |
49 |
| --DDUCKDB_EXTENSION_${EXTENSION_NAME}_LOAD_TESTS=1 \ |
50 |
| --DDUCKDB_EXTENSION_${EXTENSION_NAME}_INCLUDE_PATH="$(PROJ_DIR)src/include" \ |
51 |
| --DDUCKDB_EXTENSION_${EXTENSION_NAME}_TEST_PATH=$(PROJ_DIR)test \ |
52 |
| - |
53 |
| -BUILD_FLAGS=-DEXTENSION_STATIC_BUILD=1 -DBUILD_EXTENSIONS="tpch" ${OSX_BUILD_FLAG} -DDUCKDB_EXPLICIT_PLATFORM='${DUCKDB_PLATFORM}' |
54 |
| - |
55 |
| -ifeq ($(DUCKDB_PLATFORM_RTOOLS),1) |
56 |
| - BUILD_FLAGS:=${BUILD_FLAGS} -DCMAKE_CXX_FLAGS="-DDUCKDB_PLATFORM_RTOOLS=1" |
57 |
| -endif |
| 7 | +# Include the Makefile from extension-ci-tools |
| 8 | +include extension-ci-tools/makefiles/duckdb_extension.Makefile |
58 | 9 |
|
59 |
| -CLIENT_FLAGS := |
60 |
| -pull: |
61 |
| - git submodule init |
62 |
| - git submodule update --recursive --remote |
63 |
| - |
64 |
| -clean: |
65 |
| - rm -rf build |
66 |
| - cd duckdb && make clean |
67 |
| - |
68 |
| -# Main build |
69 |
| -debug: |
70 |
| - mkdir -p build/debug && \ |
71 |
| - cmake $(GENERATOR) $(FORCE_COLOR) $(EXTENSION_FLAGS) ${CLIENT_FLAGS} -DEXTENSION_STATIC_BUILD=1 -DCMAKE_BUILD_TYPE=Debug ${BUILD_FLAGS} -S ./duckdb/ -B build/debug && \ |
72 |
| - cmake --build build/debug --config Debug |
73 |
| - |
74 |
| -release: |
75 |
| - mkdir -p build/release && \ |
76 |
| - cmake $(GENERATOR) $(FORCE_COLOR) $(EXTENSION_FLAGS) ${CLIENT_FLAGS} -DEXTENSION_STATIC_BUILD=1 -DCMAKE_BUILD_TYPE=Release ${BUILD_FLAGS} -S ./duckdb/ -B build/release && \ |
77 |
| - cmake --build build/release --config Release |
78 | 10 |
|
| 11 | +# Setup the sqlite3 tpch database |
79 | 12 | data/db/tpch.db: release
|
80 | 13 | command -v sqlite3 || (command -v brew && brew install sqlite) || (command -v choco && choco install sqlite -y) || (command -v apt-get && apt-get install -y sqlite3) || echo "no sqlite3"
|
81 | 14 | ./build/release/$(DUCKDB_PATH) < data/sql/tpch-export.duckdb || tree ./build/release || echo "neither tree not duck"
|
82 | 15 | sqlite3 data/db/tpch.db < data/sql/tpch-create.sqlite
|
83 | 16 |
|
84 |
| -# Main tests |
85 |
| -test: test_release |
86 |
| -test_release: release data/db/tpch.db |
| 17 | +# Override the test target implementations from the duckdb_extension.Makefile |
| 18 | +test_release_internal: data/db/tpch.db |
87 | 19 | SQLITE_TPCH_GENERATED=1 ./build/release/$(TEST_PATH) "$(PROJ_DIR)test/*"
|
88 |
| -test_debug: debug data/db/tpch.db |
89 |
| - SQLITE_TPCH_GENERATED=1 ./build/debug/$(TEST_PATH) "$(PROJ_DIR)test/*" |
90 |
| - |
91 |
| -format: |
92 |
| - cp duckdb/.clang-format . |
93 |
| - find src/ -iname *.hpp -o -iname *.cpp | xargs clang-format --sort-includes=0 -style=file -i |
94 |
| - cmake-format -i CMakeLists.txt |
95 |
| - rm .clang-format |
96 | 20 |
|
97 |
| -update: |
98 |
| - git submodule update --remote --merge |
99 |
| - |
100 |
| -VCPKG_EMSDK_FLAGS=-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=$(EMSDK)/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake |
101 |
| -WASM_COMPILE_TIME_COMMON_FLAGS=-DWASM_LOADABLE_EXTENSIONS=1 -DBUILD_EXTENSIONS_ONLY=1 -DSKIP_EXTENSIONS="parquet;json" $(VCPKG_EMSDK_FLAGS) |
102 |
| -WASM_CXX_MVP_FLAGS= |
103 |
| -WASM_CXX_EH_FLAGS=$(WASM_CXX_MVP_FLAGS) -fwasm-exceptions -DWEBDB_FAST_EXCEPTIONS=1 |
104 |
| -WASM_CXX_THREADS_FLAGS=$(WASM_COMPILE_TIME_EH_FLAGS) -DWITH_WASM_THREADS=1 -DWITH_WASM_SIMD=1 -DWITH_WASM_BULK_MEMORY=1 -pthread |
105 |
| -WASM_LINK_TIME_FLAGS=-O3 -sSIDE_MODULE=2 -sEXPORTED_FUNCTIONS="_${EXT_NAME}_version,_${EXT_NAME}_init" |
106 |
| - |
107 |
| -wasm_mvp: |
108 |
| - mkdir -p build/wasm_mvp |
109 |
| - emcmake cmake $(GENERATOR) $(EXTENSION_FLAGS) $(WASM_COMPILE_TIME_COMMON_FLAGS) -Bbuild/wasm_mvp -DCMAKE_CXX_FLAGS="$(WASM_CXX_MVP_FLAGS)" -S $(DUCKDB_SRCDIR) -DDUCKDB_EXPLICIT_PLATFORM=wasm_mvp -DDUCKDB_CUSTOM_PLATFORM=wasm_mvp |
110 |
| - emmake make -j8 -Cbuild/wasm_mvp |
111 |
| - |
112 |
| -wasm_eh: |
113 |
| - mkdir -p build/wasm_eh |
114 |
| - emcmake cmake $(GENERATOR) $(EXTENSION_FLAGS) $(WASM_COMPILE_TIME_COMMON_FLAGS) -Bbuild/wasm_eh -DCMAKE_CXX_FLAGS="$(WASM_CXX_EH_FLAGS)" -S $(DUCKDB_SRCDIR) -DDUCKDB_EXPLICIT_PLATFORM=wasm_eh -DDUCKDB_CUSTOM_PLATFORM=wasm_eh |
115 |
| - emmake make -j8 -Cbuild/wasm_eh |
| 21 | +test_debug_internal: data/db/tpch.db |
| 22 | + SQLITE_TPCH_GENERATED=1 ./build/debug/$(TEST_PATH) "$(PROJ_DIR)test/*" |
116 | 23 |
|
117 |
| -wasm_threads: |
118 |
| - mkdir -p ./build/wasm_threads |
119 |
| - emcmake cmake $(GENERATOR) $(EXTENSION_FLAGS) $(WASM_COMPILE_TIME_COMMON_FLAGS) -Bbuild/wasm_threads -DCMAKE_CXX_FLAGS="$(WASM_CXX_THREADS_FLAGS)" -S $(DUCKDB_SRCDIR) -DDUCKDB_EXPLICIT_PLATFORM=wasm_threads -DDUCKDB_CUSTOM_PLATFORM=wasm_threads |
120 |
| - emmake make -j8 -Cbuild/wasm_threads |
| 24 | +test_reldebug_internal: data/db/tpch.db |
| 25 | + SQLITE_TPCH_GENERATED=1 ./build/reldebug/$(TEST_PATH) "$(PROJ_DIR)test/*" |
0 commit comments