elucideye / acf

Aggregated Channel Feature object detection in C++ and OpenGL ES 2.0 based on https://github.com/pdollar/toolbox
BSD 3-Clause "New" or "Revised" License
49 stars 20 forks source link

refactoring for GIT_SELF tests #90

Closed headupinclouds closed 6 years ago

headupinclouds commented 6 years ago

Mods to allow building src/app tree with hunter managed acf build via the magic of GIT_SELF. Some library layout changes are required to keep private and public acf headers separate.

The util (and io) directory contains utility classes/functions used by the acf library. In this context they are effectively non-exported == private headers. They are also used as a support lib in the various console apps and unit tests within the repository.

The util directory sits parallel with the root acf folder so that the target_include_directories() calls can include util headers without automatically including acf headers from the repository tree, as we want to make sure the acf folder includes can be provided exclusively from the the installed/managed acf package, using:

hunter_config(acf GIT_SELF ...)

Layout:

     lib
      +-util  : utility function
      +-io    : io/serialization functions
      +-acf
         +-acf : acf implementation

Example src/app/acf/acf.cpp:

#include <acf/ACF.h>      // from ${HOME}/.hunter/<SNIP>/Install/acf
#include <util/Logger.h>  // provided from acf/src/lib/util (in-repo)

int main(int argc, char **argv)
{
   // snip
}
headupinclouds commented 6 years ago

Addresses #88