Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/mysys/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 2 kB image not shown  

Quelle  CMakeLists.txt   Sprache: Text

 

IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
  MESSAGE_ONCE(duckdb "DuckDB: not Linux, skipping")
  return()
ENDIF()

IF(NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR
        CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64"))
  MESSAGE_ONCE(duckdb "DuckDB: not x86_64 or aarch64, skipping")
  return()
ENDIF()

# Catch -m32 / multilib builds (e.g. 32-bit build inside an x86_64 CI
# container): CMAKE_SYSTEM_PROCESSOR still reports x86_64, but the target is
# 32-bit. DuckDB (and its jemalloc extension) is 64-bit only.
IF(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
  MESSAGE_ONCE(duckdb "DuckDB: not a 64-bit build, skipping")
  return()
ENDIF()

# Check C++17 compiler support
MY_CHECK_CXX_COMPILER_FLAG("-std=c++17")
IF(NOT have_CXX__std_c__17)
  MESSAGE_ONCE(duckdb "DuckDB: C++ compiler does not support -std=c++17, skipping")
  RETURN()
ENDIF()

# libduckdb_bundle.a is built without debug STL wrappers.
# Mismatched _GLIBCXX_DEBUG changes sizeof(std::vector) → SIGSEGV.
SET(CMAKE_CXX_FLAGS_DEBUG
    "${CMAKE_CXX_FLAGS_DEBUG} -U_GLIBCXX_DEBUG -U_GLIBCXX_ASSERTIONS")

# Plugin sources (handler layer + UDFs whose extern "C" symbols must be
# in the final .so for dlsym() loading).
SET(DUCKDB_PLUGIN_SOURCES
  ha_duckdb.cc
  ha_duckdb_pushdown.cc
  duckdb_udf.cc
)

MYSQL_ADD_PLUGIN(duckdb ${DUCKDB_PLUGIN_SOURCES} STORAGE_ENGINE MODULE_ONLY
                 COMPONENT duckdb-engine)
SET(CPACK_RPM_duckdb-engine_PACKAGE_SUMMARY "DuckDB storage engine for MariaDB server" PARENT_SCOPE)
SET(CPACK_RPM_duckdb-engine_PACKAGE_DESCRIPTION "The MariaDB DuckDB storage
engine embeds DuckDB as a pluggable storage engine, enabling fast analytical
(OLAP) query processing directly inside MariaDB." PARENT_SCOPE)

IF(TARGET duckdb)

  INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/duckdb.cmake)
  INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/duckdb_target_setup.cmake)

  # Provide MariaDB server include paths to sub-libraries.
  # MYSQL_ADD_PLUGIN normally does this, but it runs after ADD_SUBDIRECTORY.
  INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
                      ${CMAKE_SOURCE_DIR}/sql
                      ${CMAKE_BINARY_DIR}/include
                      ${PCRE_INCLUDE_DIRS}
                      ${SSL_INCLUDE_DIRS}
                      ${ZLIB_INCLUDE_DIRS})

  # Build sub-libraries.
  ADD_SUBDIRECTORY(common)
  ADD_SUBDIRECTORY(convertor)
  ADD_SUBDIRECTORY(runtime)

  # atomic: GCC lowers the 16-byte atomic ops of the AUTO_INCREMENT block
  # cache (Duckdb_share::autoinc_range) to libatomic calls.
  target_link_libraries(duckdb duckdb_runtime duckdb_convertor duckdb_common
    ${DUCKDB_LIBRARY} atomic
  )

  duckdb_setup_target(duckdb)
  TARGET_INCLUDE_DIRECTORIES(duckdb PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/common
    ${CMAKE_CURRENT_SOURCE_DIR}/convertor
    ${CMAKE_CURRENT_SOURCE_DIR}/runtime
  )
ENDIF()

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.