BLT Software Release Notes
Notes describing significant changes in each BLT release are documented in this file.
The format of this file is based on Keep a Changelog.
The project release numbers follow Semantic Versioning.
Unreleased - Release date yyyy-mm-dd
- Added blt_assert_exists() utility macro.
- Additional link flags for CUDA may now be specified by setting
CMAKE_CUDA_LINK_FLAGSwhen configuring CMake either in a host-config or at the command-line.
- Added support for ClangFormat.
CUDA_TOOLKIT_ROOT_DIRmust now be set in order to use CUDA. If it is not specified, BLT will produce an error message.
- blt_add_test is no longer trying to extract target properties from non-targets.
- Improved support for HIP 3.5.
- Improved support for CMake 3.13.0+.
- Remove some known spaces that show up in MPI link flags.
- Remove GTest and GBenchmark adding '-Werror' that got inherited.
Version 0.3.0 - Release date 2020-01-08
- Sets CMake policy CMP0074 to NEW, when available.
- Added simpler Clang+XLF+Cuda host-config for LLNL's blueos
- API Docs that are public!
- Added the ability to override blt's custom target names, e.g. for code checks,
formatting and generating documentation. The new variables are:
- Clean up linking flags when
CUDA_LINK_WITH_NVCCis ON. Added logic to automatically convert '-Wl,-rpath' linking flag to '-Xlinker -rpath -Xlinker' and removes
-pthreadfrom from MPI linking flags returned from FindMPI because it doesn't work (see https://gitlab.kitware.com/cmake/cmake/issues/18008).
- In CMake 3.13+, "SHELL:" was added to blt_add_target_link_flags. This stops CMake from de-duplicating needed linker flags.
- Added optional SCOPE to all target property macros, blt_add_target_link_flags, etc. It defaults to PUBLIC.
- Added support for Cray compilers in blt_append_custom_compiler_flag.
- Added ability to add flags to the cppcheck command line through blt_add_code_checks()
- Added ability for blt_add_test() to set required number of OpenMP threads via new option NUM_OMP_THREADS.
- Added ClangFormat as an option for code styling. This has some caveats that are noted here: https://llnl-blt.readthedocs.io/en/develop/api/code_check.html
- Restructured the host-config directory by site and platform.
- Updated gbenchmark to 1.5.0, note that this requires C++11 to build.
- Updated gtest and gmock to Master as of 2020-01-07, note that this requires C++11 to build.
- Fixed some warnings in CMake 3.14+
- Duplication of MPI link flags in CMake 3.14+ when Fortran was enabled.
- Removed unused
HEADERS_OUTPUT_SUBDIRargument from blt_add_library().
Version 0.2.5 - Release date 2019-06-13
- Added support for C++17. Note: Neither XL nor CMake's CUDA_STANDARD supports C++17 (A BLT fatal error will occur).
- Added ability to override all MPI variables: BLT_MPI_COMPILE_FLAGS, BLT_MPI_INCLUDES, BLT_MPI_LIBRARIES, and BLT_MPI_LINK_FLAGS
- blt_list_remove_duplicates(): macro for removing duplicates from a list that doesn't error on empty lists.
- Handle CMake 3.10+ changing all the FindMPI output variables.
- BLT_CXX_STD is no longer defined to "c++11" by default. If undefined, BLT will not try and add any C++ standard flags.
- Handle FindMPI variable MPIEXEC changed to MPIEXEC_EXECUTABLE in CMake 3.10+. This now works regardless of which the user defines or what CMake returns.
- Handle CMake target property LINK_FLAGS changed to LINK_OPTIONS in CMake 3.13+. blt_add_target_link_flags() handles this under the covers and converts the users strings to a list (3.13+) or list to a string (<3.13). New property supports generator expressions so thats a plus.
- Improved how all BLT MPI information is being merged together and reported to users.
- Increased number of ranks in
blt_mpi_smoketest to catch regression.
- blt_split_source_list_by_language now supports non-BLT object libraries and errors out when any other generator expression is given in source list. This is to avoid very bad side effects of not being able to set source properties on anything inside the generator expression. This is because BLT cannot evaluate them.
- Error out with better message when empty file extensions is hit in blt_split_source_list_by_language.
Version 0.2.0 - Release date 2019-02-15
- Release notes...
- Explicitly check for CMake 3.8+ for required CMake features (Not fatal error)
- Object library support through blt_add_library(... OBJECT TRUE ...)
- Now reporting BLT version through CMake cache variable BLT_VERSION
- Output CMake version and executable used during CMake step
- Clang-query support now added (Thanks David Poliakoff)
- Object libraries no longer call target_link_libraries() but will pass inherited information because why would anyone ever want to install/export a bunch of object files.
- Remove duplicates of select target properties at the end of blt_add_library and blt_add_executable. (include directories and compile defines)
- Incorrect use of cuda vs cuda_runtime targets
- Improved tutorial documentation
- Incorrect use of Fortran flags with CUDA (Thanks Robert Blake)
- Handle correctly CMake version differences with CUDA host compiler variables (Thanks Randy Settgast)
- Handle uncrustify (version 0.68) command line option changes (--no-backup)