You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.7 KiB
143 lines
4.7 KiB
# This block needs to stay before the project (log4cplus) line so that
|
|
# the output files placed into Android's libs directory.
|
|
if (CMAKE_TOOLCHAIN_FILE)
|
|
get_filename_component(TOOL_CHAIN_FILE_NAME "${CMAKE_TOOLCHAIN_FILE}" NAME_WE)
|
|
if("${TOOL_CHAIN_FILE_NAME}" MATCHES "android.toolchain")
|
|
# Android: set output folder to ${CMAKE_BINARY_DIR}
|
|
set (LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR} CACHE PATH
|
|
"root for library output, set this to change where Android libs are compiled to")
|
|
endif()
|
|
endif ()
|
|
# Remove when CMake >= 2.8.4 is required
|
|
set (CMAKE_LEGACY_CYGWIN_WIN32 0)
|
|
|
|
project (log4cplus)
|
|
cmake_minimum_required (VERSION 2.8.4)
|
|
|
|
enable_language (CXX)
|
|
include(GNUInstallDirs)
|
|
|
|
include (Log4CPlusUtils.cmake)
|
|
log4cplus_get_version ("${PROJECT_SOURCE_DIR}/include"
|
|
log4cplus_version_major log4cplus_version_minor log4cplus_version_patch)
|
|
message("-- Generating build for Log4cplus version ${log4cplus_version_major}.${log4cplus_version_minor}.${log4cplus_version_patch}")
|
|
set (log4cplus_soversion 9)
|
|
set (log4cplus_postfix "")
|
|
|
|
option(LOG4CPLUS_BUILD_TESTING "Build the test suite." OFF)
|
|
|
|
option(LOG4CPLUS_BUILD_LOGGINGSERVER "Build the logging server." OFF)
|
|
|
|
option(LOG4CPLUS_DEFINE_INSTALL_TARGET "Whether the install target should be generated." OFF)
|
|
|
|
if(NOT LOG4CPLUS_SINGLE_THREADED)
|
|
find_package (Threads)
|
|
message (STATUS "Threads: ${CMAKE_THREAD_LIBS_INIT}")
|
|
endif(NOT LOG4CPLUS_SINGLE_THREADED)
|
|
|
|
set(BUILD_SHARED_LIBS TRUE CACHE BOOL "If TRUE, log4cplus is built as a shared library, otherwise as a static library")
|
|
|
|
if (WIN32)
|
|
set (UNICODE_DEFAULT ON)
|
|
else (WIN32)
|
|
set (UNICODE_DEFAULT OFF)
|
|
endif (WIN32)
|
|
|
|
if (MSVC)
|
|
set (LOG4CPLUS_WORKING_LOCALE_DEFAULT ON)
|
|
else (MSVC)
|
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
set (LOG4CPLUS_WORKING_LOCALE_DEFAULT OFF)
|
|
endif (MSVC)
|
|
|
|
option(LOG4CPLUS_WORKING_LOCALE "Define for compilers/standard libraries that support more than just the C locale."
|
|
${LOG4CPLUS_WORKING_LOCALE_DEFAULT})
|
|
|
|
option(LOG4CPLUS_WORKING_C_LOCALE
|
|
"Define for compilers/standard libraries that have working C locale."
|
|
OFF)
|
|
|
|
option (LOG4CPLUS_QT4 "Build with Qt4DebugAppender" OFF)
|
|
|
|
option(UNICODE "Build with tchar = wchar_t" ${UNICODE_DEFAULT})
|
|
|
|
option(WITH_ICONV "Use iconv() for char->wchar_t conversion."
|
|
OFF)
|
|
|
|
option(ENABLE_SYMBOLS_VISIBILITY
|
|
"Enable compiler and platform specific options for symbols visibility"
|
|
ON)
|
|
|
|
set(_WIN32_WINNT 0x0500 CACHE STRING "Define Windows API version to use.")
|
|
|
|
if (NOT ${BUILD_SHARED_LIBS})
|
|
# set S-prefix for static build
|
|
set (log4cplus_postfix "${log4cplus_postfix}S")
|
|
endif()
|
|
|
|
if (UNICODE AND (DEFINED LOG4CPLUS_USE_UNICODE AND LOG4CPLUS_USE_UNICODE))
|
|
set (log4cplus_postfix "${log4cplus_postfix}U")
|
|
message(STATUS "Log4CPlus - Using Unicode: YES")
|
|
else()
|
|
message(STATUS "Log4CPlus - Using Unicode: NO")
|
|
set(UNICODE OFF)
|
|
endif()
|
|
|
|
if (WITH_ICONV)
|
|
set(LOG4CPLUS_WITH_ICONV 1)
|
|
endif ()
|
|
|
|
set (log4cplus "log4cplus${log4cplus_postfix}")
|
|
|
|
if(LOG4CPLUS_CONFIGURE_CHECKS_PATH)
|
|
get_filename_component(LOG4CPLUS_CONFIGURE_CHECKS_PATH "${LOG4CPLUS_CONFIGURE_CHECKS_PATH}" ABSOLUTE)
|
|
endif()
|
|
|
|
if(LOG4CPLUS_CONFIGURE_CHECKS_PATH AND EXISTS ${LOG4CPLUS_CONFIGURE_CHECKS_PATH})
|
|
message(STATUS "Custom ConfigureChecks script found: ${LOG4CPLUS_CONFIGURE_CHECKS_PATH}")
|
|
else()
|
|
set(LOG4CPLUS_CONFIGURE_CHECKS_PATH "ConfigureChecks.cmake")
|
|
endif()
|
|
|
|
include(${LOG4CPLUS_CONFIGURE_CHECKS_PATH})
|
|
|
|
# Prepare defines.hxx.cmake from defines.hxx.in by doing a bit of
|
|
# string manipulation.
|
|
file(READ include/log4cplus/config/defines.hxx.in FILE_BUFFER)
|
|
string(REGEX REPLACE "#undef[^a-zA-Z0-9_]+([a-zA-Z0-9_]+)"
|
|
"#cmakedefine \\1 @\\1@" FILE_BUFFER "${FILE_BUFFER}")
|
|
set(DEFINES_HXX_CMAKE
|
|
${log4cplus_BINARY_DIR}/include/log4cplus/config/defines.hxx.cmake)
|
|
set(DEFINES_HXX ${log4cplus_BINARY_DIR}/include/log4cplus/config/defines.hxx)
|
|
file(WRITE ${DEFINES_HXX_CMAKE} ${FILE_BUFFER})
|
|
|
|
configure_file(${DEFINES_HXX_CMAKE} ${DEFINES_HXX} @ONLY)
|
|
|
|
include_directories (${log4cplus_SOURCE_DIR}/include
|
|
${log4cplus_BINARY_DIR}/include
|
|
)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
|
|
|
if (LOG4CPLUS_BUILD_TESTING)
|
|
enable_testing()
|
|
endif (LOG4CPLUS_BUILD_TESTING)
|
|
|
|
add_subdirectory (src)
|
|
|
|
if (LOG4CPLUS_BUILD_LOGGINGSERVER)
|
|
add_subdirectory (loggingserver)
|
|
endif (LOG4CPLUS_BUILD_LOGGINGSERVER)
|
|
|
|
if (LOG4CPLUS_BUILD_TESTING)
|
|
add_subdirectory (tests)
|
|
endif (LOG4CPLUS_BUILD_TESTING)
|
|
if (LOG4CPLUS_QT4)
|
|
add_subdirectory (qt4debugappender)
|
|
endif (LOG4CPLUS_QT4)
|
|
|
|
if (LOG4CPLUS_DEFINE_INSTALL_TARGET)
|
|
include(Log4CPlusCPack.cmake)
|
|
endif()
|
|
|
|
MARK_AS_ADVANCED(ENABLE_SYMBOLS_VISIBILITY _WIN32_WINNT WITH_ICONV LOG4CPLUS_WORKING_C_LOCALE LOG4CPLUS_WORKING_LOCALE LOG4CPLUS_BUILD_LOGGINGSERVER LOG4CPLUS_BUILD_TESTING LOG4CPLUS_DEFINE_INSTALL_TARGET LOG4CPLUS_QT4)
|