Skip to content

Releases: LLNL/blt

v0.6.2

18 Mar 21:32
9ff7734
Compare
Choose a tag to compare

Added

  • Added output for CMake's implicitly added link libraries and directories.

Changed

  • OpenMP target now uses a generator expression for Fortran flags instead of replacing flags in
    Fortran targets created with BLT macros.
  • Remove setting CMP0076 to OLD which left relative paths in target_sources() instead of altering
    them to absolute paths.
  • Header-only libraries headers now show up under their own target in IDE project views instead of
    under downstream targets. This only works in CMake >= 3.19, otherwise they will not show up at all.
  • Raised version for base CMake version supported by BLT to 3.15 to support ALIAS targets across BLT.

v0.6.1

30 Jan 01:13
058b312
Compare
Choose a tag to compare

Fixed

  • Turned off GoogleTest finding Python

v0.6.0

19 Jan 01:56
b791829
Compare
Choose a tag to compare

Added

  • Added support for C++23. Note: XL and PGI do not support C++23.
  • Adds a clang_tidy_style CMake target to allow clang-tidy to fix errors in-place.
    This requires a CLANGAPPLYREPLACEMENTS_EXECUTABLE CMake variable to point to
    the clang-apply-replacements executable in addition to the CLANGTIDY_EXECUTABLE.
    Also adds a corresponding ENABLE_CLANGAPPLYREPLACEMENTS CMake option.
    Note that the clang_tidy_style target is not added to the style target and must be run separately.
  • Added the blt_install_tpl_setups macro, which installs files to setup and create
    targets for the third-party libraries OpenMP, MPI, CUDA, and HIP. This macro is meant to
    replace blt_export_tpl_targets as the preferred way to setup third-party libraries with BLT.
  • Added blt::`` namespaced aliases for BLT targets, cuda, cuda_runtime, mpi, and openmp. These targets still exist but but will be deprecated in a future release. It is recommended that you move to the new alias names, blt::cuda, blt::cuda_runtime, blt::mpi, and blt::openmp`

Changed

  • SetupHIP now searches for user-defined or environment variables before CMake paths to find the ROCM_PATH.

Fixed

  • Fixed infinite loop in blt_find_target_dependencies
  • blt_check_code_compiles now works with alias targets

v0.5.3

07 Jun 23:46
5a792c1
Compare
Choose a tag to compare

[Version 0.5.3] - Release date 2023-06-05

Changed

  • Updated Googletest to main from 04/13/2023.
    Commit: 12a5852e451baabc79c63a86c634912c563d57bc.
    Note: this version of Googletest requires C++14, and PGI is not supported. If you are using PGI, set ENABLE_GTEST OFF.
  • Updated GoogleBenchmark to 1.8

Added

  • Added blt_print_variables macro to print variables in current scope, with regex filtering on variable names and values
  • Added DEPENDS_ON optional parameter to blt_check_code_compiles macro to allow for checking if a feature is available in a third-party imported target.
  • Added CONFIGURATIONS and OMP_NUM_THREADS options to blt_add_benchmark

Fixed

  • Guard HIP compiler flag --rocm-path=/path/to/rocm against Crayftn compiler earlier than 15.0.0.
  • Fix doubling of INTERFACE_INCLUDE_DIRECTORIES in blt_patch_target(... TREAT_INCLUDES_AS_SYSTEM true).

Removed

  • Removed tracking all sources in a project via ${PROJECT_NAME}_ALL_SOURCES.

v0.5.2

05 Oct 20:10
84fe0d1
Compare
Choose a tag to compare

Added

  • Added blt_convert_to_system_includes macro to convert existing interface includes to system interface includes.
  • blt_check_code_compiles which compiles a C++ code snippet and returns the result.
  • Added variable BLT_CMAKE_IMPLICIT_LINK_LIBRARIES_EXCLUDE for filtering
    link libraries implicitly added by CMake. See the following example host-config:
    host-configs/llnl/blueos_3_ppc64le_ib_p9/clang@upstream_nvcc_xlf.cmake

Changed

  • Added three extra options to blt_print_target_properties macro to print properties of
    target's children as well as limit the properties printed with regular expressions:
    • CHILDREN (true/ false) whether or not you want to print the target's children's properties as well (recursively)
    • PROPERTY_NAME_REGEX (regular expression string) reduce which properties to print by name
    • PROPERTY_VALUE_REGEX (regular expression string) reduce which properties to print by value

v0.5.1

13 Apr 23:37
655aa8c
Compare
Choose a tag to compare

Added

  • Added support for C++20. Note: XL does not support C++20.
    While PGI has C++20 support, it is currently disabled (A BLT fatal error will occur).
  • BLT_CXX_STD now sets CMAKE_HIP_STANDARD, in CMake 3.21+, similar to CMAKE_CUDA_STANDARD.

Fixed

  • Removed hard-coded -std=c++11 from various places related to CUDA flags. This now honors
    CMAKE_CUDA_STANDARD if set otherwise falls back on BLT_CXX_STD or CMAKE_CXX_STANDARD.
  • Removed extra HIP offload flags that were being added as generator expressions as opposed to simple
    flags.

Removed

  • Removed support for deprecated HCC.

v0.5.0

08 Mar 00:33
296bf64
Compare
Choose a tag to compare

Added

  • Added support for IntelLLVM compiler family to blt_append_custom_compiler_flag
  • Added support for hip targets configured with cmake 3.21 native hip support
  • Added blt_export_tpl_targets macro to add BLT-provided third-party library
    targets to an export set.

Changed

  • BLT_C_FILE_EXTS updated to include .cuh
  • Fold BLT_CLANG_HIP_ARCH into the CMAKE_HIP_ARCHITECTURES variable
  • When using ENABLE_ALL_WARNINGS, append the flag to the beginning of CMAKE_{C,CXX}_FLAGS instead
    of the end
  • HIP support now uses the hip-config.cmake file provided by ROCM. This
    modification requires a change to the BLT-provided HIP target names, and they
    are now available under the blt prefix: blt::hip and blt::hip_runtime.

Fixed

  • Source code filename extension filtering now uses regular expressions to allow
    for more user customization and to improve handling of file names with multiple
    periods, e.g. 1d.cube.order2.c is considered a .c file.

v0.4.1

21 Jul 00:05
ddd5a0c
Compare
Choose a tag to compare

[Version 0.4.1] - Release date 2021-07-20

Added

  • Added compilation of HIP with clang using ENABLE_CLANG_HIP and BLT_CLANG_HIP_ARCH

Changed

  • XL: Use compiler flag -std=c++14 instead of -std=c++1y when BLT_CXX_STD is set to c++14

Fixed

  • Simpified the clang-format version regex that was causing hangs on some version strings.

v0.4.0

09 Apr 23:55
7ec2cb8
Compare
Choose a tag to compare

[Version 0.4.0] - Release date 2021-04-09

Added

  • Added variable BLT_CMAKE_IMPLICIT_LINK_DIRECTORIES_EXCLUDE for filtering
    link directories implicitly added by CMake. See the following example host-config:
    host-configs/llnl/blueos_3_ppc64le_ib_p9/clang@upstream_nvcc_c++17.cmake
  • Added support for clang-tidy static analysis check
  • Added ability to change the output name of an executable via the OUTPUT_NAME
    parameter of blt_add_executable
  • Added user option for enforcing specific versions of autoformatters - the new options are
    BLT_REQUIRED_ASTYLE_VERSION, BLT_REQUIRED_CLANGFORMAT_VERSION, and BLT_REQUIRED_UNCRUSTIFY_VERSION
  • Added HEADERS to blt_add_executable. This is important for build system dependency tracking
    and IDE folder support.
  • Added support for formatting Python code using YAPF.
  • Added new blt_import_library macro that creates a real CMake target for imported libraries,
    intended to be used instead of blt_register_library whenever possible
  • Added new blt_patch_target macro to simplify modifying properties of an existing CMake target.
    This macro accounts for known differences in compilers, target types, and CMake releases.
  • Added support for formatting CMake code using cmake-format.
  • Added an EXPORTABLE option to blt_import_library that allows imported libraries to be
    added to an export set and installed.
  • Added FRUIT's MPI parallel unit test reporting to BLT's internal copy of FRUIT
  • CUDA device links for object libraries can be enabled with the existing CUDA_RESOLVE_DEVICE_SYMBOLS
    target property.

Changed

  • MPI Support when using CMake 3.13 and newer: MPI linker flags are now passed
    as single string prefixed by SHELL: to prevent de-duplication of flags
    passed to target_link_options.
  • For HIP-dependent builds, only add HCC include directory if it exists.
  • HIP CMake utilities updated to AMD's latest version
  • Updated add_code_coverage_target to blt_add_code_coverage_target, which now supports
    user-specified source directories
  • Code coverage targets leave LCOV-generated files intact for later use; these files will
    still be removed by make clean

Fixed

  • ClangFormat checks now support multiple Python executable names
  • Prefixed blt_register_library() internal variables with _ to avoid collision
    with input parameters.
  • Turn off system includes for registered libraries when using the PGI compiler
  • Removed unneeded SYSTEM includes added by googletest that was causing problems
    in PGI builds (BLT was adding them already to the register library calls)
  • Removed variable BLT_CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES_EXCLUDE, functionality now
    provided for all languages using BLT_CMAKE_IMPLICIT_LINK_DIRECTORIES_EXCLUDE variable
  • ClangQuery was being auto-enabled in cases where no checker directories where defined.
    This caused a crash. blt_add_clang_query_target learned parameter CHECKER_DIRECTORIES
    and blt_add_code_checks learned parameter CLANGQUERY_CHECKER_DIRECTORIES. Both still
    respect BLT_CLANGQUERY_CHECKER_DIRECTORIES.
  • It is now a fatal error to supply CLANGFORMAT_CFG_FILE plus
    ASTYLE_CFG_FILE or UNCRUSTIFY_CFG_FILE arguments to
    blt_add_code_checks; previously, these combinations were implied to
    be errors in BLT documentation, but BLT would not return an error in
    those cases.
  • blt_patch_target no longer attempts to set system include directories when a target
    has no include directories
  • Header-only libraries now can have dependencies via DEPENDS_ON in blt_add_library
  • Added a workaround for include directories of imported targets on PGI. CMake was
    erroneously marking them as SYSTEM but this is not supported by PGI.
  • Check added to make sure that if HIP is enabled with fortran, the LINKER LANGUAGE
    is not changed back to Fortran.
  • Executables that link to libraries that depend on hip/hip_runtime/cuda/cuda_runtime
    will automatically be linked with the HIP or CUDA (NVCC) linker
  • Patched an issue with the FindHIP macros that added the inclusive scan of specified
    DEFINEs to compile commands
  • Re-added previous OpenMP flag patching logic to maintain compatibility with BLT-registered libraries

v0.3.6

03 Aug 20:30
c253509
Compare
Choose a tag to compare

v0.3.6
See RELEASE-NOTES.md for changes in this version and previous versions.