1111# BUILD_EXTENSION_TEST_DEPS : Can be set to either `default`, `full`, or `none`. Toggles which extension dependencies are built
1212# DEFAULT_TEST_EXTENSION_DEPS : `;`-separated list of extensions that are built in `default` and `full` mode
1313# FULL_TEST_EXTENSION_DEPS : `;`-separated list of extensions that are built in `full` mode
14+ # PROJ_DIR : The root path of the project
1415
1516.PHONY : all clean clean-python format debug release pull update wasm_mvp wasm_eh wasm_threads test test_release test_debug test_reldebug test_release_internal test_debug_internal test_reldebug_internal set_duckdb_version set_duckdb_tag output_distribution_matrix
1617
@@ -52,24 +53,6 @@ ifneq ($(CORE_EXTENSIONS),)
5253 CORE_EXTENSION_VAR:=-DCORE_EXTENSIONS="$(CORE_EXTENSIONS)"
5354endif
5455
55- # ### OSX config
56- OSX_BUILD_FLAG =
57- ifneq (${OSX_BUILD_ARCH}, "")
58- OSX_BUILD_FLAG=-DOSX_BUILD_ARCH=${OSX_BUILD_ARCH}
59- endif
60-
61- ifeq ("${OSX_BUILD_ARCH}", "arm64")
62- RUST_FLAGS=-DRust_CARGO_TARGET=aarch64-apple-darwin
63- else ifeq ("${OSX_BUILD_ARCH}", "x86_64")
64- RUST_FLAGS=-DRust_CARGO_TARGET=x86_64-apple-darwin
65- endif
66-
67- # ### Windows config
68- ifeq ($(DUCKDB_PLATFORM ) ,windows_amd64_mingw)
69- RUST_FLAGS=-DRust_CARGO_TARGET=x86_64-pc-windows-gnu
70- else ifeq ($(DUCKDB_PLATFORM),windows_amd64_rtools)
71- RUST_FLAGS=-DRust_CARGO_TARGET=x86_64-pc-windows-gnu
72- endif
7356
7457# ### VCPKG config
7558EXTENSION_CONFIG_STEP ?=
@@ -78,7 +61,14 @@ EXTENSION_CONFIG_STEP_WASM ?=
7861# Set the toolchain
7962VCPKG_TOOLCHAIN_PATH? =
8063ifneq ("${VCPKG_TOOLCHAIN_PATH}", "")
81- TOOLCHAIN_FLAGS:=${TOOLCHAIN_FLAGS} -DVCPKG_BUILD=1 -DCMAKE_TOOLCHAIN_FILE='${VCPKG_TOOLCHAIN_PATH}'
64+ TOOLCHAIN_FLAGS:=${TOOLCHAIN_FLAGS} -DVCPKG_MANIFEST_DIR='${PROJ_DIR}' -DVCPKG_BUILD=1 -DCMAKE_TOOLCHAIN_FILE='${VCPKG_TOOLCHAIN_PATH}'
65+ ifneq ("${DUCKDB_PLATFORM}", "")
66+ TOOLCHAIN_FLAGS:=${TOOLCHAIN_FLAGS} -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE='${PROJ_DIR}/extension-ci-tools/toolchains/${DUCKDB_PLATFORM}.cmake'
67+ endif
68+ else
69+ ifneq ("${DUCKDB_PLATFORM}", "")
70+ TOOLCHAIN_FLAGS:=${TOOLCHAIN_FLAGS} -DCMAKE_TOOLCHAIN_FILE='${PROJ_DIR}/extension-ci-tools/toolchains/${DUCKDB_PLATFORM}.cmake'
71+ endif
8272endif
8373
8474# Add the extension config step which ensures the vcpkg dependencies of all extensions get merged properly
9686ifneq ("${VCPKG_HOST_TRIPLET}", "")
9787 TOOLCHAIN_FLAGS:=${TOOLCHAIN_FLAGS} -DVCPKG_HOST_TRIPLET='${VCPKG_HOST_TRIPLET}'
9888endif
89+ TOOLCHAIN_FLAGS: =${TOOLCHAIN_FLAGS} -DVCPKG_HOST_TRIPLET='${VCPKG_HOST_TRIPLET}'
9990
10091# ### Enable Ninja as generator
10192ifeq ($(GEN ) ,ninja)
@@ -118,7 +109,7 @@ EXTENSION_STATIC_BUILD ?= 1
118109ENABLE_EXTENSION_AUTOLOADING ?= 0
119110ENABLE_EXTENSION_AUTOINSTALL ?= 0
120111
121- BUILD_FLAGS=-DEXTENSION_STATIC_BUILD =$(EXTENSION_STATIC_BUILD ) $(EXTENSION_FLAGS ) $(EXTENSION_CONFIG_FLAG ) ${EXT_FLAGS} $(CORE_EXTENSION_VAR ) $(OSX_BUILD_FLAG ) $(RUST_FLAGS ) $(TOOLCHAIN_FLAGS ) -DDUCKDB_EXPLICIT_PLATFORM='${DUCKDB_PLATFORM}' -DCUSTOM_LINKER=${CUSTOM_LINKER} -DOVERRIDE_GIT_DESCRIBE="${OVERRIDE_GIT_DESCRIBE}" -DUNITTEST_ROOT_DIRECTORY="$(PROJ_DIR ) " -DBENCHMARK_ROOT_DIRECTORY="$(PROJ_DIR ) " -DENABLE_UNITTEST_CPP_TESTS=FALSE -DENABLE_EXTENSION_AUTOLOADING=$(ENABLE_EXTENSION_AUTOLOADING ) -DENABLE_EXTENSION_AUTOINSTALL=$(ENABLE_EXTENSION_AUTOINSTALL )
112+ BUILD_FLAGS=-DEXTENSION_STATIC_BUILD =$(EXTENSION_STATIC_BUILD ) $(EXTENSION_FLAGS ) $(EXTENSION_CONFIG_FLAG ) ${EXT_FLAGS} $(CORE_EXTENSION_VAR ) $(OSX_BUILD_FLAG ) $(RUST_FLAGS ) $(TOOLCHAIN_FLAGS ) -DDUCKDB_EXPLICIT_PLATFORM='${DUCKDB_PLATFORM}' -DCUSTOM_LINKER=${CUSTOM_LINKER} -DOVERRIDE_GIT_DESCRIBE="${OVERRIDE_GIT_DESCRIBE}" -DUNITTEST_ROOT_DIRECTORY="$(PROJ_DIR ) " -DBENCHMARK_ROOT_DIRECTORY="$(PROJ_DIR ) " -DENABLE_UNITTEST_CPP_TESTS=FALSE -DENABLE_EXTENSION_AUTOLOADING=$(ENABLE_EXTENSION_AUTOLOADING ) -DENABLE_EXTENSION_AUTOINSTALL=$(ENABLE_EXTENSION_AUTOINSTALL ) -DDUCKDB_TOOLCHAINS='${TOOLCHAINS}'
122113
123114# ### Extra Flags
124115ifeq (${CRASH_ON_ASSERT}, 1)
@@ -218,17 +209,17 @@ wasm_pre_build_step:
218209# WASM targets
219210wasm_mvp : wasm_pre_build_step ${EXTENSION_CONFIG_STEP_WASM}
220211 mkdir -p build/wasm_mvp
221- emcmake cmake $(GENERATOR ) $(EXTENSION_CONFIG_FLAG ) $(VCPKG_MANIFEST_FLAGS ) $(WASM_COMPILE_TIME_COMMON_FLAGS ) $(BUILD_FLAGS ) -Bbuild/wasm_mvp -DCMAKE_CXX_FLAGS=" $( WASM_CXX_MVP_FLAGS) " -S $(DUCKDB_SRCDIR ) -DDUCKDB_EXPLICIT_PLATFORM=wasm_mvp -DDUCKDB_CUSTOM_PLATFORM=wasm_mvp
212+ emcmake cmake $(GENERATOR ) $(EXTENSION_CONFIG_FLAG ) $(VCPKG_MANIFEST_FLAGS ) $(BUILD_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
222213 emmake make -j8 -Cbuild/wasm_mvp
223214
224215wasm_eh : wasm_pre_build_step ${EXTENSION_CONFIG_STEP_WASM}
225216 mkdir -p build/wasm_eh
226- emcmake cmake $(GENERATOR ) $(EXTENSION_CONFIG_FLAG ) $(VCPKG_MANIFEST_FLAGS ) $(WASM_COMPILE_TIME_COMMON_FLAGS ) $(BUILD_FLAGS ) -Bbuild/wasm_eh -DCMAKE_CXX_FLAGS=" $( WASM_CXX_EH_FLAGS) " -S $(DUCKDB_SRCDIR ) -DDUCKDB_EXPLICIT_PLATFORM=wasm_eh -DDUCKDB_CUSTOM_PLATFORM=wasm_eh
217+ emcmake cmake $(GENERATOR ) $(EXTENSION_CONFIG_FLAG ) $(VCPKG_MANIFEST_FLAGS ) $(BUILD_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
227218 emmake make -j8 -Cbuild/wasm_eh
228219
229220wasm_threads : wasm_pre_build_step ${EXTENSION_CONFIG_STEP_WASM}
230221 mkdir -p ./build/wasm_threads
231- emcmake cmake $(GENERATOR ) $(EXTENSION_CONFIG_FLAG ) $(VCPKG_MANIFEST_FLAGS ) $(WASM_COMPILE_TIME_COMMON_FLAGS ) $(BUILD_FLAGS ) -Bbuild/wasm_threads -DCMAKE_CXX_FLAGS=" $( WASM_CXX_THREADS_FLAGS) " -S $(DUCKDB_SRCDIR ) -DDUCKDB_EXPLICIT_PLATFORM=wasm_threads -DDUCKDB_CUSTOM_PLATFORM=wasm_threads
222+ emcmake cmake $(GENERATOR ) $(EXTENSION_CONFIG_FLAG ) $(VCPKG_MANIFEST_FLAGS ) $(BUILD_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
232223 emmake make -j8 -Cbuild/wasm_threads
233224
234225
0 commit comments