11cmake_minimum_required (VERSION 3.5)
22
3- set (CORROSION_VERBOSE_OUTPUT ON )
4- set (CMAKE_CXX_STANDARD 11)
3+ set (CMAKE_CXX_STANDARD 14)
54set (CMAKE_CXX_STANDARD_REQUIRED 1)
65
7- execute_process (
8- COMMAND rustup target list --installed
9- OUTPUT_VARIABLE RUST_TARGETS
10- )
11- # Propagate arch to rust build for CI
12- set (Rust_CARGO_TARGET "" )
13- if ("${OS_NAME} " STREQUAL "linux" )
14- if ("${OS_ARCH} " STREQUAL "arm64" )
15- set (Rust_CARGO_TARGET "aarch64-unknown-linux-gnu" )
16- elseif ("${CMAKE_CXX_COMPILER} " MATCHES "aarch64" )
17- set (Rust_CARGO_TARGET ${RUST_ENV_VARS} CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc)
18- set (Rust_CARGO_TARGET "aarch64-unknown-linux-gnu" )
19- else ()
20- string (FIND "${RUST_TARGETS} " "musl" MUSL_TARGET_FOUND)
21- if (NOT MUSL_TARGET_FOUND EQUAL -1)
22- set (Rust_CARGO_TARGET "x86_64-unknown-linux-musl" )
23- else ()
24- set (Rust_CARGO_TARGET "x86_64-unknown-linux-gnu" )
25- endif ()
26- endif ()
27- elseif ("${OS_NAME} " STREQUAL "osx" )
28- if ("${OSX_BUILD_ARCH} " STREQUAL "arm64" )
29- set (Rust_CARGO_TARGET "aarch64-apple-darwin" )
30- elseif ("${OSX_BUILD_ARCH} " STREQUAL "x86_64" )
31- set (Rust_CARGO_TARGET "x86_64-apple-darwin" )
32- elseif ("${OS_ARCH} " STREQUAL "arm64" )
33- set (Rust_CARGO_TARGET "aarch64-apple-darwin" )
34- endif ()
35- elseif (WIN32 )
36- if (MINGW AND "${OS_ARCH} " STREQUAL "arm64" )
37- set (Rust_CARGO_TARGET "aarch64-pc-windows-gnu" )
38- elseif (MINGW AND "${OS_ARCH} " STREQUAL "amd64" )
39- set (Rust_CARGO_TARGET "x86_64-pc-windows-gnu" )
40- elseif (MSVC AND "${OS_ARCH} " STREQUAL "arm64" )
41- set (Rust_CARGO_TARGET "aarch64-pc-windows-msvc" )
42- elseif (MSVC AND "${OS_ARCH} " STREQUAL "amd64" )
43- set (Rust_CARGO_TARGET "x86_64-pc-windows-msvc" )
44- endif ()
45- endif ()
46-
47- execute_process (
48- COMMAND rustup target list --installed
49- OUTPUT_VARIABLE RUST_TARGETS
50- )
51- string (FIND "${RUST_TARGETS} " "wasm32-unknown-emscripten" WASM_TARGET_FOUND)
52-
53- if (NOT WASM_TARGET_FOUND EQUAL -1)
54- set (Rust_CARGO_TARGET "wasm32-unknown-emscripten" )
55- endif ()
56-
57-
58- include (FetchContent)
59-
60- FetchContent_Declare(
61- Corrosion
62- GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git
63- GIT_TAG v0.5.2
64- )
65- # Set any global configuration variables such as `Rust_TOOLCHAIN` before this line!
66- FetchContent_MakeAvailable(Corrosion)
67-
68- # Import targets defined in a package or workspace manifest `Cargo.toml` file
69- corrosion_import_crate(MANIFEST_PATH "${CMAKE_SOURCE_DIR} /../duckdb_crypto_rust/Cargo.toml"
70- CRATES "duckdb_crypto_rust"
71- )
72-
736# Set extension name here
747set (TARGET_NAME crypto)
758
@@ -80,20 +13,25 @@ project(${TARGET_NAME})
8013
8114include_directories (src/include )
8215
83- set (EXTENSION_SOURCES src/crypto_extension.cpp
84- src/query_farm_telemetry.cpp)
16+ # Find OpenSSL
17+ find_package (OpenSSL REQUIRED)
18+ find_package (blake3 CONFIG REQUIRED)
19+
20+ set (EXTENSION_SOURCES
21+ src/crypto_extension.cpp
22+ src/crypto_hash.cpp
23+ src/query_farm_telemetry.cpp
24+ )
8525
8626build_static_extension(${TARGET_NAME} ${EXTENSION_SOURCES} )
8727build_loadable_extension(${TARGET_NAME} " " ${EXTENSION_SOURCES} )
8828
89- get_target_property (fake_includes duckdb_crypto_rust INCLUDE_DIRECTORIES )
90-
91- target_link_libraries (${EXTENSION_NAME} duckdb_crypto_rust-static )
92- target_link_libraries (${LOADABLE_EXTENSION_NAME} duckdb_crypto_rust)
29+ # Link OpenSSL to both static and loadable extensions
30+ target_link_libraries (${EXTENSION_NAME} OpenSSL::SSL OpenSSL::Crypto BLAKE3::blake3)
31+ target_link_libraries (${LOADABLE_EXTENSION_NAME} OpenSSL::SSL OpenSSL::Crypto BLAKE3::blake3)
9332
9433install (
9534 TARGETS ${EXTENSION_NAME}
9635 EXPORT "${DUCKDB_EXPORT_SET} "
9736 LIBRARY DESTINATION "${INSTALL_LIB_DIR} "
9837 ARCHIVE DESTINATION "${INSTALL_LIB_DIR} " )
99-
0 commit comments