FIND_PACKAGE(ZLIB) IF(ZLIB_LIBRARY) SET(HAVE_ZLIB 1) SET(HAVE_ZLIB_H 1) include_directories(${ZLIB_INCLUDE_DIR}) ELSE(ZLIB_LIBRARY) SET(ZLIB_LIBRARY "") SET(ZLIB_INCLUDE_DIR "") ENDIF(ZLIB_LIBRARY) FIND_PACKAGE(Threads) INCLUDE(CheckIncludeFile) IF(Threads_FOUND) CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H) add_definitions(-DLIBXML_THREAD_ENABLED) ENDIF(Threads_FOUND) IF(CMAKE_USE_PTHREADS_INIT) SET(HAVE_LIBPTHREAD 1) ENDIF(CMAKE_USE_PTHREADS_INIT) CHECK_INCLUDE_FILE(ansidecl.h HAVE_ANSIDECL_H) CHECK_INCLUDE_FILE(arpa/inet.h HAVE_ARPA_INET_H) CHECK_INCLUDE_FILE(arpa/nameser.h HAVE_ARPA_NAMESER_H) CHECK_INCLUDE_FILE(ctype.h HAVE_CTYPE_H) CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H) CHECK_INCLUDE_FILE(dl.h HAVE_DL_H) CHECK_INCLUDE_FILE(errno.h HAVE_ERRNO_H) CHECK_INCLUDE_FILE(fcntl.h HAVE_FCNTL_H) CHECK_INCLUDE_FILE(float.h HAVE_FLOAT_H) CHECK_INCLUDE_FILE(fp_class.h HAVE_FP_CLASS_H) CHECK_INCLUDE_FILE(ieeefp.h HAVE_IEEEFP_H) CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H) CHECK_INCLUDE_FILE(inttypes.h.h HAVE_INTTYPES_H_H) CHECK_INCLUDE_FILE(limits.h HAVE_LIMITS_H) CHECK_INCLUDE_FILE(malloc.h HAVE_MALLOC_H) CHECK_INCLUDE_FILE(math.h HAVE_MATH_H) CHECK_INCLUDE_FILE(memory.h HAVE_MEMORY_H) CHECK_INCLUDE_FILE(nan.h HAVE_NAN_H) CHECK_INCLUDE_FILE(ndir.h HAVE_NDIR_H) CHECK_INCLUDE_FILE(netdb.h HAVE_NETDB_H) CHECK_INCLUDE_FILE(netinet/in.h HAVE_NETINET_IN_H) CHECK_INCLUDE_FILE(poll.h HAVE_POLL_H) CHECK_INCLUDE_FILE(resolv.h HAVE_RESOLV_H) CHECK_INCLUDE_FILE(signal.h HAVE_SIGNAL_H) CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H) CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H) CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H) CHECK_INCLUDE_FILE(strings.h HAVE_STRINGS_H) CHECK_INCLUDE_FILE(string.h HAVE_STRING_H) #CHECK_INCLUDE_FILE(sys/dir.h HAVE_SYS_DIR_H) CHECK_INCLUDE_FILE(sys/mman.h HAVE_SYS_MMAN_H) CHECK_INCLUDE_FILE(sys/ndir.h HAVE_SYS_NDIR_H) CHECK_INCLUDE_FILE(sys/select.h HAVE_SYS_SELECT_H) CHECK_INCLUDE_FILE(sys/socket.h HAVE_SYS_SOCKET_H) CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H) CHECK_INCLUDE_FILE(sys/timeb.h HAVE_SYS_TIMEB_H) CHECK_INCLUDE_FILE(sys/time.h HAVE_SYS_TIME_H) CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H) CHECK_INCLUDE_FILE(time.h HAVE_TIME_H) CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) INCLUDE(CheckFunctionExists) CHECK_FUNCTION_EXISTS(finite HAVE_FINITE) CHECK_FUNCTION_EXISTS(printf HAVE_PRINTF) CHECK_FUNCTION_EXISTS(fprintf HAVE_FPRINTF) CHECK_FUNCTION_EXISTS(sprintf HAVE_SPRINTF) CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF) CHECK_FUNCTION_EXISTS(vfprintf HAVE_VFPRINTF) CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF) CHECK_FUNCTION_EXISTS(vsprintf HAVE_VSPRINTF) CHECK_FUNCTION_EXISTS(ftime HAVE_FTIME) CHECK_FUNCTION_EXISTS(getaddrinfo HAVE_GETADDRINFO) CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) CHECK_FUNCTION_EXISTS(isinf HAVE_ISINF) CHECK_FUNCTION_EXISTS(isnan HAVE_ISNAN) CHECK_FUNCTION_EXISTS(localtime HAVE_LOCALTIME) CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL) CHECK_FUNCTION_EXISTS(sscanf HAVE_SSCANF) IF(NOT MSVC) CHECK_FUNCTION_EXISTS(stat HAVE_STAT) ELSE(NOT MSVC) SET(HAVE_STAT 0) ENDIF(NOT MSVC) CHECK_FUNCTION_EXISTS(strdup HAVE_STRDUP) CHECK_FUNCTION_EXISTS(strndup HAVE_STRNDUP) CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR) CHECK_FUNCTION_EXISTS(strftime HAVE_STRFTIME) INCLUDE(CheckCSourceCompiles) SET(va_copy_srcs " #include va_list ap1,ap2; int main () { va_copy(ap1,ap2); return 0; } ") CHECK_C_SOURCE_COMPILES("${va_copy_srcs}" HAVE_VA_COPY) CHECK_FUNCTION_EXISTS(__va_copy HAVE___VA_COPY) INCLUDE(CheckLibraryExists) CHECK_LIBRARY_EXISTS(dl dlopen "" HAVE_STD_DLOPEN) IF(HAVE_STD_DLOPEN) set(DL_LIBRARY "dl") SET(HAVE_DLOPEN 1) ELSE(HAVE_STD_DLOPEN) CHECK_LIBRARY_EXISTS(c dlopen "" HAVE_C_DLOPEN) IF(HAVE_C_DLOPEN) set(DL_LIBRARY "c") SET(HAVE_DLOPEN 1) ENDIF(HAVE_C_DLOPEN) ENDIF(HAVE_STD_DLOPEN) CHECK_LIBRARY_EXISTS(m pow "" HAVE_MATH_LIB) IF(HAVE_MATH_LIB) set(M_LIBRARY "m") ENDIF(HAVE_MATH_LIB) SET(WITH_TRIO 0) IF(CMAKE_THREAD_LIBS_INIT OR MSVC) SET(WITH_THREADS 1) ELSE(CMAKE_THREAD_LIBS_INIT OR MSVC) SET(WITH_THREADS 0) ENDIF(CMAKE_THREAD_LIBS_INIT OR MSVC) SET(WITH_TREE 1) SET(WITH_OUTPUT 1) SET(WITH_PUSH 1) SET(WITH_READER 1) SET(WITH_PATTERN 1) SET(WITH_WRITER 1) SET(WITH_SAX1 1) SET(WITH_FTP 0) SET(WITH_HTTP 0) SET(WITH_VALID 1) SET(WITH_HTML 1) SET(WITH_LEGACY 1) SET(WITH_C14N 1) SET(WITH_CATALOG 1) SET(WITH_DOCB 1) SET(WITH_XPATH 1) SET(WITH_XPTR 1) SET(WITH_XINCLUDE 1) SET(WITH_ICONV 0) SET(WITH_ICU 0) SET(WITH_ISO8859X 1) SET(WITH_DEBUG 1) SET(WITH_MEM_DEBUG 0) SET(WITH_RUN_DEBUG 0) SET(WITH_REGEXPS 1) SET(WITH_SCHEMAS 1) SET(WITH_SCHEMATRON 1) SET(WITH_MODULES 0) SET(WITH_ZLIB 1) SET(LIBXML_VERSION "2.7.8") SET(LIBXML_VERSION_NUMBER "20708") SET(LIBXML_VERSION_EXTRA "-BRLCAD") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/libxml/xmlversion.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/libxml/xmlversion.h) IF(WIN32) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/libxml/xmlwin32version.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/libxml/xmlwin32version.h) ENDIF(WIN32) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/libxml/config.h) add_definitions(-DHAVE_CONFIG_H) include_directories( ${CMAKE_CURRENT_BINARY_DIR}/../include ${CMAKE_CURRENT_BINARY_DIR}/../include/libxml/ ${CMAKE_CURRENT_SOURCE_DIR}/include /usr/local/include ) IF(WITH_TRIO) SET(trio_srcs src/trio.c src/triostr.c ) ELSE(WITH_TRIO) SET(trio_srcs src/trionan.c ) ENDIF(WITH_TRIO) SET(libxml_srcs src/DOCBparser.c src/HTMLparser.c src/HTMLtree.c src/SAX.c src/SAX2.c src/c14n.c src/catalog.c src/chvalid.c src/debugXML.c src/dict.c src/encoding.c src/entities.c src/error.c src/globals.c src/hash.c src/list.c src/parser.c src/parserInternals.c src/pattern.c src/relaxng.c src/schematron.c src/threads.c src/tree.c ${trio_srcs} src/uri.c src/valid.c src/xinclude.c src/xlink.c src/xlink.c src/xmlIO.c src/xmlmemory.c src/xmlmodule.c src/xmlreader.c src/xmlregexp.c src/xmlsave.c src/xmlschemas.c src/xmlschemastypes.c src/xmlstring.c src/xmlwriter.c src/xmlunicode.c src/xpath.c src/xpointer.c ) add_library(xml SHARED ${libxml_srcs}) target_link_libraries(xml ${ZLIB_LIBRARY} ${DL_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${M_LIBRARY})