diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d69800..0f4c485 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,13 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(CuteLogger) -FIND_PACKAGE(Qt4 COMPONENTS QtCore REQUIRED) -INCLUDE(${QT_USE_FILE}) +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) @@ -40,4 +45,17 @@ SET(library_target Logger) ADD_LIBRARY(${library_target} SHARED ${sources} ${includes}) TARGET_LINK_LIBRARIES(${library_target} ${QT_LIBRARIES}) +if(USE_Qt5) + QT5_USE_MODULES(${library_target} Core) +endif(USE_Qt5) INSTALL(TARGETS ${library_target} DESTINATION lib) + +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}) diff --git a/README.md b/README.md new file mode 100644 index 0000000..58aa994 --- /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 +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. 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