Add support to turn 3rd party dependencies off

- By default, all the 3rd party dependencies are enabled.
- A dependency can be turned off by adding the "-DWITHOUT_xxx=ON" to
  the call of vcbuild.bat
- List of 3rd party dependencies and associated option to turn them off:
  - LMDB: WITHOUT_LMDB
  - LUA: WITHOUT_LUA
  - LibXML2: WITHOUT_LIBXML2
  - MaxMind: WITHOUT_MAXMIND
  - cURL: WITHOUT_CURL
This commit is contained in:
Eduardo Arias
2024-05-14 13:42:20 -07:00
parent 6bf78f2560
commit 1b2de5a5d3
3 changed files with 33 additions and 12 deletions

View File

@@ -1,8 +1,14 @@
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.24)
set(BASE_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)
set(USE_ASAN OFF CACHE BOOL "Build with Address Sanitizer")
option(WITHOUT_LMDB "Include LMDB support" OFF)
option(WITHOUT_LUA "Include LUA support" OFF)
option(WITHOUT_LIBXML2 "Include LibXML2 support" OFF)
option(WITHOUT_MAXMIND "Include MaxMind support" OFF)
option(WITHOUT_CURL "Include CURL support" OFF)
option(USE_ASAN "Build with Address Sanitizer" OFF)
# common compiler settings
@@ -55,14 +61,23 @@ set(PACKAGE_VERSION "${PROJECT_VERSION}")
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
set(PACKAGE_TARNAME "${PACKAGE_NAME}")
set(HAVE_GEOIP 0) # should always be zero, no conan package available
set(HAVE_LMDB 1)
set(HAVE_LUA 1)
set(HAVE_LIBXML2 1)
set(HAVE_MAXMIND 1)
set(HAVE_SSDEEP 0) # should always be zero, no conan package available
set(HAVE_YAJL 1) # should always be one, mandatory dependency
set(HAVE_CURL 1)
set(HAVE_GEOIP 0) # should always be zero, no conan package available
set(HAVE_SSDEEP 0) # should always be zero, no conan package available
macro(enable_feature flag option)
if(${option})
set(${flag} 0)
else()
set(${flag} 1)
endif()
endmacro()
enable_feature(HAVE_LMDB ${WITHOUT_LMDB})
enable_feature(HAVE_LUA ${WITHOUT_LUA})
enable_feature(HAVE_LIBXML2 ${WITHOUT_LIBXML2})
enable_feature(HAVE_MAXMIND ${WITHOUT_MAXMIND})
enable_feature(HAVE_CURL ${WITHOUT_CURL})
include(${CMAKE_CURRENT_LIST_DIR}/ConfigureChecks.cmake)