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: ...@@ -83,6 +83,9 @@ test:
    - mkdir build - mkdir build
    - cd build - cd build
    - conan install .. -s "compiler.libcxx=libstdc++11" - 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 -DCMAKE_BUILD_TYPE=Debug ..
    - cmake --build . - cmake --build .
    - cmake --build . --target unit_test_coverage - cmake --build . --target unit_test_coverage
    ......
    ...@@ -41,6 +41,10 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) ...@@ -41,6 +41,10 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
    set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) 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 ### DEPENDENCY MANAGEMENT with CONAN
    ########################################### ###########################################
    ...@@ -79,8 +83,13 @@ set(PROTO_FILES ...@@ -79,8 +83,13 @@ set(PROTO_FILES
    set(PROTO_PATH ${PROJECT_SOURCE_DIR}/proto/proto) set(PROTO_PATH ${PROJECT_SOURCE_DIR}/proto/proto)
    # compiler binaries # compiler binaries
    set(_PROTOBUF_PROTOC "${CMAKE_BINARY_DIR}/build_tools/protoc") IF (WIN32)
    set(_GRPC_CPP_PLUGIN_EXECUTABLE "${CMAKE_BINARY_DIR}/build_tools/grpc_cpp_plugin") 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 # Generated sources
    list(LENGTH PROTO_FILES len_proto_files) list(LENGTH PROTO_FILES len_proto_files)
    ...@@ -248,6 +257,7 @@ if(_LINTING) ...@@ -248,6 +257,7 @@ if(_LINTING)
    add_compiler_flag("-pedantic") add_compiler_flag("-pedantic")
    add_compiler_flag("-Werror") 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_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_CCAOSDB_COMPILE_FLAGS "${TARGET_CCAOSDB_COMPILE_FLAGS} ${PEDANTIC_CMAKE_C_FLAGS}")
    set(TARGET_CXXCAOSDBCLI_COMPILE_FLAGS "${TARGET_CXXCAOSDBCLI_COMPILE_FLAGS} ${PEDANTIC_CMAKE_CXX_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, ...@@ -33,6 +33,19 @@ have to add `build/lib/` (or, alternatively after installation,
    `CMAKE_INSTALL_PREFIX/lib`) to your `DYLD_LIBRARY_PATH` environmental `CMAKE_INSTALL_PREFIX/lib`) to your `DYLD_LIBRARY_PATH` environmental
    variable. 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 ## Unit Tests
    ### Build ### Build
    ......
    ...@@ -28,7 +28,7 @@ class CaosdbConan(ConanFile): ...@@ -28,7 +28,7 @@ class CaosdbConan(ConanFile):
    def imports(self): def imports(self):
    self.copy("protoc*", "build_tools", "bin") 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): def build(self):
    cmake = CMake(self) cmake = CMake(self)
    ......
    ...@@ -82,6 +82,7 @@ include(CodeCoverage) ...@@ -82,6 +82,7 @@ include(CodeCoverage)
    if (LCOV_PATH) if (LCOV_PATH)
    message(STATUS "Found LCOV: ${LCOV_PATH}") message(STATUS "Found LCOV: ${LCOV_PATH}")
    target_link_libraries(caosdb gcov) target_link_libraries(caosdb gcov)
    target_link_libraries(ccaosdb gcov)
    setup_target_for_coverage_lcov( setup_target_for_coverage_lcov(
    NAME unit_test_coverage NAME unit_test_coverage
    EXECUTABLE ctest -L caosdb-cpplib-unit-tests EXECUTABLE ctest -L caosdb-cpplib-unit-tests
    ...@@ -91,11 +92,13 @@ if (LCOV_PATH) ...@@ -91,11 +92,13 @@ if (LCOV_PATH)
    GENHTML_ARGS --rc lcov_branch_coverage=1 GENHTML_ARGS --rc lcov_branch_coverage=1
    ) )
    message(STATUS "Adding COMPILE_FLAGS for coverage: ${COVERAGE_COMPILER_FLAGS}") 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_CAOSDB_COMPILE_FLAGS "${TARGET_CAOSDB_COMPILE_FLAGS} ${COVERAGE_COMPILER_FLAGS}")
    set(TARGET_CCAOSDB_COMPILE_FLAGS "${TARGET_CCAOSDB_COMPILE_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) 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 set_target_properties(caosdb PROPERTIES
    COMPILE_FLAGS "${TARGET_CAOSDB_COMPILE_FLAGS}") COMPILE_FLAGS "${TARGET_CAOSDB_COMPILE_FLAGS}")
    set_target_properties(caosdb PROPERTIES set_target_properties(ccaosdb PROPERTIES
    COMPILE_FLAGS "${TARGET_CCAOSDB_COMPILE_FLAGS}") COMPILE_FLAGS "${TARGET_CCAOSDB_COMPILE_FLAGS}")
    else () else ()
    message(WARNING "Could not generate code coverage report. Please install lcov.") 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