HIP: CMAKE_HIP_FLAGS doesn't play well with any user-flags from the command line
Discovered while working on VTK-m, using a cmake configure line like:
${cmake_build_dir}/bin/cmake -S ${vtkm_src_dir} -B ${vtkm_build_dir} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF\
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_SHARED_LIBS=ON\
-DVTKm_NO_DEPRECATED_VIRTUAL=ON \
-DVTKm_ENABLE_KOKKOS=ON \
-DVTKm_ENABLE_RENDERING=OFF \
-DVTKm_ENABLE_TESTING=ON \
-DVTKm_ENABLE_BENCHMARKS=ON\
-DCMAKE_HIP_ARCHITECTURES="gfx908" \
-DCMAKE_PREFIX_PATH="${kokkos_install_dir};${benchmark_install_dir}" \
-DCMAKE_INSTALL_PREFIX=${vtkm_install_dir} \
-DCMAKE_HIP_COMPILER_TOOLKIT_ROOT=${rocm_path}\
-DCMAKE_CXX_COMPILER=${rocm_path}/llvm/bin/clang++ \
-DCMAKE_C_COMPILER=${rocm_path}/llvm/bin/clang \
-DCMAKE_CXX_FLAGS="-g -ggdb -ftime-trace -O2" \
-DCMAKE_C_FLAGS="-g -ggdb -ftime-trace -O2" \
**-DCMAKE_HIP_FLAGS="-g -ggdb -ftime-trace -O2"**
results in a failed HIP compiler test in CMakeTestHIPCompiler.cmake
complaining about (in this case) an unknown flag "-O2--cuda-host-only [sic]", because:
https://gitlab.kitware.com/cmake/cmake/-/blob/v3.22.0-rc1/Modules/CMakeTestHIPCompiler.cmake#L13
appends --cuda-host-only
w/o prefixing any spaces if the string is not empty. I was able to "fix" this locally by simply adding a leading space to the the CMAKE_HIP_FLAGS
in my local version of CMakeTestHIPCompiler.cmake
Edited by Brad King