From 1de3044df18c4f7e96b30d55f60793e73a080ad7 Mon Sep 17 00:00:00 2001 From: Dzhoshkun Ismail Shakir Date: Fri, 13 Nov 2015 14:32:58 +0000 Subject: [PATCH 1/6] working only with Qt5 now, also added example application --- CMakeLists.txt | 8 ++++++-- sample/main.cpp | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 sample/main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d69800..2113264 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(CuteLogger) -FIND_PACKAGE(Qt4 COMPONENTS QtCore REQUIRED) -INCLUDE(${QT_USE_FILE}) +FIND_PACKAGE(Qt5Core REQUIRED) ADD_DEFINITIONS(-DCUTELOGGER_LIBRARY) @@ -40,4 +39,9 @@ SET(library_target Logger) ADD_LIBRARY(${library_target} SHARED ${sources} ${includes}) TARGET_LINK_LIBRARIES(${library_target} ${QT_LIBRARIES}) +QT5_USE_MODULES(${library_target} Core) INSTALL(TARGETS ${library_target} DESTINATION lib) + +SET(executable_target LoggerEx) +ADD_EXECUTABLE(${executable_target} sample/main.cpp) +TARGET_LINK_LIBRARIES(${executable_target} ${library_target} ${QT_LIBRARIES}) diff --git a/sample/main.cpp b/sample/main.cpp new file mode 100644 index 0000000..5543597 --- /dev/null +++ b/sample/main.cpp @@ -0,0 +1,21 @@ +#include + +#include +#include + +int main(int argc, char* argv[]) +{ + QCoreApplication app(argc, argv); + // ... + ConsoleAppender* consoleAppender = new ConsoleAppender(); + consoleAppender->setFormat("[%{type}] <%{function}> %{message}\n"); + logger->registerAppender(consoleAppender); + // ... + LOG_INFO("Starting the application"); + int result = app.exec(); + // ... + if (result) + LOG_WARNING() << "Something went wrong." << "Result code is" << result; + + return result; +} \ No newline at end of file From 41cd17ba58c726d70dbefd1a3ffad06d123e8d0f Mon Sep 17 00:00:00 2001 From: Dzhoshkun Ismail Shakir Date: Mon, 16 Nov 2015 11:45:09 +0000 Subject: [PATCH 2/6] added CMake find file --- CMakeLists.txt | 10 ++++++++++ cmake/CuteLoggerConfig.cmake | 32 ++++++++++++++++++++++++++++++++ sample/main.cpp | 27 ++++++++++++++------------- 3 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 cmake/CuteLoggerConfig.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 2113264..1cdd6a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,3 +45,13 @@ INSTALL(TARGETS ${library_target} DESTINATION lib) SET(executable_target LoggerEx) ADD_EXECUTABLE(${executable_target} sample/main.cpp) TARGET_LINK_LIBRARIES(${executable_target} ${library_target} ${QT_LIBRARIES}) + +SET(CuteLogger_PATH_SUFFIX cutelogger) +INSTALL(FILES + ${includes} cmake/CuteLoggerConfig.cmake + DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${CuteLogger_PATH_SUFFIX}) +INSTALL(TARGETS + ${library_target} + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/${CuteLogger_PATH_SUFFIX} + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/${CuteLogger_PATH_SUFFIX} + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/${CuteLogger_PATH_SUFFIX}) \ No newline at end of file diff --git a/cmake/CuteLoggerConfig.cmake b/cmake/CuteLoggerConfig.cmake new file mode 100644 index 0000000..dd2accc --- /dev/null +++ b/cmake/CuteLoggerConfig.cmake @@ -0,0 +1,32 @@ +# Try to find CuteLogger. Once done, this will define: +# +# CuteLogger_INCLUDE_DIR - the NiftyMatch include directories +# CuteLogger_LIBS - link these to use NiftyMatch +# + +# to be kept in sync with CMakeLists.txt at top level +# allows defined suffix to be appended to all searched paths +SET(CuteLogger_PATH_SUFFIX cutelogger) + +# Include dir +FIND_PATH(CuteLogger_INCLUDE_DIR + NAMES Logger.h + PATHS ${CMAKE_CURRENT_LIST_DIR}/../../include + PATH_SUFFIXES ${CuteLogger_PATH_SUFFIX}) + +# And the modules of this library +FIND_LIBRARY(CuteLogger_LIB + NAMES Logger + PATHS ${CMAKE_CURRENT_LIST_DIR}/../../lib + PATH_SUFFIXES ${CuteLogger_PATH_SUFFIX}) + +# Put them all into a var +SET(CuteLogger_LIBS + ${CuteLogger_LIB}) + +# handle the QUIETLY and REQUIRED arguments and set CuteLogger_FOUND +# if all listed variables are TRUE +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + CuteLogger DEFAULT_MSG + CuteLogger_LIBS CuteLogger_INCLUDE_DIR) \ No newline at end of file diff --git a/sample/main.cpp b/sample/main.cpp index 5543597..f18218f 100644 --- a/sample/main.cpp +++ b/sample/main.cpp @@ -5,17 +5,18 @@ int main(int argc, char* argv[]) { - QCoreApplication app(argc, argv); - // ... - ConsoleAppender* consoleAppender = new ConsoleAppender(); - consoleAppender->setFormat("[%{type}] <%{function}> %{message}\n"); - logger->registerAppender(consoleAppender); - // ... - LOG_INFO("Starting the application"); - int result = app.exec(); - // ... - if (result) - LOG_WARNING() << "Something went wrong." << "Result code is" << result; +// QCoreApplication app(argc, argv); + // ... + ConsoleAppender* consoleAppender = new ConsoleAppender(); + consoleAppender->setFormat("[%{type}] <%{function}> %{message}\n"); + logger->registerAppender(consoleAppender); + // ... + LOG_INFO("Starting the application"); +// int result = app.exec(); + // ... +// if (result) + LOG_WARNING() << "Something went wrong."; - return result; -} \ No newline at end of file +// return result; + return EXIT_SUCCESS; +} From e8f2930c8416b1ec3248b90c051b1b496feb5ed6 Mon Sep 17 00:00:00 2001 From: Dzhoshkun Ismail Shakir Date: Mon, 16 Nov 2015 11:54:48 +0000 Subject: [PATCH 3/6] - introduced CMake option for Qt5, and keeping Qt4 optional - sample application not being built any more --- CMakeLists.txt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1cdd6a1..0f4c485 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,13 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(CuteLogger) -FIND_PACKAGE(Qt5Core REQUIRED) +OPTION(USE_Qt5 "Use Qt5 instead of Qt4 (default)" OFF) +if(USE_Qt5) + FIND_PACKAGE(Qt5Core REQUIRED) +else(USE_Qt5) # default is Qt4 + FIND_PACKAGE(Qt4 COMPONENTS QtCore REQUIRED) + INCLUDE(${QT_USE_FILE}) +endif(USE_Qt5) ADD_DEFINITIONS(-DCUTELOGGER_LIBRARY) @@ -39,13 +45,11 @@ SET(library_target Logger) ADD_LIBRARY(${library_target} SHARED ${sources} ${includes}) TARGET_LINK_LIBRARIES(${library_target} ${QT_LIBRARIES}) -QT5_USE_MODULES(${library_target} Core) +if(USE_Qt5) + QT5_USE_MODULES(${library_target} Core) +endif(USE_Qt5) INSTALL(TARGETS ${library_target} DESTINATION lib) -SET(executable_target LoggerEx) -ADD_EXECUTABLE(${executable_target} sample/main.cpp) -TARGET_LINK_LIBRARIES(${executable_target} ${library_target} ${QT_LIBRARIES}) - SET(CuteLogger_PATH_SUFFIX cutelogger) INSTALL(FILES ${includes} cmake/CuteLoggerConfig.cmake @@ -54,4 +58,4 @@ INSTALL(TARGETS ${library_target} RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/${CuteLogger_PATH_SUFFIX} LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/${CuteLogger_PATH_SUFFIX} - ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/${CuteLogger_PATH_SUFFIX}) \ No newline at end of file + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/${CuteLogger_PATH_SUFFIX}) From 9001cb56a8fe9ee571b41a2b9ce596b0eebefe11 Mon Sep 17 00:00:00 2001 From: Dzhoshkun Ismail Shakir Date: Mon, 16 Nov 2015 11:55:38 +0000 Subject: [PATCH 4/6] removed sample application code altogether --- sample/main.cpp | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 sample/main.cpp diff --git a/sample/main.cpp b/sample/main.cpp deleted file mode 100644 index f18218f..0000000 --- a/sample/main.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include - -#include -#include - -int main(int argc, char* argv[]) -{ -// QCoreApplication app(argc, argv); - // ... - ConsoleAppender* consoleAppender = new ConsoleAppender(); - consoleAppender->setFormat("[%{type}] <%{function}> %{message}\n"); - logger->registerAppender(consoleAppender); - // ... - LOG_INFO("Starting the application"); -// int result = app.exec(); - // ... -// if (result) - LOG_WARNING() << "Something went wrong."; - -// return result; - return EXIT_SUCCESS; -} From 8105e798a26625c9df643c80e96d5e4413bc3ab8 Mon Sep 17 00:00:00 2001 From: Dzhoshkun Ismail Shakir Date: Mon, 16 Nov 2015 16:11:09 +0000 Subject: [PATCH 5/6] added simple README file --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..59ec10f --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# Build + +__Note:__ Omit `-D USE_Qt5=ON` below if you want to build against Qt4 + +``` +git clone CuteLogger +mkdir CuteLogger-build +cd CuteLogger-build +cmake -D USE_Qt5=ON \ + -D Qt5Core_DIR="/path/to/your/Qt5CoreConfig.cmake/file" \ + ../CuteLogger/src +make -j +sudo make install # because default CMAKE_INSTALL_PREFIX is /usr/local +``` + +# Use + +1. Put `FIND_PACKAGE(CuteLogger CONFIG REQUIRED)` into your project's CMake file. +1. Specify `CuteLogger_DIR` as `/usr/local/include/cutelogger` (i.e. `${CMAKE_INSTALL_PREFIX}/include/cutelogger`) for CMake. +1. See `cmake/CuteLoggerConfig.cmake` (installed in `/usr/local/include/cutelogger/CuteLoggerConfig.cmake`) to see which CMake variables to use. \ No newline at end of file From dfd0e01e99ca941304a625278683bbac25d5b584 Mon Sep 17 00:00:00 2001 From: "Dzhoshkun (Josh) Ismail Shakir" Date: Tue, 17 Nov 2015 15:05:28 +0000 Subject: [PATCH 6/6] readme update: source is directly within folder --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 59ec10f..58aa994 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ mkdir CuteLogger-build cd CuteLogger-build cmake -D USE_Qt5=ON \ -D Qt5Core_DIR="/path/to/your/Qt5CoreConfig.cmake/file" \ - ../CuteLogger/src + ../CuteLogger make -j sudo make install # because default CMAKE_INSTALL_PREFIX is /usr/local ``` @@ -17,4 +17,4 @@ sudo make install # because default CMAKE_INSTALL_PREFIX is /usr/local 1. Put `FIND_PACKAGE(CuteLogger CONFIG REQUIRED)` into your project's CMake file. 1. Specify `CuteLogger_DIR` as `/usr/local/include/cutelogger` (i.e. `${CMAKE_INSTALL_PREFIX}/include/cutelogger`) for CMake. -1. See `cmake/CuteLoggerConfig.cmake` (installed in `/usr/local/include/cutelogger/CuteLoggerConfig.cmake`) to see which CMake variables to use. \ No newline at end of file +1. See `cmake/CuteLoggerConfig.cmake` (installed in `/usr/local/include/cutelogger/CuteLoggerConfig.cmake`) to see which CMake variables to use.