diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..671477d05a420ff7229edf1902037813bcdf7648 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,572 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 3.7.0) + +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake" CACHE STRING "Modules for CMake" FORCE) + +PROJECT(libxml2 C) + +SET(LIBXML2_VERSION_MAJOR 2) +SET(LIBXML2_VERSION_MINOR 9) +SET(LIBXML2_VERSION_MICRO 8) +SET(LIBXML2_VERSION ${LIBXML2_VERSION_MAJOR}.${LIBXML2_VERSION_MINOR}.${LIBXML2_VERSION_MICRO}) + +INCLUDE(GNUInstallDirs) +INCLUDE(CheckIncludeFiles) +INCLUDE(CheckTypeSize) +INCLUDE(CheckSymbolExists) +INCLUDE(CheckStructHasMember) + +# Macros & Functions +MACRO(bool_to_int OUT IN) + IF(${IN}) + SET(${OUT} 1) + ELSE() + SET(${OUT} 0) + ENDIF() +ENDMACRO() + +IF(WIN32) + SET(CMAKE_REQUIRED_LIBRARIES wsock32 ws2_32) +ENDIF(WIN32) + +# Checks +CHECK_INCLUDE_FILES("arpa/inet.h" HAVE_ARPA_INET_H) +CHECK_INCLUDE_FILES("arpa/nameser.h" HAVE_ARPA_NAMESER_H) +CHECK_INCLUDE_FILES("ctype.h" HAVE_CTYPE_H) +CHECK_INCLUDE_FILES("dirent.h" HAVE_DIRENT_H) +CHECK_INCLUDE_FILES("dlfcn.h" HAVE_DLFCN_H) +CHECK_INCLUDE_FILES("dl.h" HAVE_DL_H) +CHECK_INCLUDE_FILES("errno.h" HAVE_ERRNO_H) +CHECK_INCLUDE_FILES("fcntl.h" HAVE_FCNTL_H) +CHECK_INCLUDE_FILES("float.h" HAVE_FLOAT_H) +CHECK_INCLUDE_FILES("inttypes.h" HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES("limits.h" HAVE_LIMITS_H) +CHECK_INCLUDE_FILES("lzma.h" HAVE_LZMA_H) +CHECK_INCLUDE_FILES("malloc.h" HAVE_MALLOC_H) +CHECK_INCLUDE_FILES("math.h" HAVE_MATH_H) +CHECK_INCLUDE_FILES("memory.h" HAVE_MEMORY_H) +CHECK_INCLUDE_FILES("ndir.h" HAVE_NDIR_H) +CHECK_INCLUDE_FILES("netdb.h" HAVE_NETDB_H) +CHECK_INCLUDE_FILES("netinet/in.h" HAVE_NETINET_IN_H) +CHECK_INCLUDE_FILES("poll.h" HAVE_POLL_H) +CHECK_INCLUDE_FILES("pthread.h" HAVE_PTHREAD_H) +CHECK_INCLUDE_FILES("resolv.h" HAVE_RESOLV_H) +CHECK_INCLUDE_FILES("signal.h" HAVE_SIGNAL_H) +CHECK_INCLUDE_FILES("stdarg.h" HAVE_STDARG_H) +CHECK_INCLUDE_FILES("stdlib.h" HAVE_STDLIB_H) +CHECK_INCLUDE_FILES("string.h" HAVE_STRING_H) +CHECK_INCLUDE_FILES("strings.h" HAVE_STRINGS_H) +CHECK_INCLUDE_FILES("sys/dir.h" HAVE_SYS_DIR_H) +IF(HAVE_SYS_DIR_H) + UNSET(HAVE_SYS_DIR_H CACHE) + CHECK_SYMBOL_EXISTS(DIR "sys/dir.h" HAVE_SYS_DIR_H) +ENDIF(HAVE_SYS_DIR_H) +CHECK_INCLUDE_FILES("sys/ndir.h" HAVE_SYS_NDIR_H) +IF(HAVE_SYS_NDIR_H) + UNSET(HAVE_SYS_NDIR_H CACHE) + CHECK_SYMBOL_EXISTS(DIR "sys/ndir.h" HAVE_SYS_NDIR_H) +ENDIF(HAVE_SYS_NDIR_H) +CHECK_INCLUDE_FILES("sys/mman.h" HAVE_SYS_MMAN_H) +CHECK_INCLUDE_FILES("sys/select.h" HAVE_SYS_SELECT_H) +CHECK_INCLUDE_FILES("sys/stat.h" HAVE_SYS_STAT_H) +CHECK_INCLUDE_FILES("sys/socket.h" HAVE_SYS_SOCKET_H) +CHECK_INCLUDE_FILES("sys/time.h" HAVE_SYS_TIME_H) +CHECK_INCLUDE_FILES("sys/timeb.h" HAVE_SYS_TIMEB_H) +CHECK_INCLUDE_FILES("sys/types.h" HAVE_SYS_TYPES_H) +CHECK_INCLUDE_FILES("time.h" HAVE_TIME_H) +CHECK_INCLUDE_FILES("unistd.h" HAVE_UNISTD_H) + +CHECK_SYMBOL_EXISTS(fprintf "stdio.h" HAVE_FPRINTF) +CHECK_SYMBOL_EXISTS(ftime "sys/timeb.h" HAVE_FTIME) +IF(WIN32) + CHECK_SYMBOL_EXISTS(getaddrinfo "winsock2.h;ws2tcpip.h" HAVE_GETADDRINFO) +ELSE(WIN32) + CHECK_SYMBOL_EXISTS(getaddrinfo "sys/types.h;sys/socket.h;netdb.h" HAVE_GETADDRINFO) +ENDIF(WIN32) +CHECK_SYMBOL_EXISTS(gettimeofday "sys/time.h" HAVE_GETTIMEOFDAY) +CHECK_SYMBOL_EXISTS(isascii "ctype.h" HAVE_ISASCII) +CHECK_SYMBOL_EXISTS(isinf "math.h" HAVE_ISINF) +CHECK_SYMBOL_EXISTS(isnan "math.h" HAVE_ISNAN) +CHECK_SYMBOL_EXISTS(localtime "time.h" HAVE_LOCALTIME) +CHECK_SYMBOL_EXISTS(mmap "sys/mman.h" HAVE_MMAP) +CHECK_SYMBOL_EXISTS(munmap "sys/mman.h" HAVE_MUNMAP) +CHECK_SYMBOL_EXISTS(printf "stdio.h" HAVE_PRINTF) +CHECK_SYMBOL_EXISTS(putenv "stdlib.h" HAVE_PUTENV) +CHECK_SYMBOL_EXISTS(rand "stdlib.h" HAVE_RAND) +CHECK_SYMBOL_EXISTS(rand_r "stdlib.h" HAVE_RAND_R) +CHECK_SYMBOL_EXISTS(signal "signal.h" HAVE_SIGNAL) +CHECK_SYMBOL_EXISTS(snprintf "stdio.h" HAVE_SNPRINTF) +CHECK_SYMBOL_EXISTS(sprintf "stdio.h" HAVE_SPRINTF) +CHECK_SYMBOL_EXISTS(srand "stdlib.h" HAVE_SRAND) +CHECK_SYMBOL_EXISTS(sscanf "stdio.h" HAVE_SSCANF) +CHECK_SYMBOL_EXISTS(stat "sys/types.h;sys/stat.h" HAVE_STAT) +CHECK_SYMBOL_EXISTS(strftime "time.h" HAVE_STRFTIME) +CHECK_SYMBOL_EXISTS(time "time.h" HAVE_TIME) +CHECK_SYMBOL_EXISTS(va_copy "stdarg.h" HAVE_VA_COPY) +CHECK_SYMBOL_EXISTS(vfprintf "stdio.h" HAVE_VFPRINTF) +CHECK_SYMBOL_EXISTS(vsnprintf "stdio.h" HAVE_VSNPRINTF) +CHECK_SYMBOL_EXISTS(vsprintf "stdio.h" HAVE_VSPRINTF) + +IF(HAVE_DL_H) + SET(CMAKE_REQUIRED_LIBRARIES_OLD ${CMAKE_REQUIRED_LIBRARIES}) + SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_DL_LIBS}) + CHECK_SYMBOL_EXISTS(dlopen "dl.h" HAVE_DLOPEN) + SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_OLD}) +ENDIF(HAVE_DL_H) + +IF(HAVE_DLFCN_H) + SET(CMAKE_REQUIRED_LIBRARIES_OLD ${CMAKE_REQUIRED_LIBRARIES}) + SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_DL_LIBS}) + CHECK_SYMBOL_EXISTS(dlopen "dlfcn.h" HAVE_DLOPEN) + SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_OLD}) +ENDIF(HAVE_DLFCN_H) + +CHECK_TYPE_SIZE("uint32_t" HAVE_UINT32_T) + +OPTION(ENABLE_ZLIB "Enable the use of the system ZLIB library if found" ON) +OPTION(ENABLE_LZMA "Enable the use of the system LZMA library if found" ON) + +OPTION(ENABLE_C14N "Add the Canonicalization support" ON) +OPTION(ENABLE_CATALOG "Add the Catalog support" ON) +OPTION(ENABLE_DEBUG "Add the debugging code" ON) +OPTION(ENABLE_FTP "Add the FTP support" ON) +OPTION(ENABLE_HTML "Add the HTML support" ON) +OPTION(ENABLE_HTTP "Add the HTTP support" ON) +OPTION(ENABLE_ICONV "Add ICONV support" ON) +OPTION(ENABLE_ICU "Add ICU support" ON) +OPTION(ENABLE_IPV6 "Enables compilation of IPv6 code" ON) +OPTION(ENABLE_LEGACY "Add deprecated APIs for compatibility" ON) +OPTION(ENABLE_MEM_DEBUG "Add the memory debugging module" OFF) +OPTION(ENABLE_MODULE "Add the dynamic modules support" ON) +OPTION(ENABLE_OUTPUT "Add the serialization support" ON) +OPTION(ENABLE_PATTERN "Add the xmlPattern selection interface" ON) +OPTION(ENABLE_PUSH "Add the PUSH parser interfaces" ON) +OPTION(ENABLE_READER "Add the xmlReader parsing interface" ON) +OPTION(ENABLE_REGEXPS "Add Regular Expressions support" ON) +OPTION(ENABLE_RUN_DEBUG "Add the runtime debugging module" OFF) +OPTION(ENABLE_SAX1 "Add the older SAX1 interface" ON) +OPTION(ENABLE_SCHEMAS "Add Relax-NG and Schemas support" ON) +OPTION(ENABLE_SCHEMATRON "Add Schematron support" ON) +OPTION(ENABLE_TREE "Add the DOM like tree manipulation APIs" ON) +OPTION(ENABLE_VALID "Add the DTD validation support" ON) +OPTION(ENABLE_WRITTER "Add the xmlWriter saving interface" ON) +OPTION(ENABLE_XINCLUDE "Add the XInclude support" ON) +OPTION(ENABLE_XPATH "Add the XPATH support" ON) +OPTION(ENABLE_XPTR "Add the XPointer support" ON) + +SET(ADDITIONAL_LIBS "") + +find_package(Threads REQUIRED) + +# +# Find ZLIB +# +IF(ENABLE_ZLIB) + FIND_PACKAGE(ZLIB) +ELSE() + SET(ZLIB_FOUND FALSE) # Override cached value +ENDIF() +IF(ZLIB_FOUND) + INCLUDE_DIRECTORIES("${ZLIB_INCLUDE_DIR}") + LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) + SET(HAVE_ZLIB_H 1) +ENDIF(ZLIB_FOUND) +MARK_AS_ADVANCED(CLEAR ZLIB_INCLUDE_DIR) +MARK_AS_ADVANCED(CLEAR ZLIB_LIBRARY) + +# +# Find LZMA +# +IF(ENABLE_LZMA) + FIND_PACKAGE(LibLZMA) +ELSE(ENABLE_LZMA) + SET(LIBZMA_FOUND FALSE) # Override cached value +ENDIF(ENABLE_LZMA) + +IF(LIBLZMA_FOUND) + INCLUDE_DIRECTORIES("${LIBLZMA_INCLUDE_DIRS}") + LIST(APPEND ADDITIONAL_LIBS ${LIBLZMA_LIBRARIES}) +ENDIF(LIBLZMA_FOUND) + +# +# Find ICONV +# +IF(ENABLE_ICONV) + FIND_PACKAGE(Iconv) +ELSE(ENABLE_ICONV) + SET(ICONV_FOUND FALSE) # Override cached value +ENDIF(ENABLE_ICONV) + +IF(ICONV_FOUND) + INCLUDE_DIRECTORIES("${ICONV_INCLUDE_DIRS}") + LIST(APPEND ADDITIONAL_LIBS ${ICONV_LIBRARIES}) + IF(HAVE_ICONV_CONST) + SET(ICONV_CONST "const") + ELSE() + SET(ICONV_CONST " ") + ENDIF(HAVE_ICONV_CONST) +ENDIF(ICONV_FOUND) + +# +# Find ICU +# +IF(ENABLE_ICU) + FIND_PACKAGE(ICU) +ELSE(ENABLE_ICU) + SET(ICU_FOUND FALSE) # Override cached value +ENDIF(ENABLE_ICU) + +IF(ICU_FOUND) + INCLUDE_DIRECTORIES("${ICU_INCLUDE_DIRS}") + LIST(APPEND ADDITIONAL_LIBS ${ICU_LIBRARIES}) +ENDIF(ICU_FOUND) + +# +# Find m +# +TRY_COMPILE(NEED_M "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/use_pow.c" LINK_LIBRARIES m) +IF(NEED_M) + LIST(APPEND ADDITIONAL_LIBS m) +ENDIF(NEED_M) + +IF(ENABLE_IPV6) + IF(WIN32) + CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_addr "winsock2.h;ws2tcpip.h" HAVE_SOCKADDR_IN6_SIN6_ADDR) + ELSE(WIN32) + CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_addr "netinet/in.h" HAVE_SOCKADDR_IN6_SIN6_ADDR) + ENDIF(WIN32) + IF(NOT HAVE_SOCKADDR_IN6_SIN6_ADDR) + MESSAGE(WARNING "struct sockaddr_in6 not available, disabling IPv6 support") + # Force the feature off as this name is used as guard macro... + SET(ENABLE_IPV6 OFF CACHE BOOL "Define if you want to enable IPv6 support" FORCE) + ENDIF(NOT HAVE_SOCKADDR_IN6_SIN6_ADDR) +ENDIF(ENABLE_IPV6) + +FIND_PACKAGE(Threads) + +TRY_COMPILE(HAVE_GETHOSTBYNAME_CONST_ARG "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/gethostbyname_const.c" LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) +IF(HAVE_GETHOSTBYNAME_CONST_ARG) + SET(GETHOSTBYNAME_ARG_CAST " ") +ELSE(HAVE_GETHOSTBYNAME_CONST_ARG) + SET(GETHOSTBYNAME_ARG_CAST "(char *)") +ENDIF(HAVE_GETHOSTBYNAME_CONST_ARG) + +TRY_COMPILE(VA_LIST_IS_NOT_ARRAY "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/va-list-is-array.c" LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) +IF(VA_LIST_IS_NOT_ARRAY) + SET(VA_LIST_IS_ARRAY 0) +ELSE(VA_LIST_IS_NOT_ARRAY) + SET(VA_LIST_IS_ARRAY 1) +ENDIF(VA_LIST_IS_NOT_ARRAY) + +TRY_COMPILE(HAVE_SEND_CONST_ARG2 "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/send_const_arg.c" LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) +IF(HAVE_SEND_CONST_ARG2) + SET(SEND_ARG2_CAST " ") +ELSE(HAVE_SEND_CONST_ARG2) + SET(SEND_ARG2_CAST "(char *)") +ENDIF(HAVE_SEND_CONST_ARG2) + +TRY_COMPILE(HAVE_GETSOCKOPT_SOCKLEN_T "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/getsockopt_socklen_t.c" LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) +IF(HAVE_GETSOCKOPT_SOCKLEN_T) + SET(XML_SOCKLEN_T "socklen_t") +ELSE(HAVE_GETSOCKOPT_SOCKLEN_T) + TRY_COMPILE(HAVE_GETSOCKOPT_SIZE_T "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/getsockopt_size_t.c" LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) + IF(HAVE_GETSOCKOPT_SIZE_T) + SET(XML_SOCKLEN_T "size_t") + ELSE(HAVE_GETSOCKOPT_SIZE_T) + TRY_COMPILE(HAVE_GETSOCKOPT_INT "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/getsockopt_int.c" LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) + IF(HAVE_GETSOCKOPT_INT) + SET(XML_SOCKLEN_T "int") + ELSE(HAVE_GETSOCKOPT_INT) + MESSAGE(FATAL_ERROR "Could not determine getsockopt argument type") + ENDIF(HAVE_GETSOCKOPT_INT) + ENDIF(HAVE_GETSOCKOPT_SIZE_T) +ENDIF(HAVE_GETSOCKOPT_SOCKLEN_T) + +# Hacky +SET(STDC_HEADERS 1) + +# Hard dependencies on options +IF(ENABLE_SCHEMAS) + SET(ENABLE_PATTERN ON) + SET(ENABLE_REGEXPS ON) +ENDIF(ENABLE_SCHEMAS) + +IF(ENABLE_SCHEMATRON) + SET(ENABLE_PATTERN ON) + SET(ENABLE_TREE ON) + SET(ENABLE_XPATH ON) +ENDIF(ENABLE_SCHEMATRON) + +IF(ENABLE_READER) + SET(ENABLE_PUSH ON) +ENDIF(ENABLE_READER) + +IF(ENABLE_XPTR) + SET(ENABLE_XPATH ON) +ENDIF(ENABLE_XPTR) + +IF(NOT HAVE_DLOPEN) + SET(ENABLE_MODULES OFF) +ENDIF(NOT HAVE_DLOPEN) + +IF(CMAKE_USE_PTHREADS_INIT) + SET(HAVE_LIBPTHREAD 1) +ENDIF(CMAKE_USE_PTHREADS_INIT) + +# Definitions +IF(Threads_FOUND) + ADD_DEFINITIONS(-D_REENTRANT) +ENDIF(Threads_FOUND) + +SET(MODULE_EXTENSION ${CMAKE_SHARED_LIBRARY_SUFFIX}) + +# Macros & Functions +FUNCTION(generate_config) + MATH(EXPR LIBXML2_VERSION_MAJOR_STR "${LIBXML2_VERSION_MAJOR} * 100") + MATH(EXPR LIBXML2_VERSION_MINOR_STR "${LIBXML2_VERSION_MINOR} * 10") + MATH(EXPR LIBXML2_VERSION_MICRO_STR "${LIBXML2_VERSION_MICRO} * 1") + SET(LT_OBJDIR "\".libs/\"") + SET(PACKAGE "\"${PROJECT_NAME}\"") + SET(PACKAGE_BUGREPORT "\"\"") + SET(PACKAGE_NAME "\"${PROJECT_NAME}\"") + SET(PACKAGE_STRING "\"${PROJECT_NAME} ${LIBXML2_VERSION}\"") + SET(PACKAGE_TARNAME "\"${PROJECT_NAME}\"") + SET(PACKAGE_URL "\"\"") + SET(PACKAGE_VERSION "\"${LIBXML2_VERSION}\"") + SET(VERSION "\"${LIBXML2_VERSION}\"") + SET(LIBXML_VERSION_NUMBER "${LIBXML2_VERSION_MAJOR_STR}${LIBXML2_VERSION_MINOR_STR}${LIBXML2_VERSION_MICRO_STR}") + bool_to_int(WITH_TRIO 0) + bool_to_int(WITH_THREADS Threads_FOUND) + bool_to_int(WITH_THREAD_ALLOC Threads_FOUND) + bool_to_int(WITH_TREE ENABLE_TREE) + bool_to_int(WITH_OUTPUT ENABLE_OUTPUT) + bool_to_int(WITH_PUSH ENABLE_PUSH) + bool_to_int(WITH_READER ENABLE_READER) + bool_to_int(WITH_PATTERN ENABLE_PATTERN) + bool_to_int(WITH_WRITER ENABLE_WRITTER) + bool_to_int(WITH_SAX1 ENABLE_SAX1) + bool_to_int(WITH_FTP ENABLE_FTP) + bool_to_int(WITH_HTTP ENABLE_HTTP) + bool_to_int(WITH_VALID ENABLE_VALID) + bool_to_int(WITH_HTML ENABLE_HTML) + bool_to_int(WITH_LEGACY ENABLE_LEGACY) + bool_to_int(WITH_C14N ENABLE_C14N) + bool_to_int(WITH_CATALOG ENABLE_CATALOG) + bool_to_int(WITH_DOCB 0) + bool_to_int(WITH_XPATH ENABLE_XPATH) + bool_to_int(WITH_XPTR ENABLE_XPTR) + bool_to_int(WITH_XINCLUDE ENABLE_XINCLUDE) + bool_to_int(WITH_ICONV ICONV_FOUND) + bool_to_int(WITH_ICU ICU_FOUND) + bool_to_int(WITH_ISO8859X 0) + bool_to_int(WITH_DEBUG ENABLE_DEBUG) + bool_to_int(WITH_MEM_DEBUG ENABLE_MEM_DEBUG) + bool_to_int(WITH_RUN_DEBUG ENABLE_RUN_DEBUG) + bool_to_int(WITH_REGEXPS ENABLE_REGEXPS) + bool_to_int(WITH_SCHEMAS ENABLE_SCHEMAS) + bool_to_int(WITH_SCHEMATRON ENABLE_SCHEMATRON) + bool_to_int(WITH_MODULES ENABLE_MODULE) + bool_to_int(WITH_ZLIB ZLIB_FOUND) + bool_to_int(WITH_LZMA LIBLZMA_FOUND) + + bool_to_int(SUPPORT_IP6 ENABLE_IPV6) + + CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/config.h") + CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/include/libxml/xmlversion.h.in" "${CMAKE_CURRENT_BINARY_DIR}/include/libxml/xmlversion.h") +ENDFUNCTION(generate_config) + +FUNCTION(generate_pkgconfig) + SET(XML_CFLAGS "-I\${includedir}/libxml2") + SET(THREAD_LIBS "${CMAKE_THREAD_LIBS_INIT}") + SET(VERSION "${LIBXML2_VERSION}") + SET(prefix "${CMAKE_INSTALL_PREFIX}") + SET(exec_prefix "\${prefix}") + SET(libdir "\${exec_prefix}/lib") + SET(includedir "\${prefix}/include") + + # Rework LIBS + SET(LIBS ${ADDITIONAL_LIBS}) + LIST(APPEND ADDITIONAL_LIBS ${CMAKE_DL_LIBS}) + SET(_LIBS ${LIBS}) + SET(LIBS "") + FOREACH(V ${_LIBS}) + STRING(FIND "${V}" "$-l" out) + IF("${out}" EQUAL 0) + LIST(APPEND LIBS "${V}") + ELSE() + LIST(APPEND LIBS "-l${V}") + ENDIF() + ENDFOREACH() + STRING(REPLACE ";" " " LIBS "${LIBS}") + + CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libxml-2.0.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libxml-2.0.pc" @ONLY) + CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libxml-2.0-uninstalled.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libxml-2.0-uninstalled.pc" @ONLY) +ENDFUNCTION() + +FUNCTION(generate_cmake_config) + SET(LIBXML_MAJOR_VERSION ${LIBXML2_VERSION_MAJOR}) + SET(LIBXML_MINOR_VERSION ${LIBXML2_VERSION_MINOR}) + SET(LIBXML_MICRO_VERSION ${LIBXML2_VERSION_MICRO}) + SET(VERSION ${LIBXML2_VERSION}) + bool_to_int(WITH_THREADS Threads_FOUND) + bool_to_int(WITH_LZMA LIBLZMA_FOUND) + bool_to_int(WITH_ZLIB ZLIB_FOUND) + bool_to_int(WITH_MODULES ENABLE_MODULE) + + # Rework LIBS + SET(LIBS ${ADDITIONAL_LIBS}) + LIST(APPEND ADDITIONAL_LIBS ${CMAKE_DL_LIBS}) + SET(_LIBS ${LIBS}) + SET(LIBS "") + FOREACH(V ${_LIBS}) + STRING(FIND "${V}" "$-l" out) + IF("${out}" EQUAL 0) + LIST(APPEND LIBS "${V}") + ELSE() + LIST(APPEND LIBS "-l${V}") + ENDIF() + ENDFOREACH() + STRING(REPLACE ";" " " LIBS "${LIBS}") + + CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libxml2-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/libxml2-config.cmake" @ONLY) +ENDFUNCTION(generate_cmake_config) + +generate_config() +generate_pkgconfig() +generate_cmake_config() + +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}") + +SET(HEADER_FILES + "include/libxml/c14n.h" + "include/libxml/catalog.h" + "include/libxml/chvalid.h" + "include/libxml/debugXML.h" + "include/libxml/dict.h" + "include/libxml/DOCBparser.h" + "include/libxml/encoding.h" + "include/libxml/entities.h" + "include/libxml/globals.h" + "include/libxml/hash.h" + "include/libxml/HTMLparser.h" + "include/libxml/HTMLtree.h" + "include/libxml/list.h" + "include/libxml/nanoftp.h" + "include/libxml/nanohttp.h" + "include/libxml/parser.h" + "include/libxml/parserInternals.h" + "include/libxml/pattern.h" + "include/libxml/relaxng.h" + "include/libxml/SAX2.h" + "include/libxml/SAX.h" + "include/libxml/schemasInternals.h" + "include/libxml/schematron.h" + "include/libxml/threads.h" + "include/libxml/tree.h" + "include/libxml/uri.h" + "include/libxml/valid.h" + "include/libxml/xinclude.h" + "include/libxml/xlink.h" + "include/libxml/xmlautomata.h" + "include/libxml/xmlerror.h" + "include/libxml/xmlexports.h" + "include/libxml/xmlIO.h" + "include/libxml/xmlmemory.h" + "include/libxml/xmlmodule.h" + "include/libxml/xmlreader.h" + "include/libxml/xmlregexp.h" + "include/libxml/xmlsave.h" + "include/libxml/xmlschemas.h" + "include/libxml/xmlschemastypes.h" + "include/libxml/xmlstring.h" + "include/libxml/xmlunicode.h" + "include/libxml/xmlwriter.h" + "include/libxml/xpath.h" + "include/libxml/xpathInternals.h" + "include/libxml/xpointer.h" +) + +SET(SOURCE_FILES + "buf.c" + "c14n.c" + "catalog.c" + "chvalid.c" + "debugXML.c" + "dict.c" + "DOCBparser.c" + "encoding.c" + "entities.c" + "error.c" + "globals.c" + "hash.c" + "HTMLparser.c" + "HTMLtree.c" + "legacy.c" + "list.c" + "nanoftp.c" + "nanohttp.c" + "parser.c" + "parserInternals.c" + "pattern.c" + "relaxng.c" + "SAX2.c" + "SAX.c" + "schematron.c" + "threads.c" + "tree.c" + "trionan.c" + "uri.c" + "valid.c" + "xinclude.c" + "xlink.c" + "xmlIO.c" + "xmlmemory.c" + "xmlmodule.c" + "xmlreader.c" + "xmlregexp.c" + "xmlsave.c" + "xmlschemas.c" + "xmlschemastypes.c" + "xmlstring.c" + "xmlunicode.c" + "xmlwriter.c" + "xpath.c" + "xpointer.c" + "xzlib.c" +) + +IF(WITH_TRIO) + SET(SOURCE_FILES "${SOURCE_FILES}" "triostr.c" "trio.c") +ENDIF(WITH_TRIO) + +ADD_LIBRARY(xml2 "${HEADER_FILES}" "${SOURCE_FILES}") +SET_TARGET_PROPERTIES(xml2 PROPERTIES PREFIX "lib") +SET_TARGET_PROPERTIES(xml2 PROPERTIES IMPORT_PREFIX "lib") +SET_TARGET_PROPERTIES(xml2 PROPERTIES SOVERSION ${LIBXML2_VERSION_MAJOR}) +SET_TARGET_PROPERTIES(xml2 PROPERTIES VERSION ${LIBXML2_VERSION}) + +ADD_EXECUTABLE(xmllint xmllint.c) +ADD_EXECUTABLE(xmlcatalog xmlcatalog.c) +ADD_EXECUTABLE(runxmlconf runxmlconf.c) +IF(WIN32) + TARGET_LINK_LIBRARIES(xml2 wsock32 ws2_32) +ENDIF(WIN32) +TARGET_LINK_LIBRARIES(xml2 ${CMAKE_DL_LIBS} ${ADDITIONAL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) +TARGET_LINK_LIBRARIES(xmllint xml2) +TARGET_LINK_LIBRARIES(xmlcatalog xml2) +TARGET_LINK_LIBRARIES(runxmlconf xml2) + +#------------------------------------------------------------------------------ + +INSTALL(FILES ${HEADER_FILES} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libxml2/libxml") +INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/libxml/xmlversion.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libxml2/libxml") +INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/libxml-2.0.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") +INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/libxml-2.0-uninstalled.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") +INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/libxml2-config.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/libxml2") + +INSTALL(TARGETS xml2 xmllint xmlcatalog runxmlconf + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" +) diff --git a/cmake/FindIconv.cmake b/cmake/FindIconv.cmake new file mode 100644 index 0000000000000000000000000000000000000000..bbe5aee9792f723fab4b40d26000d6c77d3d3add --- /dev/null +++ b/cmake/FindIconv.cmake @@ -0,0 +1,83 @@ +# - Try to find Iconv +# Once done this will define +# +# ICONV_FOUND - system has Iconv +# ICONV_INCLUDE_DIRS - the Iconv include directory +# ICONV_LIBRARIES - Link these to use Iconv +# ICONV_DEFINITIONS - Compiler switches required for using Iconv +# +# Copyright (c) 2013 Andreas Schneider +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +include(CheckIncludeFile) +include(CheckFunctionExists) +include(CheckLibraryExists) +include(CheckPrototypeDefinition) + +find_path(ICONV_INCLUDE_DIR + NAMES + iconv.h sys/iconv.h +) + +set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) +check_include_file(iconv.h HAVE_ICONV_H) +check_include_file(sys/iconv.h HAVE_SYS_ICONV_H) +set(CMAKE_REQUIRED_INCLUDES) + +find_library(ICONV_LIBRARY + NAMES + iconv + libiconv + PATHS +) + +if (ICONV_LIBRARY) + get_filename_component(_ICONV_NAME ${ICONV_LIBRARY} NAME) + get_filename_component(_ICONV_PATH ${ICONV_LIBRARY} PATH) + check_library_exists(${_ICONV_NAME} iconv ${_ICONV_PATH} HAVE_ICONV) +else() + check_function_exists(iconv HAVE_ICONV) +endif() + +if (HAVE_ICONV_H OR HAVE_SYS_ICONV_H) + if (HAVE_ICONV_H) + set(_ICONV_PROTO_INCLUDE "iconv.h") + endif (HAVE_ICONV_H) + if (HAVE_SYS_ICONV_H) + set(_ICONV_PROTO_INCLUDE "sys/iconv.h") + endif (HAVE_SYS_ICONV_H) + + set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) + check_prototype_definition(iconv + "size_t iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)" + "-1" + ${_ICONV_PROTO_INCLUDE} + HAVE_ICONV_CONST) + set(CMAKE_REQUIRED_INCLUDES) +endif (HAVE_ICONV_H OR HAVE_SYS_ICONV_H) + +set(ICONV_INCLUDE_DIRS + ${ICONV_INCLUDE_DIR} +) + +if (ICONV_LIBRARY) + set(ICONV_LIBRARIES + ${ICONV_LIBRARIES} + ${ICONV_LIBRARY} + ) +endif (ICONV_LIBRARY) + +include(FindPackageHandleStandardArgs) +if (ICONV_LIBRARIES) + find_package_handle_standard_args(Iconv DEFAULT_MSG ICONV_LIBRARIES ICONV_INCLUDE_DIRS) +else() + find_package_handle_standard_args(Iconv DEFAULT_MSG ICONV_INCLUDE_DIRS) +endif() + +# show the ICONV_INCLUDE_DIRS and ICONV_LIBRARIES variables only in the advanced view +mark_as_advanced(ICONV_INCLUDE_DIRS ICONV_LIBRARIES) + diff --git a/cmake/config.h.in b/cmake/config.h.in new file mode 100644 index 0000000000000000000000000000000000000000..b7c76b940ad0e6e38e685befdefb57572ba5e407 --- /dev/null +++ b/cmake/config.h.in @@ -0,0 +1,283 @@ +/* Type cast for the gethostbyname() argument */ +#cmakedefine GETHOSTBYNAME_ARG_CAST @GETHOSTBYNAME_ARG_CAST@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ARPA_INET_H @HAVE_ARPA_INET_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ARPA_NAMESER_H @HAVE_ARPA_NAMESER_H@ + +/* Whether struct sockaddr::__ss_family exists */ +#cmakedefine HAVE_BROKEN_SS_FAMILY @HAVE_BROKEN_SS_FAMILY@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CTYPE_H @HAVE_CTYPE_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DIRENT_H @HAVE_DIRENT_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H @HAVE_DLFCN_H@ + +/* Have dlopen based dso */ +#cmakedefine HAVE_DLOPEN @HAVE_DLOPEN@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DL_H @HAVE_DL_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ERRNO_H @HAVE_ERRNO_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FCNTL_H @HAVE_FCNTL_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FLOAT_H @HAVE_FLOAT_H@ + +/* Define to 1 if you have the `fprintf' function. */ +#cmakedefine HAVE_FPRINTF @HAVE_FPRINTF@ + +/* Define to 1 if you have the `ftime' function. */ +#cmakedefine HAVE_FTIME @HAVE_FTIME@ + +/* Define if getaddrinfo is there */ +#cmakedefine HAVE_GETADDRINFO @HAVE_GETADDRINFO@ + +/* Define to 1 if you have the `gettimeofday' function. */ +#cmakedefine HAVE_GETTIMEOFDAY @HAVE_GETTIMEOFDAY@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H @HAVE_INTTYPES_H@ + +/* Define to 1 if you have the `isascii' function. */ +#cmakedefine HAVE_ISASCII @HAVE_ISASCII@ + +/* Define if isinf is there */ +#cmakedefine HAVE_ISINF @HAVE_ISINF@ + +/* Define if isnan is there */ +#cmakedefine HAVE_ISNAN @HAVE_ISNAN@ + +/* Define if history library is there (-lhistory) */ +#cmakedefine HAVE_LIBHISTORY @HAVE_LIBHISTORY@ + +/* Define if pthread library is there (-lpthread) */ +#cmakedefine HAVE_LIBPTHREAD @HAVE_LIBPTHREAD@ + +/* Define if readline library is there (-lreadline) */ +#cmakedefine HAVE_LIBREADLINE @HAVE_LIBREADLINE@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LIMITS_H @HAVE_LIMITS_H@ + +/* Define to 1 if you have the `localtime' function. */ +#cmakedefine HAVE_LOCALTIME @HAVE_LOCALTIME@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LZMA_H @HAVE_LZMA_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MALLOC_H @HAVE_MALLOC_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MATH_H @HAVE_MATH_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H @HAVE_MEMORY_H@ + +/* Define to 1 if you have the `mmap' function. */ +#cmakedefine HAVE_MMAP @HAVE_MMAP@ + +/* Define to 1 if you have the `munmap' function. */ +#cmakedefine HAVE_MUNMAP @HAVE_MUNMAP@ + +/* mmap() is no good without munmap() */ +#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP) +# undef /**/ HAVE_MMAP +#endif + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +#cmakedefine HAVE_NDIR_H @HAVE_NDIR_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_NETDB_H @HAVE_NETDB_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_NETINET_IN_H @HAVE_NETINET_IN_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_POLL_H @HAVE_POLL_H@ + +/* Define to 1 if you have the `printf' function. */ +#cmakedefine HAVE_PRINTF @HAVE_PRINTF@ + +/* Define if is there */ +#cmakedefine HAVE_PTHREAD_H @HAVE_PTHREAD_H@ + +/* Define to 1 if you have the `putenv' function. */ +#cmakedefine HAVE_PUTENV @HAVE_PUTENV@ + +/* Define to 1 if you have the `rand' function. */ +#cmakedefine HAVE_RAND @HAVE_RAND@ + +/* Define to 1 if you have the `rand_r' function. */ +#cmakedefine HAVE_RAND_R @HAVE_RAND_R@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_RESOLV_H @HAVE_RESOLV_H@ + +/* Have shl_load based dso */ +#cmakedefine HAVE_SHLLOAD @HAVE_SHLLOAD@ + +/* Define to 1 if you have the `signal' function. */ +#cmakedefine HAVE_SIGNAL @HAVE_SIGNAL@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SIGNAL_H @HAVE_SIGNAL_H@ + +/* Define to 1 if you have the `snprintf' function. */ +#cmakedefine HAVE_SNPRINTF @HAVE_SNPRINTF@ + +/* Define to 1 if you have the `sprintf' function. */ +#cmakedefine HAVE_SPRINTF @HAVE_SPRINTF@ + +/* Define to 1 if you have the `srand' function. */ +#cmakedefine HAVE_SRAND @HAVE_SRAND@ + +/* Define to 1 if you have the `sscanf' function. */ +#cmakedefine HAVE_SSCANF @HAVE_SSCANF@ + +/* Define to 1 if you have the `stat' function. */ +#cmakedefine HAVE_STAT @HAVE_STAT@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDARG_H @HAVE_STDARG_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H @HAVE_STDINT_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H @HAVE_STDLIB_H@ + +/* Define to 1 if you have the `strftime' function. */ +#cmakedefine HAVE_STRFTIME @HAVE_STRFTIME@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H @HAVE_STRINGS_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H @HAVE_STRING_H@ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#cmakedefine HAVE_SYS_DIR_H @HAVE_SYS_DIR_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_MMAN_H @HAVE_SYS_MMAN_H@ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#cmakedefine HAVE_SYS_NDIR_H @HAVE_SYS_NDIR_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SELECT_H @HAVE_SYS_SELECT_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SOCKET_H @HAVE_SYS_SOCKET_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H @HAVE_SYS_STAT_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TIMEB_H @HAVE_SYS_TIMEB_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TIME_H @HAVE_SYS_TIME_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H @HAVE_SYS_TYPES_H@ + +/* Define to 1 if you have the `time' function. */ +#cmakedefine HAVE_TIME @HAVE_TIME@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_TIME_H @HAVE_TIME_H@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H @HAVE_UNISTD_H@ + +/* Whether va_copy() is available */ +#cmakedefine HAVE_VA_COPY @HAVE_VA_COPY@ + +/* Define to 1 if you have the `vfprintf' function. */ +#cmakedefine HAVE_VFPRINTF @HAVE_VFPRINTF@ + +/* Define to 1 if you have the `vsnprintf' function. */ +#cmakedefine HAVE_VSNPRINTF @HAVE_VSNPRINTF@ + +/* Define to 1 if you have the `vsprintf' function. */ +#cmakedefine HAVE_VSPRINTF @HAVE_VSPRINTF@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ZLIB_H @HAVE_ZLIB_H@ + +/* Whether __va_copy() is available */ +#cmakedefine HAVE___VA_COPY @HAVE___VA_COPY@ + +/* Define as const if the declaration of iconv() needs const. */ +#cmakedefine ICONV_CONST @ICONV_CONST@ + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#cmakedefine LT_OBJDIR @LT_OBJDIR@ + +/* Name of package */ +#cmakedefine PACKAGE @PACKAGE@ + +/* Define to the address where bug reports for this package should be sent. */ +#cmakedefine PACKAGE_BUGREPORT @PACKAGE_BUGREPORT@ + +/* Define to the full name of this package. */ +#cmakedefine PACKAGE_NAME @PACKAGE_NAME@ + +/* Define to the full name and version of this package. */ +#cmakedefine PACKAGE_STRING @PACKAGE_STRING@ + +/* Define to the one symbol short name of this package. */ +#cmakedefine PACKAGE_TARNAME @PACKAGE_TARNAME@ + +/* Define to the home page for this package. */ +#cmakedefine PACKAGE_URL @PACKAGE_URL@ + +/* Define to the version of this package. */ +#cmakedefine PACKAGE_VERSION @PACKAGE_VERSION@ + +/* Type cast for the send() function 2nd arg */ +#cmakedefine SEND_ARG2_CAST @SEND_ARG2_CAST@ + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS @STDC_HEADERS@ + +/* Support for IPv6 */ +#cmakedefine SUPPORT_IP6 @SUPPORT_IP6@ + +/* Define if va_list is an array type */ +#cmakedefine VA_LIST_IS_ARRAY @VA_LIST_IS_ARRAY@ + +/* Version number of package */ +#cmakedefine VERSION @VERSION@ + +/* Determine what socket length (socklen_t) data type is */ +#cmakedefine XML_SOCKLEN_T @XML_SOCKLEN_T@ + +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#cmakedefine _UINT32_T @_UINT32_T@ + +/* ss_family is not defined here, use __ss_family instead */ +#cmakedefine ss_family @ss_family@ + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#cmakedefine uint32_t @uint32_t@ diff --git a/cmake/gethostbyname_const.c b/cmake/gethostbyname_const.c new file mode 100644 index 0000000000000000000000000000000000000000..5830f4940f6b2ec9391be93a16db8c52040148e0 --- /dev/null +++ b/cmake/gethostbyname_const.c @@ -0,0 +1,2 @@ +#include +int main() { (void)gethostbyname((const char *)""); } diff --git a/cmake/getsockopt_int.c b/cmake/getsockopt_int.c new file mode 100644 index 0000000000000000000000000000000000000000..d5ea6ce979976eced372b699e98898e67cb5cbeb --- /dev/null +++ b/cmake/getsockopt_int.c @@ -0,0 +1,10 @@ +#ifdef _WIN32 +#include +#include +#else +#include +#include +#include +#endif + +int main() {(void)getsockopt (1, 1, 1, NULL, (int *)NULL);} diff --git a/cmake/getsockopt_size_t.c b/cmake/getsockopt_size_t.c new file mode 100644 index 0000000000000000000000000000000000000000..00fd2baf642ad6c68871200072f9b85915504d46 --- /dev/null +++ b/cmake/getsockopt_size_t.c @@ -0,0 +1,10 @@ +#ifdef _WIN32 +#include +#include +#else +#include +#include +#include +#endif + +int main() {(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL);} diff --git a/cmake/getsockopt_socklen_t.c b/cmake/getsockopt_socklen_t.c new file mode 100644 index 0000000000000000000000000000000000000000..960c6da44309c4812f261449e995ff36135de8d8 --- /dev/null +++ b/cmake/getsockopt_socklen_t.c @@ -0,0 +1,10 @@ +#ifdef _WIN32 +#include +#include +#else +#include +#include +#include +#endif + +int main() {(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL);} diff --git a/cmake/send_const_arg.c b/cmake/send_const_arg.c new file mode 100644 index 0000000000000000000000000000000000000000..3b04193e28817615eb998d9209508c16ad77393c --- /dev/null +++ b/cmake/send_const_arg.c @@ -0,0 +1,9 @@ +#ifdef _WIN32 +#include +#include +#else +#include +#include +#endif + +int main() { (void)send(1,(const char *)"",1,1); } diff --git a/cmake/use_pow.c b/cmake/use_pow.c new file mode 100644 index 0000000000000000000000000000000000000000..32b081f7a1377f46bc3595c689759208e7036baa --- /dev/null +++ b/cmake/use_pow.c @@ -0,0 +1,2 @@ +#include +int main(void) {return pow(2, 2.5);} diff --git a/cmake/va-list-is-array.c b/cmake/va-list-is-array.c new file mode 100644 index 0000000000000000000000000000000000000000..1ad0babe33a7202588a81807c63152d7c5f3db87 --- /dev/null +++ b/cmake/va-list-is-array.c @@ -0,0 +1,9 @@ +#include + +void foo() +{ + va_list list1, list2; + list1 = list2; +} + +int main() {}