| # Configure |
| if(WIN32) |
| add_custom_target(configure_log4cxx |
| COMMAND "${CMAKE_COMMAND}" -E copy_if_different |
| ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/log4cxx.hw |
| ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/log4cxx.h |
| COMMAND "${CMAKE_COMMAND}" -E copy_if_different |
| ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/private/log4cxx_private.hw |
| ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/private/log4cxx_private.h |
| DEPENDS |
| ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/log4cxx.hw |
| ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/private/log4cxx_private.hw |
| BYPRODUCTS |
| ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/log4cxx.h |
| ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/private/log4cxx_private.h |
| ) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/version_info.h.in |
| ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/version_info.h |
| @ONLY |
| ) |
| else() |
| # Configure log4cxx.h |
| set(LOG4CXX_CHAR "utf-8" CACHE STRING "Interal character representation, choice of utf-8 (default), wchar_t, unichar") |
| set_property(CACHE LOG4CXX_CHAR PROPERTY STRINGS "utf-8" "wchar_t" "unichar") |
| set(LOGCHAR_IS_UNICHAR 0) |
| set(LOGCHAR_IS_WCHAR 0) |
| set(LOGCHAR_IS_UTF8 0) |
| if(${LOG4CXX_CHAR} STREQUAL "unichar") |
| set(LOGCHAR_IS_UNICHAR 1) |
| elseif(${LOG4CXX_CHAR} STREQUAL "wchar_t") |
| set(LOGCHAR_IS_WCHAR 1) |
| else() |
| set(LOGCHAR_IS_UTF8 1) |
| endif() |
| option(LOG4CXX_WCHAR_T "Enable wchar_t API methods" ON) |
| option(LOG4CXX_UNICHAR "Enable UniChar API methods" OFF) |
| if(APPLE) |
| option(LOG4CXX_CFSTRING "Enable CFString API methods, requires Mac OS/X CoreFoundation" OFF) |
| endif() |
| set(CHAR_API 1) |
| foreach(varName WCHAR_T UNICHAR CFSTRING ) |
| if(${LOG4CXX_${varName}}) |
| set("${varName}_API" 1) |
| else() |
| set("${varName}_API" 0) |
| endif() |
| endforeach() |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/log4cxx.h.in |
| ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/log4cxx.h |
| @ONLY |
| ) |
| |
| # Configure log4cxx_private.h |
| set(LOG4CXX_CHARSET "locale" CACHE STRING "LogString characters, choice of locale (default), utf-8, ISO-8859-1, US-ASCII, EBCDIC") |
| set_property(CACHE LOG4CXX_CHARSET PROPERTY STRINGS "locale" "utf-8" "ISO-8859-1" "US-ASCII" "EBCDIC") |
| set(CHARSET_EBCDIC 0) |
| set(CHARSET_USASCII 0) |
| set(CHARSET_ISO88591 0) |
| set(CHARSET_UTF8 0) |
| if(${LOG4CXX_CHARSET} STREQUAL "EBCDIC") |
| set(CHARSET_EBCDIC 1) |
| elseif(${LOG4CXX_CHARSET} STREQUAL "US-ASCII") |
| set(CHARSET_USASCII 1) |
| elseif(${LOG4CXX_CHARSET} STREQUAL "ISO-8859-1") |
| set(CHARSET_ISO88591 1) |
| elseif(${LOG4CXX_CHARSET} STREQUAL "utf-8") |
| set(CHARSET_UTF8 1) |
| endif() |
| |
| option(LOG4CXX_HAS_STD_LOCALE "Is the standard locale header available?" OFF) |
| option(LOG4CXX_HAS_ODBC "Build with ODBC appender?" OFF) |
| option(LOG4CXX_HAS_MBSRTOWCS "Default character encoder converts multi-byte string to LogString using mbstowcs()?" OFF) |
| option(LOG4CXX_HAS_WCSTOMBS "Default wide character encoder converts using wcstombs()?" OFF) |
| option(LOG4CXX_HAS_FWIDE "Is the fwide(fd) function available?" OFF) |
| option(LOG4CXX_HAS_LIBESMTP "Use libESMTP in SMTPAppender?" OFF) |
| option(LOG4CXX_HAS_SYSLOG "Is the syslog function available?" OFF) |
| |
| foreach(varName HAS_STD_LOCALE HAS_ODBC HAS_MBSRTOWCS HAS_WCSTOMBS HAS_FWIDE HAS_LIBESMTP HAS_SYSLOG) |
| if(${LOG4CXX_${varName}}) |
| set(${varName} 1) |
| else() |
| set(${varName} 0) |
| endif() |
| endforeach() |
| |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/private/log4cxx_private.h.in |
| ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/private/log4cxx_private.h |
| @ONLY |
| ) |
| |
| # Provide the dependencies |
| add_custom_target(configure_log4cxx |
| COMMAND "${CMAKE_COMMAND}" -E echo "Checking configuration" |
| DEPENDS |
| ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/log4cxx.h.in |
| ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx/private/log4cxx_private.h.in |
| BYPRODUCTS |
| ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/log4cxx.h |
| ${CMAKE_CURRENT_BINARY_DIR}/log4cxx/private/log4cxx_private.h |
| ) |
| endif() |