diff options
Diffstat (limited to 'src/fluent-bit/plugins/filter_geoip2/libmaxminddb/CMakeLists.txt')
-rw-r--r-- | src/fluent-bit/plugins/filter_geoip2/libmaxminddb/CMakeLists.txt | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/fluent-bit/plugins/filter_geoip2/libmaxminddb/CMakeLists.txt b/src/fluent-bit/plugins/filter_geoip2/libmaxminddb/CMakeLists.txt new file mode 100644 index 000000000..2ed068af2 --- /dev/null +++ b/src/fluent-bit/plugins/filter_geoip2/libmaxminddb/CMakeLists.txt @@ -0,0 +1,101 @@ +project(maxminddb + LANGUAGES C +) +set(MAXMINDDB_SOVERSION 0.0.7) + +option(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" OFF) +option(BUILD_TESTING "Build test programs" ON) + +include(CheckTypeSize) +check_type_size("unsigned __int128" UINT128) +check_type_size("unsigned int __attribute__((mode(TI)))" UINT128_USING_MODE) +if(HAVE_UINT128) + set(MMDB_UINT128_USING_MODE 0) + set(MMDB_UINT128_IS_BYTE_ARRAY 0) +elseif(HAVE_UINT128_USING_MODE) + set(MMDB_UINT128_USING_MODE 1) + set(MMDB_UINT128_IS_BYTE_ARRAY 0) +else() + set(MMDB_UINT128_USING_MODE 0) + set(MMDB_UINT128_IS_BYTE_ARRAY 1) +endif() + +include (TestBigEndian) +TEST_BIG_ENDIAN(IS_BIG_ENDIAN) + +if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") + set(CMAKE_POSITION_INDEPENDENT_CODE ON) +endif() + +configure_file(${PROJECT_SOURCE_DIR}/include/maxminddb_config.h.cmake.in + ${PROJECT_SOURCE_DIR}/include/maxminddb_config.h) + +add_library(maxminddb STATIC + src/maxminddb.c + src/data-pool.c +) +add_library(maxminddb::maxminddb ALIAS maxminddb) + +set_target_properties(maxminddb PROPERTIES VERSION ${MAXMINDDB_SOVERSION}) + +target_compile_definitions(maxminddb PUBLIC PACKAGE_VERSION="${PROJECT_VERSION}") + +if(NOT IS_BIG_ENDIAN) + target_compile_definitions(maxminddb PRIVATE MMDB_LITTLE_ENDIAN=1) +endif() + +if(MSVC) + target_compile_definitions(maxminddb PRIVATE _CRT_SECURE_NO_WARNINGS) +endif() + +if(WIN32) + target_link_libraries(maxminddb ws2_32) +endif() + +set(CMAKE_SHARED_LIBRARY_PREFIX lib) +set(CMAKE_STATIC_LIBRARY_PREFIX lib) + +set(MAXMINDB_INCLUDE_DIR + . + include +) + + + +# +# NOTE: This function call was modified for Fluent Bit. +# The original first argument was the following: +# +# $<BUILD_INTERFACE:${MAXMINDB_INCLUDE_DIR}> +# +target_include_directories(maxminddb PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> + $<INSTALL_INTERFACE:include> +) + +set(MAXMINDB_HEADERS + include/maxminddb.h + include/maxminddb_config.h +) +set_target_properties(maxminddb PROPERTIES PUBLIC_HEADER "${MAXMINDB_HEADERS}") + +#install(TARGETS maxminddb +# EXPORT maxminddb +# ARCHIVE DESTINATION lib +# PUBLIC_HEADER DESTINATION include/ +#) +# +## This is required to work with FetchContent +#install(EXPORT maxminddb +# FILE maxminddb-config.cmake +# NAMESPACE maxminddb:: +# DESTINATION lib/cmake/maxminddb) + +# We always want to build mmdblookup +add_subdirectory(bin) + +if (BUILD_TESTING) + enable_testing() + add_subdirectory(t) +endif() + |