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.