Giter VIP home page Giter VIP logo

cmtk's People

Contributors

arapelle avatar aympelle avatar

Stargazers

 avatar

cmtk's Issues

cpp_library_targets_link_libraries()

  • Function which link libraries to object shared and static targets correctly
    • PRIVATE and PUBLIC targets are linked to the object targets.
    • PUBLIC and INTERFACE targets are linked to the shared and static targets.
  • In add_cpp_library() SHARED and STATIC are optional now.

Replace confusing PUBLIC argument for add_cpp_library().

PUBLIC is too confusing (even for me!). So, it is deprecated.
BUILD_SHARED and BUILD_STATIC can be ON, OFF, UNDEFINED, OPTION.
(OPTION and UNDEFINED have the same meaning. Just that, UNDEFINED is a possible value of a trioption.)
OPTION (and UNDEFINED too) means building SHARED (or STATIC) target depends on an option.

So, PUBLIC should be replaced by:

BUILD_SHARED OPTION
BUILD_STATIC OPTION

Should UNDEFINED value of trioption be renamed OPTION ? probably not.

Add function target_SPDLOG_ACTIVE_LEVEL_definition().

# target_SPDLOG_ACTIVE_LEVEL_definition()
function(target_SPDLOG_ACTIVE_LEVEL_definition target)
    cmake_parse_arguments(PARSE_ARGV 1 "ARG" "" "LEVEL" "")
    if(ARG_LEVEL)
        set(SPDLOG_ACTIVE_LEVEL ${ARG_LEVEL})
    endif()
    fatal_ifndef("Variable SPDLOG_ACTIVE_LEVEL is not defined." SPDLOG_ACTIVE_LEVEL)
    target_compile_definitions(${target} PRIVATE SPDLOG_ACTIVE_LEVEL=${SPDLOG_ACTIVE_LEVEL})
endfunction()
  • Replace value TRACE by SPDLOG_LEVEL_TRACE, ... in set_SPDLOG_ACTIVE_LEVEL_ifndef().

A cmake_uninstall.cmake must not remove siblings projects

When a project is a subproject (git submodule for example) which creates a uninstall script,
it must not remove files of siblings projects installed before him.

When the list of files to remove by the script is created, the list of files already treated by another uninstall script
must be removed from the list.

Clean: Remove deprecated functions & Add missing doc.

Remove functions:

  • generate_default_version_header()
  • configure_version_header()

Add doc for:

  • Utility;
    • fatal_ifdef()
    • fatal_ifndef()
    • fatal_if_none_is_def()
    • set_ifndef()
    • set_iftest()
    • trioption()
    • option_or_set_ifdef()
    • trioption_or_set_ifdef()
  • configure_headers()
  • set_SPDLOG_ACTIVE_LEVEL_ifndef()
  • target_default_warning_options()
  • generate_version_macro_header() ?

Improve/Simplify install_cmake_uninstall_script()

BUG : When install_library_package() is called with UNINSTALL_SCRIPT with no parameter, UNINSTALL_SCRIPT is not DEFINED. So, cmake_uninstall.cmake script are not installed.

  • Clarify CMAKE_INSTALL_MANIFEST_FILES, CMTK_INSTALL_FILES and files variables.
  • Close CMake ticket

Add parameters to parse:

  • VERSION version
  • FILENAME filename: filename of the uninstall script.
  • PACKAGE_DIR dir

New function add_rsc_cpp_library()

  • Split main header: a header for each resource function is generated.
  • A namespace for each resource subfolder.

Arguments for add_rsc_cpp_library():

  • NAME name
  • [PARENT_NAMESPACE parent_ns]
  • [INLINE_PARENT_NAMESPACE parent_ns]
  • [PRIVATE_RESOURCE_HEADERS]
  • [PRIVATE_RESOURCE_PATHS_HEADER]
  • add_cpp_library() arguments

Generated lib API:

  • find_serialized_resource()

Doc:

  • Documentation

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.