diff --git i/CMakeLists.txt w/CMakeLists.txt index 036ab73..0bab8c7 100644 --- i/CMakeLists.txt +++ w/CMakeLists.txt @@ -87,33 +87,6 @@ else() set(DISABLE_JOURNALD ON) endif () -# shared library - -add_library(yder SHARED ${LIB_SRC}) -if (NOT MSVC) - set_target_properties(yder PROPERTIES - COMPILE_OPTIONS -Wextra - PUBLIC_HEADER "${INC_DIR}/yder.h;${PROJECT_BINARY_DIR}/yder-cfg.h" - VERSION "${LIBRARY_VERSION}" - SOVERSION "${LIBRARY_SOVERSION}") -endif() -if (WIN32) - set_target_properties(yder PROPERTIES SUFFIX "-${LIBRARY_VERSION_MAJOR}.dll") -endif () - -target_link_libraries(yder ${LIBS} ${ORCANIA_LIBRARIES} ${SYSTEMD_LIBRARIES}) - -# static library - -option(BUILD_STATIC "Build static library." OFF) - -if (BUILD_STATIC) - add_library(yder_static STATIC ${LIB_SRC}) - target_compile_definitions(yder_static PUBLIC -DO_STATIC_LIBRARY) - set_target_properties(yder_static PROPERTIES - OUTPUT_NAME yder) -endif () - option (SEARCH_ORCANIA "Search for Orcania library" ON) if (SEARCH_ORCANIA) set(Orcania_FIND_QUIETLY ON) # force to find Orcania quietly @@ -145,6 +118,33 @@ else () set(PKGCONF_REQ_PRIVATE "liborcania") endif () +# shared library + +add_library(yder SHARED ${LIB_SRC}) +if (NOT MSVC) + set_target_properties(yder PROPERTIES + COMPILE_OPTIONS -Wextra + PUBLIC_HEADER "${INC_DIR}/yder.h;${PROJECT_BINARY_DIR}/yder-cfg.h" + VERSION "${LIBRARY_VERSION}" + SOVERSION "${LIBRARY_SOVERSION}") +endif() +if (WIN32) + set_target_properties(yder PROPERTIES SUFFIX "-${LIBRARY_VERSION_MAJOR}.dll") +endif () + +target_link_libraries(yder ${LIBS} ${ORCANIA_LIBRARIES} ${SYSTEMD_LIBRARIES}) + +# static library + +option(BUILD_STATIC "Build static library." OFF) + +if (BUILD_STATIC) + add_library(yder_static STATIC ${LIB_SRC}) + target_compile_definitions(yder_static PUBLIC -DO_STATIC_LIBRARY) + set_target_properties(yder_static PROPERTIES + OUTPUT_NAME yder) +endif () + # build yder-cfg.h file configure_file(${INC_DIR}/yder-cfg.h.in ${PROJECT_BINARY_DIR}/yder-cfg.h) set (CMAKE_EXTRA_INCLUDE_FILES ${PROJECT_BINARY_DIR}) @@ -168,10 +168,9 @@ if (BUILD_YDER_TESTING) set(CMAKE_CTEST_COMMAND ctest -V) set(TST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test) - set(LIBS yder ${LIBS} ${CHECK_LIBRARIES}) if (NOT WIN32) find_package(Threads REQUIRED) - set(LIBS ${LIBS} ${SUBUNIT_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} m rt) + set(LIBS yder ${LIBS} ${SUBUNIT_LIBRARIES} ${ORCANIA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${CHECK_LIBRARIES} m) endif () set(TESTS yder_test) @@ -186,7 +185,6 @@ if (BUILD_YDER_TESTING) target_include_directories(${t} PUBLIC ${TST_DIR}) target_link_libraries(${t} PUBLIC ${LIBS}) add_test(NAME ${t} - WORKING_DIRECTORY ${TST_DIR} COMMAND ${t}) endforeach () endif () diff --git i/src/yder.c w/src/yder.c index 3122e3f..79e4e70 100644 --- i/src/yder.c +++ w/src/yder.c @@ -236,11 +236,12 @@ static int y_write_log(const char * app_name, if (cur_mode & Y_LOG_MODE_SYSLOG) { y_write_log_syslog(cur_app_name, level, message); } - #ifndef Y_DISABLE_JOURNALD +#endif + +#if !defined(_WIN32) && !defined(Y_DISABLE_JOURNALD) if (cur_mode & Y_LOG_MODE_JOURNALD) { y_write_log_journald(cur_app_name, level, message); } - #endif #endif if (cur_mode & Y_LOG_MODE_FILE) { y_write_log_file(cur_app_name, now, cur_log_file, level, message); @@ -266,18 +267,20 @@ static int y_write_log(const char * app_name, */ int y_init_logs(const char * app, const unsigned long init_mode, const unsigned long init_level, const char * init_log_file, const char * message) { #ifdef _WIN32 - if (init_mode & Y_LOG_MODE_SYSLOG) { - perror("syslog mode not supported on your architecture"); - return 0; - } else if (init_mode & Y_LOG_MODE_JOURNALD) { - perror("journald mode not supported on your architecture"); - return 0; - } else { - return y_write_log(app, init_mode, init_level, init_log_file, NULL, NULL, Y_LOG_LEVEL_INFO, message); - } -#else - return y_write_log(app, init_mode, init_level, init_log_file, NULL, NULL, Y_LOG_LEVEL_INFO, message); + if (init_mode & Y_LOG_MODE_SYSLOG) { + perror("syslog mode not supported on your architecture"); + return 0; + } #endif + +#if defined(_WIN32) || defined(Y_DISABLE_JOURNALD) + if (init_mode & Y_LOG_MODE_JOURNALD) { + perror("journald mode not supported on your architecture"); + return 0; + } +#endif + + return y_write_log(app, init_mode, init_level, init_log_file, NULL, NULL, Y_LOG_LEVEL_INFO, message); } /** diff --git i/test/yder_test.c w/test/yder_test.c index a10fd9f..b73fb16 100644 --- i/test/yder_test.c +++ w/test/yder_test.c @@ -27,7 +27,11 @@ START_TEST(test_yder_init) y_close_logs(); ck_assert_int_eq(y_init_logs("test_yder_syslog", Y_LOG_MODE_SYSLOG, Y_LOG_LEVEL_DEBUG, NULL, "third test"), 1); y_close_logs(); +#ifndef Y_DISABLE_JOURNALD ck_assert_int_eq(y_init_logs("test_yder_journald", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_DEBUG, NULL, "fourth test"), 1); +#else + ck_assert_int_eq(y_init_logs("test_yder_journald", Y_LOG_MODE_JOURNALD, Y_LOG_LEVEL_DEBUG, NULL, "fourth test"), 0); +#endif y_close_logs(); ck_assert_int_eq(y_init_logs("test_yder_file_fail", Y_LOG_MODE_FILE, Y_LOG_LEVEL_DEBUG, "/nope/nope", "second test"), 0); }