Skip to content
Snippets Groups Projects
  1. Jun 10, 2022
    • Thorsten Hater's avatar
      Isolate external catalogues from libarbor.a. (#1837) · de06afa2
      Thorsten Hater authored
      # Changes
      - Bump ABI to v0.1.1
      - Add `arb_mechanism` to bundle `type` and `interface`s
      - Adjust `generate_catalogue` and `build_catalogue`
      - Return `nullptr` for GPU interfaces if not enabled
      
      # Open Questions
      - How to tell CMake not to link against `libarbor.a` and only use headers?
      - ~~How to get around `#ifdef ARB_GPU_ENABLED`~~ Update: just embrace it.
      
      # Linked Issues
      Fixes #1834 
  2. Feb 24, 2022
    • boeschf's avatar
      export API (#1824) · 675fdbc9
      boeschf authored
      Exports all symbols so arbor can be compiled as set of shared libraries. 
      
      In order to export all symbols correctly, one macro per library and one global macro are added. The content of the macros is determined at configure time depending on build variant (static/shared), compiler, and platforms (linux, mac os) and goes into the library's include directory as `export.hpp` when installed (at build time it resides at cmake's temporary build directory). The per-library macro is named `ARB_LIBNAME_API` and goes in front of to-be-exported symbols. The global macro is `ARB_SYMBOL_VISIBLE`. 
      
      This PR adds the annotation in all of the places where it is required. Most of them are in the public headers (and corresponding sources) but some are also added in internal headers, which were required for the unit tests to link properly.
      
      Fixes #1752
  3. Nov 10, 2021
    • Sam Yates's avatar
      Simplify default proc_allocation generation. (#1725) · e0c13e16
      Sam Yates authored
      * Consolidate default_concurrency, default_gpu functionality into arborenv/default_env.hpp, .cpp.
      * Add new arborenv function `default_allocation()` that uses environment variables ARBENV_NUM_THREADS and ARBENV_GPU_ID to create an `arb::proc_allocation`, with a fallback to `thread_concurrency()`.
      * Use arborenv-specific exceptions instead of generic std::runtime_error etc.
      * Update examples, docs to suit.
      
      Fixes #988 (except for reworking all the unit tests!)