# Features that can be enabled for cmake (see CMakeLists.txt) if(WIN32) set(APP_CONFIG_DIRECTORY "." CACHE STRING "App Config directory.") set(DATABASE_DIRECTORY "database" CACHE STRING "Database directory.") else() set(APP_CONFIG_DIRECTORY "etc" CACHE STRING "App Config directory.") set(DATABASE_DIRECTORY "share/clamav" CACHE STRING "Database directory.") endif() set(CLAMAV_USER "clamav" CACHE STRING "ClamAV User") set(CLAMAV_GROUP "clamav" CACHE STRING "ClamAV Group") set(MMAP_FOR_CROSSCOMPILING 0 CACHE STRING "Force MMAP support for cross-compiling.") set(DISABLE_MPOOL 0 CACHE STRING "Disable mpool support entirely.") set(BYTECODE_RUNTIME "interpreter" CACHE STRING "Bytecode Runtime, may be: 'llvm', 'interpreter', 'none'.") set_property(CACHE BYTECODE_RUNTIME PROPERTY STRINGS llvm interpreter none) option(OPTIMIZE "Allow compiler optimizations. Set to OFF to disable (i.e. to set -O0)." ON) option(MAINTAINER_MODE "Update generated sources. Requires flex, bison." ${MAINTAINER_MODE_DEFAULT}) option(ENABLE_WERROR "Compile time warnings will cause build failures.") option(ENABLE_ALL_THE_WARNINGS "Enable as many compiler warnings as possible.") option(ENABLE_DEBUG "Turn on extra debug output.") option(ENABLE_EXPERIMENTAL "Turn on experimental features (if any).") option(ENABLE_FRESHCLAM_DNS_FIX "Enable workaround for broken DNS servers.") option(ENABLE_FRESHCLAM_NO_CACHE "Use 'Cache-Control: no-cache' in freshclam.") option(ENABLE_STRN_INTERNAL "Enables explicit use of internal strn functions to support cross-compilation against older libs.") option(ENABLE_FUZZ "Build fuzz targets. Will enable ENABLE_STATIC_LIB for you.") option(ENABLE_EXTERNAL_MSPACK "Use external mspack instead of internal libclammspack.") option(ENABLE_JSON_SHARED "Prefer linking with libjson-c shared library instead of static." ON) option(ENABLE_APP "Build applications (clamscan, clamd, clamdscan, clamonacc, sigtool, clambc, clamav-milter, clamdtop, clamsubmit, clamconf)." ${ENABLE_APP_DEFAULT}) option(ENABLE_MILTER "Build clamav-milter (requires ENABLE_APP))." ${ENABLE_MILTER_DEFAULT}) option(ENABLE_CLAMONACC "Build clamonacc (Linux-only, requires ENABLE_APP))." ${ENABLE_CLAMONACC_DEFAULT}) option(ENABLE_MAN_PAGES "Generate man pages." ${ENABLE_MAN_PAGES_DEFAULT}) option(ENABLE_DOXYGEN "Generate doxygen HTML documentation for clamav.h, libfreshclam.h." ${ENABLE_DOXYGEN_DEFAULT}) option(ENABLE_EXAMPLES "Build examples." ${ENABLE_EXAMPLES_DEFAULT}) option(ENABLE_TESTS "Build/enable unit tests." ${ENABLE_TESTS_DEFAULT}) option(ENABLE_LIBCLAMAV_ONLY "Build libclamav only. Excludes libfreshclam too!") option(ENABLE_STATIC_LIB "Build libclamav and/or libfreshclam static libraries.") option(ENABLE_SHARED_LIB "Build libclamav and/or libfreshclam shared libraries." ON) option(ENABLE_UNRAR "Build & install libclamunrar." ${ENABLE_UNRAR_DEFAULT}) option(ENABLE_SYSTEMD "Install systemd service files if systemd is found." ${ENABLE_SYSTEMD_DEFAULT}) # For reference determining target platform: # Rust Targets: https://doc.rust-lang.org/nightly/rustc/platform-support.html option(RUST_COMPILER_TARGET "Use a custom target triple to build the Rust components. Needed for cross-compiling.") option(DO_NOT_SET_RPATH "Don't set the RPATH on UNIX systems.")