123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- # 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 10)
- set (log4cplus_postfix "")
- option(LOG4CPLUS_BUILD_TESTING "Build the test suite." ON)
- option(LOG4CPLUS_BUILD_LOGGINGSERVER "Build the logging server." ON)
- 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 (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.")
- option(LOG4CPLUS_ENABLE_DECORATED_LIBRARY_NAME
- "Turns on resulting file name decoration for static and UNICODE builds." ON)
- if (LOG4CPLUS_ENABLE_DECORATED_LIBRARY_NAME)
- if (NOT ${BUILD_SHARED_LIBS})
- # set S-prefix for static build
- set (log4cplus_postfix "${log4cplus_postfix}S")
- endif ()
- if (UNICODE)
- set (log4cplus_postfix "${log4cplus_postfix}U")
- endif (UNICODE)
- endif (LOG4CPLUS_ENABLE_DECORATED_LIBRARY_NAME)
- set (log4cplus "log4cplus${log4cplus_postfix}")
- if (WITH_ICONV)
- set(LOG4CPLUS_WITH_ICONV 1)
- endif ()
- 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)
- include(Log4CPlusCPack.cmake)
|