option(EXPAT_BUILD_FUZZERS "build fuzzers for the expat library" OFF)
option(EXPAT_WITH_LIBBSD "utilize libbsd (for arc4random_buf)" OFF)
option(EXPAT_ENABLE_INSTALL "install expat files in cmake install target" ON)
-set(XML_CONTEXT_BYTES 1024 CACHE STRING "Define to specify how much context to retain around the current parse point")
-option(XML_DTD "Define to make parameter entity parsing functionality available" ON)
-option(XML_NS "Define to make XML Namespaces functionality available" ON)
+set(EXPAT_CONTEXT_BYTES 1024 CACHE STRING "Define to specify how much context to retain around the current parse point")
+option(EXPAT_DTD "Define to make parameter entity parsing functionality available" ON)
+option(EXPAT_NS "Define to make XML Namespaces functionality available" ON)
option(EXPAT_WARNINGS_AS_ERRORS "Treat all compiler warnings as errors" OFF)
if(NOT WIN32)
- option(XML_DEV_URANDOM "Define to include code reading entropy from `/dev/urandom'." ON)
+ option(EXPAT_DEV_URANDOM "Define to include code reading entropy from `/dev/urandom'." ON)
set(EXPAT_WITH_GETRANDOM "AUTO" CACHE STRING
"Make use of getrandom function (ON|OFF|AUTO) [default=AUTO]")
set(EXPAT_WITH_SYS_GETRANDOM "AUTO" CACHE STRING
"Make use of syscall SYS_getrandom (ON|OFF|AUTO) [default=AUTO]")
endif()
-option(XML_UNICODE "Use UTF-16 encoded chars (two bytes) instead of UTF-8" OFF)
-option(XML_UNICODE_WCHAR_T "Use wchar_t to represent UTF-16 instead of unsigned short" OFF)
-option(XML_ATTR_INFO "Define to allow retrieving the byte offsets for attribute names and values" OFF)
-option(XML_LARGE_SIZE "Make XML_GetCurrent* functions return <(unsigned) long long> rather than <(unsigned) long>" OFF)
-option(XML_MIN_SIZE "Get a smaller (but slower) parser (in particular avoid multiple copies of the tokenizer)" OFF)
+option(EXPAT_UNICODE "Use UTF-16 encoded chars (two bytes) instead of UTF-8" OFF)
+option(EXPAT_UNICODE_WCHAR_T "Use wchar_t to represent UTF-16 instead of unsigned short" OFF)
+option(EXPAT_ATTR_INFO "Define to allow retrieving the byte offsets for attribute names and values" OFF)
+option(EXPAT_LARGE_SIZE "Make XML_GetCurrent* functions return <(unsigned) long long> rather than <(unsigned) long>" OFF)
+option(EXPAT_MIN_SIZE "Get a smaller (but slower) parser (in particular avoid multiple copies of the tokenizer)" OFF)
if(MSVC)
set(EXPAT_MSVC_STATIC_CRT OFF CACHE BOOL "Use /MT flag (static CRT) when compiling in MSVC")
endif()
endif()
endif()
-if(NOT WIN32)
- if(XML_DEV_URANDOM)
- set(XML_DEV_URANDOM 1)
- else(XML_DEV_URANDOM)
- set(XML_DEV_URANDOM 0)
- endif(XML_DEV_URANDOM)
-endif()
-
-macro(expat_bool_to_int var_ref)
- if(${var_ref})
- set(${var_ref} 1)
+macro(_expat_copy_bool_int source_ref dest_ref)
+ if(${source_ref})
+ set(${dest_ref} 1)
else()
- set(${var_ref} 0)
+ set(${dest_ref} 0)
endif()
endmacro()
-expat_bool_to_int(XML_ATTR_INFO)
-expat_bool_to_int(XML_DTD)
-expat_bool_to_int(XML_LARGE_SIZE)
-expat_bool_to_int(XML_MIN_SIZE)
-expat_bool_to_int(XML_NS)
-expat_bool_to_int(XML_UNICODE)
-expat_bool_to_int(XML_UNICODE_WCHAR_T)
-
-if(XML_LARGE_SIZE)
+if(EXPAT_LARGE_SIZE)
add_definitions(-DXML_LARGE_SIZE)
endif()
-if(XML_MIN_SIZE)
+if(EXPAT_MIN_SIZE)
add_definitions(-DXML_MIN_SIZE)
endif()
-if(XML_UNICODE_WCHAR_T AND NOT XML_UNICODE)
- message(SEND_ERROR "Option XML_UNICODE_WCHAR_T=ON may not be used without XML_UNICODE=ON.")
- set(XML_UNICODE 1)
-endif(XML_UNICODE_WCHAR_T AND NOT XML_UNICODE)
+if(EXPAT_UNICODE_WCHAR_T AND NOT EXPAT_UNICODE)
+ message(SEND_ERROR "Option EXPAT_UNICODE_WCHAR_T=ON may not be used without EXPAT_UNICODE=ON.")
+ set(EXPAT_UNICODE ON)
+endif(EXPAT_UNICODE_WCHAR_T AND NOT EXPAT_UNICODE)
-if(EXPAT_BUILD_TOOLS AND (XML_UNICODE AND NOT XML_UNICODE_WCHAR_T))
- message(SEND_ERROR "The xmlwf tool can not be built with option XML_UNICODE_WCHAR_T=OFF and XML_UNICODE=ON. Either set XML_UNICODE_WCHAR_T=ON or EXPAT_BUILD_TOOLS=OFF.")
+if(EXPAT_BUILD_TOOLS AND (EXPAT_UNICODE AND NOT EXPAT_UNICODE_WCHAR_T))
+ message(SEND_ERROR "The xmlwf tool can not be built with option EXPAT_UNICODE_WCHAR_T=OFF and EXPAT_UNICODE=ON. Either set EXPAT_UNICODE_WCHAR_T=ON or EXPAT_BUILD_TOOLS=OFF.")
endif()
include(${CMAKE_CURRENT_LIST_DIR}/ConfigureChecks.cmake)
evaluate_detection_results(EXPAT_WITH_SYS_GETRANDOM HAVE_SYSCALL_GETRANDOM "syscall SYS_getrandom" "Syscall SYS_getrandom")
endif()
+_expat_copy_bool_int(EXPAT_ATTR_INFO XML_ATTR_INFO)
+_expat_copy_bool_int(EXPAT_DTD XML_DTD)
+_expat_copy_bool_int(EXPAT_LARGE_SIZE XML_LARGE_SIZE)
+_expat_copy_bool_int(EXPAT_MIN_SIZE XML_MIN_SIZE)
+_expat_copy_bool_int(EXPAT_NS XML_NS)
+_expat_copy_bool_int(EXPAT_UNICODE XML_UNICODE)
+_expat_copy_bool_int(EXPAT_UNICODE_WCHAR_T XML_UNICODE_WCHAR_T)
+if(NOT WIN32)
+ _expat_copy_bool_int(EXPAT_DEV_URANDOM XML_DEV_URANDOM)
+endif()
+set(XML_CONTEXT_BYTES ${EXPAT_CONTEXT_BYTES})
+
macro(expat_install)
if(EXPAT_ENABLE_INSTALL)
install(${ARGN})
add_definitions(-D_CRT_SECURE_NO_WARNINGS -wd4996)
endif(MSVC)
if(WIN32)
- if(XML_UNICODE_WCHAR_T)
+ if(EXPAT_UNICODE_WCHAR_T)
set(_POSTFIX_WIDE "w")
endif()
#
# Summary
#
-if(XML_UNICODE)
- if(XML_UNICODE_WCHAR_T)
+if(EXPAT_UNICODE)
+ if(EXPAT_UNICODE_WCHAR_T)
set(_EXPAT_CHAR_TYPE "wchar_t")
else()
set(_EXPAT_CHAR_TYPE "unsigned short")
message(STATUS " Install files .............. ${EXPAT_ENABLE_INSTALL}")
message(STATUS "")
message(STATUS " Features")
-message(STATUS " Attributes info .......... ${XML_ATTR_INFO}")
-message(STATUS " Context bytes ............ ${XML_CONTEXT_BYTES}")
-message(STATUS " DTD support .............. ${XML_DTD}")
-message(STATUS " Large size ............... ${XML_LARGE_SIZE}")
-message(STATUS " Namespace support ........ ${XML_NS}")
+message(STATUS " Attributes info .......... ${EXPAT_ATTR_INFO}")
+message(STATUS " Context bytes ............ ${EXPAT_CONTEXT_BYTES}")
+message(STATUS " DTD support .............. ${EXPAT_DTD}")
+message(STATUS " Large size ............... ${EXPAT_LARGE_SIZE}")
+message(STATUS " Namespace support ........ ${EXPAT_NS}")
message(STATUS "")
message(STATUS " Entropy sources")
if(WIN32)
message(STATUS " getrandom ................ ${HAVE_GETRANDOM}")
message(STATUS " syscall SYS_getrandom .... ${HAVE_SYSCALL_GETRANDOM}")
message(STATUS " libbsd ................... ${EXPAT_WITH_LIBBSD}")
- message(STATUS " /dev/random .............. ${XML_DEV_URANDOM}")
+ message(STATUS " /dev/random .............. ${EXPAT_DEV_URANDOM}")
endif()
message(STATUS "")
if(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
set(expat_${_NAME}_FOUND ${_AVAILABE})
endmacro()
-_register_component(attr_info @XML_ATTR_INFO@)
-if(@XML_CONTEXT_BYTES@)
- _register_component(context_bytes 1)
+_register_component(attr_info @EXPAT_ATTR_INFO@)
+if(@EXPAT_CONTEXT_BYTES@)
+ _register_component(context_bytes ON)
else()
- _register_component(context_bytes 0)
+ _register_component(context_bytes OFF)
endif()
-_register_component(dtd @XML_DTD@)
-_register_component(large_size @XML_LARGE_SIZE@)
-_register_component(min_size @XML_MIN_SIZE@)
-_register_component(ns @XML_NS@)
-_register_component(unicode @XML_UNICODE@)
-_register_component(unicode_wchar_t @XML_UNICODE_WCHAR_T@)
+_register_component(dtd @EXPAT_DTD@)
+_register_component(large_size @EXPAT_LARGE_SIZE@)
+_register_component(min_size @EXPAT_MIN_SIZE@)
+_register_component(ns @EXPAT_NS@)
+_register_component(unicode @EXPAT_UNICODE@)
+_register_component(unicode_wchar_t @EXPAT_UNICODE_WCHAR_T@)
check_required_components(expat)