Skip to content
Snippets Groups Projects
Verified Commit bae8f8ac authored by Timm Fitschen's avatar Timm Fitschen
Browse files

Merge branch 'f-pedantic' into f-error-handling

parents 824082f8 5cd7533c
No related branches found
No related tags found
1 merge request!3Better Error Handling and Logging
Pipeline #10877 passed
Pipeline: caosdb-cppinttest

#10878

    This commit is part of merge request !3. Comments created here will be created in the context of that merge request.
    ......@@ -83,6 +83,9 @@ test:
    - mkdir build
    - cd build
    - conan install .. -s "compiler.libcxx=libstdc++11"
    - FILE_TO_BE_PATCHED="$(grep "std::unique_ptr<ContextAllocator> context_allocator) {}" -l -r $(conan config home))"
    - echo "FILE_TO_BE_PATCHED=$FILE_TO_BE_PATCHED"
    - sed -e "s|std::unique_ptr<ContextAllocator> context_allocator) {}|std::unique_ptr<ContextAllocator> /*context_allocator*/) {}|" -i $FILE_TO_BE_PATCHED
    - cmake -DCMAKE_BUILD_TYPE=Debug ..
    - cmake --build .
    - cmake --build . --target unit_test_coverage
    ......
    ......@@ -41,6 +41,10 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
    set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
    IF (WIN32)
    set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
    ENDIF()
    ###########################################
    ### DEPENDENCY MANAGEMENT with CONAN
    ###########################################
    ......@@ -79,8 +83,13 @@ set(PROTO_FILES
    set(PROTO_PATH ${PROJECT_SOURCE_DIR}/proto/proto)
    # compiler binaries
    set(_PROTOBUF_PROTOC "${CMAKE_BINARY_DIR}/build_tools/protoc")
    set(_GRPC_CPP_PLUGIN_EXECUTABLE "${CMAKE_BINARY_DIR}/build_tools/grpc_cpp_plugin")
    IF (WIN32)
    set(_PROTOBUF_PROTOC "${CMAKE_BINARY_DIR}/build_tools/protoc.exe")
    set(_GRPC_CPP_PLUGIN_EXECUTABLE "${CMAKE_BINARY_DIR}/build_tools/grpc_cpp_plugin.exe")
    ELSE()
    set(_PROTOBUF_PROTOC "${CMAKE_BINARY_DIR}/build_tools/protoc")
    set(_GRPC_CPP_PLUGIN_EXECUTABLE "${CMAKE_BINARY_DIR}/build_tools/grpc_cpp_plugin")
    ENDIF()
    # Generated sources
    list(LENGTH PROTO_FILES len_proto_files)
    ......@@ -248,6 +257,7 @@ if(_LINTING)
    add_compiler_flag("-pedantic")
    add_compiler_flag("-Werror")
    message(STATUS "PEDANTIC_CMAKE_CXX_FLAGS: [${PEDANTIC_CMAKE_CXX_FLAGS}]")
    set(TARGET_CAOSDB_COMPILE_FLAGS "${TARGET_CAOSDB_COMPILE_FLAGS} ${PEDANTIC_CMAKE_CXX_FLAGS}")
    set(TARGET_CCAOSDB_COMPILE_FLAGS "${TARGET_CCAOSDB_COMPILE_FLAGS} ${PEDANTIC_CMAKE_C_FLAGS}")
    set(TARGET_CXXCAOSDBCLI_COMPILE_FLAGS "${TARGET_CXXCAOSDBCLI_COMPILE_FLAGS} ${PEDANTIC_CMAKE_CXX_FLAGS}")
    ......
    ......@@ -33,6 +33,19 @@ have to add `build/lib/` (or, alternatively after installation,
    `CMAKE_INSTALL_PREFIX/lib`) to your `DYLD_LIBRARY_PATH` environmental
    variable.
    ### How to build on Windows
    We use [Visual Studio 2019](https://visualstudio.microsoft.com/de/vs/features/cplusplus/)
    as compiler. We use [cmake](https://cmake.org/download/) as build tool.
    1. `mkdir build`
    2. `cd build`
    3. `conan install .. -g visual_studio -s arch=x86_64 -s build_type=Release -s compiler.toolset=v142 -s compiler.version=16 -s compiler.runtime=MD --build=missing --update`
    4. `cmake -B . ..`
    5. open ` libcaosdb.sln` with Visual Studio, change the buildtype to `Release`
    and build the project. (You can open Tools/Command Line/Developer Command
    Prompt and execute `msbuild libcaosdb.sln /property:Configuration=Release`)
    ## Unit Tests
    ### Build
    ......
    ......@@ -28,7 +28,7 @@ class CaosdbConan(ConanFile):
    def imports(self):
    self.copy("protoc*", "build_tools", "bin")
    self.copy("grpc_cpp_plugin", "build_tools", "bin")
    self.copy("grpc_cpp_plugin*", "build_tools", "bin")
    def build(self):
    cmake = CMake(self)
    ......
    ......@@ -82,6 +82,7 @@ include(CodeCoverage)
    if (LCOV_PATH)
    message(STATUS "Found LCOV: ${LCOV_PATH}")
    target_link_libraries(caosdb gcov)
    target_link_libraries(ccaosdb gcov)
    setup_target_for_coverage_lcov(
    NAME unit_test_coverage
    EXECUTABLE ctest -L caosdb-cpplib-unit-tests
    ......@@ -91,11 +92,13 @@ if (LCOV_PATH)
    GENHTML_ARGS --rc lcov_branch_coverage=1
    )
    message(STATUS "Adding COMPILE_FLAGS for coverage: ${COVERAGE_COMPILER_FLAGS}")
    set(TARGET_CAOSDB_COMPILE_FLAGS "${TARGET_CAOSDB_COMPILE_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE)
    set(TARGET_CCAOSDB_COMPILE_FLAGS "${TARGET_CCAOSDB_COMPILE_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE)
    set(TARGET_CAOSDB_COMPILE_FLAGS "${TARGET_CAOSDB_COMPILE_FLAGS} ${COVERAGE_COMPILER_FLAGS}")
    set(TARGET_CCAOSDB_COMPILE_FLAGS "${TARGET_CCAOSDB_COMPILE_FLAGS} ${COVERAGE_COMPILER_FLAGS}")
    set(TARGET_CAOSDB_COMPILE_FLAGS ${TARGET_CAOSDB_COMPILE_FLAGS} PARENT_SCOPE)
    set(TARGET_CCAOSDB_COMPILE_FLAGS ${TARGET_CCAOSDB_COMPILE_FLAGS} PARENT_SCOPE)
    set_target_properties(caosdb PROPERTIES
    COMPILE_FLAGS "${TARGET_CAOSDB_COMPILE_FLAGS}")
    set_target_properties(caosdb PROPERTIES
    set_target_properties(ccaosdb PROPERTIES
    COMPILE_FLAGS "${TARGET_CCAOSDB_COMPILE_FLAGS}")
    else ()
    message(WARNING "Could not generate code coverage report. Please install lcov.")
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment