Use automatic checks instead of options for log4cxx_private.h configuration
diff --git a/src/main/include/CMakeLists.txt b/src/main/include/CMakeLists.txt
index 1939886..d1a0bb2 100644
--- a/src/main/include/CMakeLists.txt
+++ b/src/main/include/CMakeLists.txt
@@ -67,22 +67,38 @@
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)
+#
+# Test for various functions
+#
+include(CheckFunctionExists)
+include(CheckCXXSymbolExists)
+include(CheckIncludeFiles)
+include(CheckIncludeFileCXX)
+include(CheckLibraryExists)
+
+CHECK_INCLUDE_FILE_CXX(locale HAS_STD_LOCALE)
+CHECK_INCLUDE_FILES(sqlext.h HAS_ODBC)
+CHECK_FUNCTION_EXISTS(mbsrtowcs HAS_MBSRTOWCS)
+CHECK_FUNCTION_EXISTS(wcstombs HAS_WCSTOMBS)
+CHECK_FUNCTION_EXISTS(fwide HAS_FWIDE)
+CHECK_LIBRARY_EXISTS(esmtp smtp_create_session "" HAS_LIBESMTP)
+CHECK_FUNCTION_EXISTS(syslog HAS_SYSLOG)
foreach(varName HAS_STD_LOCALE HAS_ODBC HAS_MBSRTOWCS HAS_WCSTOMBS HAS_FWIDE HAS_LIBESMTP HAS_SYSLOG)
- if(${LOG4CXX_${varName}})
- set(${varName} 1)
+ if(${varName} EQUAL 0)
+ continue()
+ elseif(${varName} EQUAL 1)
+ continue()
+ elseif("${varName}" STREQUAL "ON")
+ set(${varName} 1 )
+ elseif("${varName}" STREQUAL "OFF")
+ set(${varName} 0 )
else()
- set(${varName} 0)
+ 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