Tags: stephanlachnit/PTL
Tags
New/improved support for initialization and finalization routines in … …ThreadPool (jrmadsen#19) * clang-tidy fixes * Improvements to ThreadPool constructors * Support for finalization functions in ThreadPool * Bumped version * PTL_INSTALL_HEADERS + PTL_INSTALL_CONFIG
Springclean CMake scripts and developer/client build/use interfaces (j… …rmadsen#13) * Modernize minimize cmake/project settings - Use version range for minimum CMake version Follow recommendation in: https://cliutils.gitlab.io/modern-cmake/chapters/basics.html to support current 3.8 minimum whilst always setting policy settings to those of the running version. - Don't set policies which will automatically be NEW - Let CMake fully handle versions without caching Caching allows user to set version values, but these are not user configurable values. Let CMake handle the setting of PTL_... and PROJECT_... version variables through the primary call to project() after version info has been read from VERSION file. * Simplify PTL build/install with modern CMake tools - Use modern CMake style of lowercase commands and empty else(), end...() commands - Remove all unused custom functions and macros - Refactor remaining functionality into dedicated modules - Remove obsolete/duplicate options and those that only apply to examples - Only report relevant enabled features - Not possible to reliably report flags as these can change over the build tree - Do not cache PTL_INSTALL_... variables, but allow override when PTL is a subproject, otherwise defaulting to the CMAKE_INSTALL_... equivalents - Only expose ptl_add_option options when PTL is the primary project - parent projects can still set these manually - Use compile features to export CXX Standard - Add cxx_std_<VERSION> to all targets built through ptl_build_library to ensure this usage requirement is propagated to clients. - Remove CMAKE_CXX_EXTENSIONS and CMAKE_CXX_STANDARD_REQUIRED from the cache as these should not be set by builders of the project. - Remove CMAKE_CXX_STANDARD setting in config files as the targets propagate this requirement. - Do not default CMAKE_INSTALL_RPATH_USE_LINK_PATH setting This variable should be left up to the builder/installer as it hardcodes RPATH information that may not be wanted. - Create header to propgate public preproc symbols PTL can be built with support for TBB and locks in user queues. These are enabled in code via #ifdef blocks on preprocessor symbols passed through -D flags. However, the choice is hardcoded at build time as it affects the API and ABI of the resultant PTL libraries. Promote TBB/Lock symbols to configured values in a new Config.hh file generated by CMake. Include this file in PTL code depending on the symbols. Install it along side other PTL headers. Remove setting of -D flags for TBB and locks from both public and private compile definitions. - Update FindTBB module using version from VTK/Ogre, adding FPHSA support - Link directly to Threads and TBB targets for simplicity and clarity - Rationalize CMake/Build settings - Prefer use of CMAKE_.._FLAGS for passing sanitizer/coverage flags down the build tree. Whilst use of targets/usage requirements is preferred in modern CMake, it may not be the simplest solution for things like compiler flags that are pure BUILD_INTERFACE. Propagating flags through targets may result in these appearing in the install interface for the project. This may be confusing, or at worst, lead to unexpected behaviour. NB: Once CMake >= 3.13 is required, add_{compile,link}_options can be used instead. - Unify build/install CMake config files - Handle primary target difference between build/install trees transparently via the PTLTargets.cmake file - Only use component arguments to find_package to decide on default for static/shared linking. Use of BUILD_{STATIC/SHARED}_LIBS may not result in the behaviour intended by the client project. - Generate and install pkg-config file for PTL * Make examples work with simplified CMake system Comment out GPU example as it cannot currently build either with updated CMake scripts or those on master * Ensure build paths do not appear in installed CMake scripts Set path to custom FindTBB module using a @PACKAGE_...@ variable to that it will not export build tree information to the install tree. * Point CI Workflow to correct examples dir * Fix typo + install libasan in CI scripts * Removed libasan install + export sanitizer flags when address is used * Use INTERFACE_LINK_OPTIONS instead of target_link_options * export sanitizer link flags when not leak * PTL_USE_ARCH removal from pyctest-runner * Bumped version to 2.1.0 * Minor formatting updates Co-authored-by: Jonathan R. Madsen <[email protected]>
warning fixes + wait() for tasks (jrmadsen#12) - removed unused numActThreads - wait() member function for tasks
Fixed Version.hh header output location in build-tree (jrmadsen#10)
Make PTLConfig.cmake reproducible (jrmadsen#9) * Make PTLConfig.cmake reproducible - Build time and build folder are not reflected in installed PTLConfig.cmake - Update VERSION to 1.0.1
Update version to 1.0.0 + installation fixes (jrmadsen#7) * Installation fixes - Updated version to 1.0.0 - Updated travis slightly - Version.hh - formatted pyctest-runner.py - fix for timer operator<< - travis test for installation
Merge pull request jrmadsen#2 from carterbox/master Build for WIN64