Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SuiteSparse] Update and split into sub-packages (v2) #41929

Open
wants to merge 127 commits into
base: master
Choose a base branch
from

Conversation

valgur
Copy link
Contributor

@valgur valgur commented Nov 3, 2024

Continues #39297.

Additional changes in this PR:

  • Moved update_suitesparse.py to scripts/.
  • Made the "gpl" feature for suitesparse disabled by default.
  • Dropped the "complex" feature from suitesparse-cxsparse. This leaves it enabled by default, where it's supported - everything except MSVC.
  • Renamed the "compact" (default-enabled) feature to "precompiled" (default-disabled) in suitesparse-graphblas to make it easier to use.
  • Updated to the latest release (v7.8.3).

Review comments that did not get addressed:

  • The default JIT support in suitesparse-graphblas is likely still problematic, especially for cross-compilation.
  • I did not move the changes related to the replacement of suitesparse dependency with its individual components in Ceres and elsewhere to a separate PR.

Let me know if I missed anything.

Fixes #24252.


  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version.
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.

valgur added 30 commits June 14, 2024 12:50
Parallel configure fails due to race conditions with configure_file().
@LilyWangLL LilyWangLL added category:port-update The issue is with a library, which is requesting update new revision category:new-port The issue is requesting a new library to be added; consider making a PR! labels Nov 4, 2024
ports/suitesparse/vcpkg.json Outdated Show resolved Hide resolved
@LilyWangLL LilyWangLL added the requires:all-feature-testing vcpkg install port[all features supported by that port] needs to be demonstrated to function label Nov 5, 2024
@LilyWangLL LilyWangLL marked this pull request as draft November 6, 2024 06:07
@LilyWangLL
Copy link
Contributor

New error:

Installing 6/54 cuda:[email protected]#13...
Building cuda:[email protected]#13...
-- Found CUDA V12.2.140
-- Installing: F:/PRreview/vcpkg/packages/cuda_x64-windows/share/cuda/copyright
-- Performing post-build validation
Stored binaries in 1 destinations in 42.9 ms.
Elapsed time to handle cuda:x64-windows: 957 ms
......
Installing 23/54 suitesparse-cholmod[core,cuda,matrixops,modify,openmp,partition,supernodal]:[email protected]...
Building suitesparse-cholmod[core,cuda,matrixops,modify,openmp,partition,supernodal]:[email protected]...
-- Using cached DrTimothyAldenDavis-SuiteSparse-v7.8.3.tar.gz.
-- Extracting source F:/PRreview/vcpkg/downloads/DrTimothyAldenDavis-SuiteSparse-v7.8.3.tar.gz
-- Using source at F:/PRreview/vcpkg/buildtrees/suitesparse-cholmod/src/v7.8.3-ee8b79bb01.clean
-- Configuring x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:127 (message):
    Command failed: F:/PRreview/vcpkg/downloads/tools/cmake-3.30.1-windows/cmake-3.30.1-windows-i386/bin/cmake.exe F:/PRreview/vcpkg/buildtrees/suitesparse-cholmod/src/v7.8.3-ee8b79bb01.clean/CHOLMOD -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=F:/PRreview/vcpkg/packages/suitesparse-cholmod_x64-windows/debug -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DBUILD_STATIC_LIBS=0 -DCHOLMOD_GPL=ON -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF -DSUITESPARSE_USE_64BIT_BLAS=1 -DCHOLMOD_USE_CUDA=ON -DSUITESPARSE_USE_CUDA=ON -DCHOLMOD_MATRIXOPS=ON -DCHOLMOD_MODIFY=ON -DCHOLMOD_PARTITION=ON -DCHOLMOD_SUPERNODAL=ON -DCHOLMOD_USE_OPENMP=ON -DCMAKE_MAKE_PROGRAM=F:/PRreview/vcpkg/downloads/tools/ninja/1.10.2-windows/ninja.exe -DBUILD_SHARED_LIBS=ON -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=F:/PRreview/vcpkg/scripts/toolchains/windows.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DVCPKG_SET_CHARSET_FLAG=ON -DVCPKG_PLATFORM_TOOLSET=v143 -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE -DCMAKE_VERBOSE_MAKEFILE=ON -DVCPKG_APPLOCAL_DEPS=OFF -DCMAKE_TOOLCHAIN_FILE=F:/PRreview/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON -DVCPKG_CXX_FLAGS= -DVCPKG_CXX_FLAGS_RELEASE= -DVCPKG_CXX_FLAGS_DEBUG= -DVCPKG_C_FLAGS= -DVCPKG_C_FLAGS_RELEASE= -DVCPKG_C_FLAGS_DEBUG= -DVCPKG_CRT_LINKAGE=dynamic -DVCPKG_LINKER_FLAGS= -DVCPKG_LINKER_FLAGS_RELEASE= -DVCPKG_LINKER_FLAGS_DEBUG= -DVCPKG_TARGET_ARCHITECTURE=x64 -DCMAKE_INSTALL_LIBDIR:STRING=lib -DCMAKE_INSTALL_BINDIR:STRING=bin -D_VCPKG_ROOT_DIR=F:/PRreview/vcpkg -D_VCPKG_INSTALLED_DIR=F:/PRreview/vcpkg/installed -DVCPKG_MANIFEST_INSTALL=OFF
    Working Directory: F:/PRreview/vcpkg/buildtrees/suitesparse-cholmod/x64-windows-dbg
    Error code: 1
    See logs for more information:
      F:\PRreview\vcpkg\buildtrees\suitesparse-cholmod\config-x64-windows-dbg-CMakeCache.txt.log
      F:\PRreview\vcpkg\buildtrees\suitesparse-cholmod\config-x64-windows-dbg-CMakeConfigureLog.yaml.log
      F:\PRreview\vcpkg\buildtrees\suitesparse-cholmod\config-x64-windows-dbg-out.log
      F:\PRreview\vcpkg\buildtrees\suitesparse-cholmod\config-x64-windows-dbg-err.log

The error message from F:\PRreview\vcpkg\buildtrees\suitesparse-cholmod\config-x64-windows-dbg-err.log:

CMake Error at F:/PRreview/vcpkg/buildtrees/suitesparse-cholmod/src/v7.8.3-ee8b79bb01.clean/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake:367 (message):
  CUDA required for SuiteSparse but not found
Call Stack (most recent call first):
  CMakeLists.txt:41 (include)

CUDA has been installed.

Also improve the error messages for CUDA detection in CMake.
@valgur
Copy link
Contributor Author

valgur commented Nov 6, 2024

@LilyWangLL I now noticed that the project was always overriding CMAKE_CUDA_ARCHITECTURES. I fixed that and also made the CUDA detection error reporting more immediate and hopefully clearer. Can you try again?

It builds with [cuda] enabled on Linux for me. I'll try on Windows as well, but later.

@valgur valgur marked this pull request as ready for review November 6, 2024 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! category:port-update The issue is with a library, which is requesting update new revision requires:all-feature-testing vcpkg install port[all features supported by that port] needs to be demonstrated to function
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[suitesparse] Please split up SuiteSparse into its constituent packages
4 participants