Code Monkey home page Code Monkey logo

cppbase's People

Contributors

kartikkumar avatar mayanez avatar remyabel2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cppbase's Issues

Replace "add_definitions" by "add_compile_definitions"

Currently, the version of CMake built from source for the Travis CI build doesn't support add_compile_definitions. This means that for PR #3, the deprecated add_definitions has to be used instead.

To switch to add_compile_definitions, the CMake version has to be bumped up, but initial testing shows that this causes issues for the custom Doxygen scripts for the Travis CI build, because of updates in FindDoxygen.cmake.

So this issue requires both the CMake and Doxygen scripts for Travis to be updated.

Add Doxygen build to GitHub Actions workflow

  • Build Doxygen docs in GitHub Actions workflow and check for errors and/or warnings (fail if either are detected).
  • Build Doxygen docs in GitHub Actions workflow and push to GitHub Pages

Upgrade to modern CMake

I got the recommendation to revise the whole CMake setup to make use of "modern CMake".

I've got to investigate further and understand what that entails. In any case, I understand that it's bad practice to hard code compiler flags and the like, which is now in the main CMakeLists.txt file due to legacy when I started building this project.

This talk was recommended to me:

And this doc:

This will probably take some time and a bit of effort for me to upgrade my knowledge to be able to migrate to modern CMake.

Remove \cond block around logos in main README.md

Currently, to stop Doxygen from throwing the following warnings, there's an ugly \cond \endcond block at the top of the README.md file to wrap the clickable logos:

warning: Unexpected html tag <img> found within <a href=...> context

This seems to be a recurring and unsolved issue with the way the HTML parser in Doxygen works:

doxygen/doxygen#6039

shallow clones can not be pushed to a different remote repo

I cloned this project with depth=1, changed the "origin" to an existing empty repo on my page and when I tried pushing the local repo to the remote, it gave me an error that shallow clones can not be pushed to the remote. Is there another way to push shallow clones to a different remote repo?

Add code coverage analysis

Add option in CMake to generate code coverage using gcov, lcov, etc.

Also add to GitHub Actions workflow and push to CodeCov.

Include CodeCov badge in README.

Use include(CTest)

Currently you have enable_testing() and a custom BUILD_TESTS flag. This functionality is already provided in CMake. Diff:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 22b3617..2ac71a0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -130,8 +130,10 @@ if(BUILD_DOXYGEN_DOCS)
                     SOURCES ${PROJECT_BINARY_DIR}/Doxyfile)
 endif(BUILD_DOXYGEN_DOCS)
 
-if(BUILD_TESTS)
-  enable_testing()
+# Calls enable_testing() and provides BUILD_TESTING flag
+include(CTest)
+
+if(BUILD_TESTING)
   set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TEST_PATH})
 
   add_executable(${TEST_NAME} ${TEST_SRC})

You will need to replace BUILD_TESTS with BUILD_TESTING everywhere and wrap appropriate blocks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.