From: Rafael Sadowski Subject: Re: clang.port.mk: fix detection of clang-scan-deps To: ports@openbsd.org, phessler@openbsd.org, Theo Buehler Date: Tue, 7 Jul 2026 18:44:32 +0200 On Mon Jul 06, 2026 at 10:21:12AM +0200, Jeremie Courreges-Anglas wrote: > > As reported by phessler: > > audio/openal: /bin/sh: /usr/local/bin/clang-scan-deps-22: not found > > and as analyzed by tb: > > [cmake] walks the path with clang-scan-deps-22.1, then clang-scan-deps-22, then clang-scan-deps. so if llvm/22 is installed, that takes priority. > > clang-scan-deps is detected in the same manner as ar and ranlib in > /usr/local/share/cmake/Modules/Compiler/Clang-FindBinUtils.cmake so > the diff below uses the same approach to force the use of the > executable from base. All our architectures with ports-clang also > ship base-clang and thus clang-scan-deps, so while slightly incorrect > I think this is good enough. > > With this, the openal build no longer fails if llvm%22 is installed at > configure time and then removed. ok? > > > Index: cmake.port.mk > =================================================================== > RCS file: /home/cvs/ports/devel/cmake/cmake.port.mk,v > diff -u -p -r1.91 cmake.port.mk > --- cmake.port.mk 13 May 2026 07:10:23 -0000 1.91 > +++ cmake.port.mk 6 Jul 2026 08:19:18 -0000 > @@ -165,6 +165,7 @@ _CMAKE_PROCESSING_LANGUAGE = ASM OBJCXX > .for LANG in ${_CMAKE_PROCESSING_LANGUAGE} > CONFIGURE_ARGS := -DCMAKE_${LANG}_COMPILER_AR:FILEPATH=/usr/bin/ar \ > -DCMAKE_${LANG}_COMPILER_RANLIB:FILEPATH=/usr/bin/ranlib \ > + -DCMAKE_${LANG}_COMPILER_CLANG_SCAN_DEPS:FILEPATH=/usr/bin/clang-scan-deps \ > ${CONFIGURE_ARGS} > .endfor > > -- > jca > Now we end up with a longer list of use-less informations: CMake Warning: Manually-specified variables were not used by the project: CMAKE_ASM_COMPILER_AR CMAKE_ASM_COMPILER_CLANG_SCAN_DEPS CMAKE_ASM_COMPILER_RANLIB CMAKE_Fortran_COMPILER_AR CMAKE_Fortran_COMPILER_CLANG_SCAN_DEPS CMAKE_Fortran_COMPILER_RANLIB CMAKE_OBJCXX_COMPILER_AR CMAKE_OBJCXX_COMPILER_CLANG_SCAN_DEPS CMAKE_OBJCXX_COMPILER_RANLIB CMAKE_OBJC_COMPILER_AR CMAKE_OBJC_COMPILER_CLANG_SCAN_DEPS CMAKE_OBJC_COMPILER_RANLIB PYTHON_EXECUTABLE PYTHON_INCLUDE_DIR PYTHON_LIBRARY_DIRS Python3_EXECUTABLE Python3_INCLUDE_DIR Python3_LIBRARY_DIRS I dont think it makes sense to define this for objc, objcxx, c or even Fortran. Index: cmake.port.mk =================================================================== RCS file: /cvs/ports/devel/cmake/cmake.port.mk,v diff -u -p -r1.92 cmake.port.mk --- cmake.port.mk 6 Jul 2026 09:22:29 -0000 1.92 +++ cmake.port.mk 7 Jul 2026 16:40:32 -0000 @@ -165,11 +165,11 @@ _CMAKE_PROCESSING_LANGUAGE = ASM OBJCXX .for LANG in ${_CMAKE_PROCESSING_LANGUAGE} CONFIGURE_ARGS := -DCMAKE_${LANG}_COMPILER_AR:FILEPATH=/usr/bin/ar \ -DCMAKE_${LANG}_COMPILER_RANLIB:FILEPATH=/usr/bin/ranlib \ - -DCMAKE_${LANG}_COMPILER_CLANG_SCAN_DEPS:FILEPATH=/usr/bin/clang-scan-deps \ ${CONFIGURE_ARGS} .endfor CONFIGURE_ARGS := -DCMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line \ + -DCMAKE_CXX_COMPILER_CLANG_SCAN_DEPS:FILEPATH=/usr/bin/clang-scan-deps \ -DCMAKE_AR:FILEPATH=/usr/bin/ar \ -DCMAKE_NM:FILEPATH=/usr/bin/nm \ -DCMAKE_RANLIB:FILEPATH=/usr/bin/ranlib \