summaryrefslogtreecommitdiffstats
path: root/fluent-bit/src/wasm/CMakeLists.txt
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:20:02 +0000
commit58daab21cd043e1dc37024a7f99b396788372918 (patch)
tree96771e43bb69f7c1c2b0b4f7374cb74d7866d0cb /fluent-bit/src/wasm/CMakeLists.txt
parentReleasing debian version 1.43.2-1. (diff)
downloadnetdata-58daab21cd043e1dc37024a7f99b396788372918.tar.xz
netdata-58daab21cd043e1dc37024a7f99b396788372918.zip
Merging upstream version 1.44.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/src/wasm/CMakeLists.txt')
-rw-r--r--fluent-bit/src/wasm/CMakeLists.txt111
1 files changed, 111 insertions, 0 deletions
diff --git a/fluent-bit/src/wasm/CMakeLists.txt b/fluent-bit/src/wasm/CMakeLists.txt
new file mode 100644
index 000000000..b345c4b45
--- /dev/null
+++ b/fluent-bit/src/wasm/CMakeLists.txt
@@ -0,0 +1,111 @@
+string (TOLOWER ${CMAKE_HOST_SYSTEM_NAME} WAMR_BUILD_PLATFORM)
+if (FLB_SYSTEM_WINDOWS)
+ enable_language(ASM_MASM)
+endif()
+if (APPLE)
+ add_definitions(-DBH_PLATFORM_DARWIN)
+endif ()
+
+set (CMAKE_C_STANDARD 99)
+
+if (FLB_SYSTEM_WINDOWS)
+ add_definitions(-DCOMPILING_WASM_RUNTIME_API=1)
+endif ()
+
+# WAMR features switch
+
+# Set WAMR_BUILD_TARGET, currently values supported:
+# "X86_64", "AMD_64", "X86_32", "AARCH64[sub]", "ARM[sub]", "THUMB[sub]",
+# "MIPS", "XTENSA", "RISCV64[sub]", "RISCV32[sub]"
+if (NOT DEFINED WAMR_BUILD_TARGET)
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm64|aarch64)")
+ set (WAMR_BUILD_TARGET "AARCH64")
+ if (FLB_SYSTEM_MACOS)
+ message(STATUS "macOS arm64 platform is poor support for AOT loading. Now disabling for it.")
+ set (WAMR_DISABLE_AOT_LOADING 1)
+ FLB_DEFINITION(FLB_WAMR_DISABLE_AOT_LOADING)
+ endif ()
+ # For raspbian/buster: armv6l-unknown-linux-gnueabihf
+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv6.*|armv7.*)")
+ set (WAMR_BUILD_TARGET "ARM")
+ elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv64")
+ set (WAMR_BUILD_TARGET "RISCV64")
+ elseif (CMAKE_SIZEOF_VOID_P EQUAL 8)
+ # Build as X86_64 by default in 64-bit platform
+ set (WAMR_BUILD_TARGET "X86_64")
+ elseif (CMAKE_SIZEOF_VOID_P EQUAL 4)
+ # Build as X86_32 by default in 32-bit platform
+ set (WAMR_BUILD_TARGET "X86_32")
+ else ()
+ message(SEND_ERROR "Unsupported build target platform!")
+ endif ()
+endif ()
+
+if (NOT CMAKE_BUILD_TYPE)
+ set (CMAKE_BUILD_TYPE Release)
+endif ()
+
+set (WAMR_BUILD_MINI_LOADER 0)
+set (WAMR_BUILD_INTERP 1)
+set (WAMR_BUILD_FAST_INTERP 1)
+if (NOT DEFINED WAMR_DISABLE_AOT_LOADING)
+ set (WAMR_BUILD_AOT 1)
+endif ()
+set (WAMR_BUILD_JIT 0)
+set (WAMR_BUILD_LIBC_BUILTIN 1)
+if (MSVC)
+ # Currently, LIBC_UVWASI build is disabled.
+ # FIXME: Need to investigate how to build libuv and uvwasi without fetching repos.
+ set (WAMR_BUILD_LIBC_UVWASI 0)
+else ()
+ set (WAMR_BUILD_LIBC_WASI 1)
+endif ()
+if (NOT MSVC)
+ set (WAMR_BUILD_LIB_PTHREAD 1)
+endif ()
+set (WAMR_BUILD_REF_TYPES 0)
+
+if (NOT MSVC)
+ # linker flags
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie -fPIE")
+ if (NOT (CMAKE_C_COMPILER MATCHES ".*clang.*" OR CMAKE_C_COMPILER_ID MATCHES ".*Clang"))
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections")
+ endif ()
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wformat -Wformat-security")
+ if (WAMR_BUILD_TARGET MATCHES "X86_.*" OR WAMR_BUILD_TARGET STREQUAL "AMD_64")
+ if (NOT (CMAKE_C_COMPILER MATCHES ".*clang.*" OR CMAKE_C_COMPILER_ID MATCHES ".*Clang"))
+ check_c_compiler_flag(-mindirect-branch-register FLB_WASM_INDIRECT_BRANCH_REGISTER_SUPPORTED)
+ if (FLB_WASM_INDIRECT_BRANCH_REGISTER_SUPPORTED)
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mindirect-branch-register")
+ endif ()
+ endif ()
+ endif ()
+endif ()
+
+set (WAMR_BUILD_SIMD 0)
+set (WAMR_ROOT_DIR ../../${FLB_PATH_LIB_WASM_MICRO_RUNTIME})
+
+# build out vmlib-static
+include (${WAMR_ROOT_DIR}/build-scripts/runtime_lib.cmake)
+add_library(vmlib-static STATIC ${WAMR_RUNTIME_LIB_SOURCE})
+
+# Application related
+include (${SHARED_DIR}/utils/uncommon/shared_uncommon.cmake)
+
+set(src
+ flb_wasm.c
+ ${UNCOMMON_SHARED_SOURCE}) # link wasm-micro-runtime's uncommon object symbols (for bh_read_file_to_buffer)
+
+add_library(flb-wasm-static STATIC ${src})
+
+if (FLB_JEMALLOC AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ set(${JEMALLOC_LIBS} libjemalloc)
+ add_dependencies(flb-wasm-static libjemalloc)
+ include_directories("${CMAKE_BINARY_DIR}/include/")
+endif ()
+
+if (WAMR_BUILD_LIBC_UVWASI)
+ target_link_libraries(flb-wasm-static vmlib-static ${UV_A_LIBS})
+else ()
+ target_link_libraries(flb-wasm-static vmlib-static ${JEMALLOC_LIBS})
+endif()