Releases: LLNL/blt
Releases · LLNL/blt
v0.7.1
v0.7.0
Added
- Added
WORKING_DIRECTORYoption toblt_add_testandblt_add_benchmark. - Added
BLT_CXX_FILE_EXTSvariable (split out ofBLT_C_FILE_EXTS) for use in modifiedblt_split_source_list_by_languagemacro.
Changed
- Modified
blt_convert_to_system_includesto handle multiple targets and recursively update includes for dependencies. - Modified
blt_split_source_list_by_languageto accept aCXX_LISTargument for splitting out C and CXX sources. If not specified, theC_LISTwill contain both C and C++ sources. - HIP support now uses enable_language(HIP), and specifying a HIP compiler must use the variable
CMAKE_HIP_COMPILER. - Updated GoogleBenchmark to 1.9.1
Fixed
- Removed GoogleTest, GoogleMock, and GoogleBenchmarks calling CMake's
GNUInstallDirs
which was causing non-deterministic install variables depending on your combination of
static/shared libraries and if any of the previously mentioned TPLs were enabled. - Enable C language support and emit a warning when GoogleTest or GoogleMock are enabled but
not the C language. - Guard HIP C smoketest against projects that don't enable C as a language in their projects.
- Changes benchmark custom target
run_benchmarksto exclusively run benchmarks (not other general tests). - Fix HIP smoketests to fail on HIP errors.
- Add
-Wno-tautological-compareto GoogleTest/Mock/Benchmark for IntelLLVM compilers to silence
warning.
v0.6.2
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
v0.6.0
Added
- Added support for C++23. Note: XL and PGI do not support C++23.
- Adds a
clang_tidy_styleCMake target to allowclang-tidyto fix errors in-place.
This requires aCLANGAPPLYREPLACEMENTS_EXECUTABLECMake variable to point to
theclang-apply-replacementsexecutable in addition to theCLANGTIDY_EXECUTABLE.
Also adds a correspondingENABLE_CLANGAPPLYREPLACEMENTSCMake option.
Note that theclang_tidy_styletarget is not added to thestyletarget and must be run separately. - Added the
blt_install_tpl_setupsmacro, which installs files to setup and create
targets for the third-party libraries OpenMP, MPI, CUDA, and HIP. This macro is meant to
replaceblt_export_tpl_targetsas the preferred way to setup third-party libraries with BLT. - Added
blt::`` namespaced aliases for BLT targets,cuda,cuda_runtime,mpi, andopenmp. 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, andblt::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_compilesnow works with alias targets
v0.5.3
[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_variablesmacro to print variables in current scope, with regex filtering on variable names and values - Added
DEPENDS_ONoptional parameter toblt_check_code_compilesmacro to allow for checking if a feature is available in a third-party imported target. - Added
CONFIGURATIONSandOMP_NUM_THREADSoptions toblt_add_benchmark
Fixed
- Guard HIP compiler flag
--rocm-path=/path/to/rocmagainst Crayftn compiler earlier than 15.0.0. - Fix doubling of
INTERFACE_INCLUDE_DIRECTORIESinblt_patch_target(... TREAT_INCLUDES_AS_SYSTEM true).
Removed
- Removed tracking all sources in a project via
${PROJECT_NAME}_ALL_SOURCES.
v0.5.2
Added
- Added
blt_convert_to_system_includesmacro to convert existing interface includes to system interface includes. blt_check_code_compileswhich compiles a C++ code snippet and returns the result.- Added variable
BLT_CMAKE_IMPLICIT_LINK_LIBRARIES_EXCLUDEfor 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_propertiesmacro 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
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
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_targetsmacro to add BLT-provided third-party library
targets to an export set.
Changed
BLT_C_FILE_EXTSupdated to include.cuh- Fold
BLT_CLANG_HIP_ARCHinto theCMAKE_HIP_ARCHITECTURESvariable - When using
ENABLE_ALL_WARNINGS, append the flag to the beginning ofCMAKE_{C,CXX}_FLAGSinstead
of the end - HIP support now uses the
hip-config.cmakefile provided by ROCM. This
modification requires a change to the BLT-provided HIP target names, and they
are now available under thebltprefix:blt::hipandblt::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.cis considered a.cfile.
v0.4.1
[Version 0.4.1] - Release date 2021-07-20
Added
- Added compilation of HIP with clang using
ENABLE_CLANG_HIPandBLT_CLANG_HIP_ARCH
Changed
- XL: Use compiler flag
-std=c++14instead of-std=c++1ywhenBLT_CXX_STDis set toc++14
Fixed
- Simpified the clang-format version regex that was causing hangs on some version strings.