Fix Cmake file and no-op tracer creation 51/751/3 v0.0.3
authorRoni Riska <roni.riska@nokia.com>
Mon, 19 Aug 2019 10:56:21 +0000 (13:56 +0300)
committerRoni Riska <roni.riska@nokia.com>
Tue, 20 Aug 2019 06:58:29 +0000 (09:58 +0300)
The cmake changes include:
  - Set compiler to C++11
  - Support for code coverage
  - Strict compiler options

The no-op tracer incorrectly created enabled const tracer. This is fixed,
now it creates a disabled tracer.

Change-Id: Ia79ac082ee0cc32e395452c32796b593eda0b691
Signed-off-by: Roni Riska <roni.riska@nokia.com>
CMakeLists.txt
README.md
src/tracelib.cpp

index a3b0e0d..6a8d101 100644 (file)
@@ -30,10 +30,19 @@ HunterGate(
 
 project(tracelibcpp LANGUAGES CXX C)
 set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/cxx1.cmake)
+add_compile_options(-Wall -Wextra -Werror)
+set(CMAKE_CXX_STANDARD 11)
+
+if(NOT CMAKE_BUILD_TYPE)
+  set(CMAKE_BUILD_TYPE Release)
+endif()
+
+set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
+set(CMAKE_CXX_FLAGS_RELEASE "-O2")
 
 set (tracelibcpp_VERSION_MAJOR "0")
 set (tracelibcpp_VERSION_MINOR "0")
-set (tracelibcpp_VERSION_MICRO "2")
+set (tracelibcpp_VERSION_MICRO "3")
 set (tracelibcpp_VERSION_STRING
     "${tracelibcpp_VERSION_MAJOR}.${tracelibcpp_VERSION_MINOR}.${tracelibcpp_VERSION_MICRO}")
 
@@ -79,6 +88,8 @@ add_library(tracelibcpp SHARED
     src/tracelib.cpp
 )
 
+# Library versions are on by default
+# i.e. so versions
 option(WITH_VERSION "Support for library versioning" ON)
 
 if (WITH_VERSION)
@@ -86,10 +97,6 @@ if (WITH_VERSION)
                                   SOVERSION ${tracelibcpp_VERSION_MAJOR})
 endif (WITH_VERSION)
 
-# Library versions are on by default
-# i.e. so versions
-option(WITH_VERSION "Support for library versioning" ON)
-
 if (WITH_VERSION)
 set_target_properties(tracelibcpp PROPERTIES VERSION ${tracelibcpp_VERSION_STRING}
                                   SOVERSION ${tracelibcpp_VERSION_MAJOR})
@@ -120,6 +127,12 @@ install(TARGETS tracelibcpp
 
 # Add google test
 if (WITH_TESTING)
+  file(
+    DOWNLOAD https://raw.githubusercontent.com/bilke/cmake-modules/72d804cfbcf82a1e171200c9c02748fa4b7ea033/CodeCoverage.cmake
+    ${CMAKE_BINARY_DIR}/CodeCoverage.cmake)
+
+  include("${CMAKE_BINARY_DIR}/CodeCoverage.cmake")
+  APPEND_COVERAGE_COMPILER_FLAGS()
   hunter_add_package(GTest)
   find_package(GTest CONFIG REQUIRED)
   add_executable(testrunner
index 6038328..2acd2dd 100644 (file)
--- a/README.md
+++ b/README.md
@@ -38,6 +38,14 @@ make check
 Or with output
 CTEST_OUTPUT_ON_FAILURE=1 make check
 
+## Coverage
+Unit testing generates also coverage data. To get that in html format run commands, assuming
+you are building in `build` dir under the tracelibcpp
+```shell
+lcov -c --no-external --base-directory $(dirname $PWD)  --directory . --output-file cov.info
+genhtml cov.info
+```
+
 ## License
 
 See [LICENSES.txt](LICENSES.txt) file.
index 6ec898c..2ab6941 100644 (file)
@@ -21,8 +21,8 @@
 
 std::shared_ptr<opentracing::Tracer> tracelibcpp::createTracer(std::string serviceName)
 {
-    auto config = jaegertracing::Config(false,
-                jaegertracing::samplers::Config("const", 1));
+    auto config = jaegertracing::Config(true,
+                jaegertracing::samplers::Config("const", 0));
     return jaegertracing::Tracer::make(serviceName, config,  jaegertracing::logging::consoleLogger());
 }