-
-
Notifications
You must be signed in to change notification settings - Fork 17
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
scotch v7.0.2 + cmake build #70
scotch v7.0.2 + cmake build #70
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
From this version we may consider switching to the CMake build system. I did not tried, this would permit to create shared library natively by setting |
Started looking into this, but it appears shared libs don't actually work, even with the cmake builds: https://gitlab.inria.fr/scotch/scotch/-/issues/16 I tried, and linking fails because internal dependencies aren't correctly expressed (e.g. libscotch -> libscotcherr). Might not be a big patch, though. |
The error:
is because CMake by default requires both a C and a C++ compiler, I think this can be fixed by changing the beginning of
to:
|
patch upstream to use cmake COMPONENTs to manage the split install separate outputs for scotchmetis/parmetis
linking wasn't actually an issue, just needed I think the main question now is outputs, which are easier to control with e.g. cmake components. Do we want to stick with the current two outputs (scotch: libscotch, scotch binaries, libesmumps, libscotchmetis, ptscotch: ptscotch bins, libptscotch, libptscotchparmetis (no libptesmumps anymore). Or split further? The scotch cmake files are organized along scotch, libscotch, libesmumps, libmetis (+ pt variants). I looked at ubuntu, and they have:
What about the metis/parmets.h headers? Previously, we moved them into Other choices:
|
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipe:
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
…pi; workaround mpi stuff
Hi @traversaro @minrk, I pushed this PR a bit and it now passes for all platforms except osx-arm64. On osx-arm64, we will need to build osx-64 first to then use the resulting binaries. Would either of you happy to take a look at that? |
So my current idea is to create a new basic cmake project that generates the cmake_minimum_required(VERSION 3.10)
project(dummysizes LANGUAGES C)
set(GENERATED_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include)
set(LIBSCOTCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libscotch)
file(MAKE_DIRECTORY ${GENERATED_INCLUDE_DIR})
option(BUILD_PTSCOTCH "Build PT-Scotch" ON)
add_executable(dummysizes ../libscotch/dummysizes.c)
set_target_properties(dummysizes PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
if(BUILD_PTSCOTCH)
find_package(MPI COMPONENTS C)
if(NOT MPI_C_FOUND)
message(FATAL_ERROR "MPI required to compile PT-Scotch")
endif()
add_executable(ptdummysizes ../libscotch/dummysizes.c)
set_target_properties(ptdummysizes PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(ptdummysizes PRIVATE MPI::MPI_C)
add_dependencies(ptdummysizes scotch_h)
set_target_properties(ptdummysizes PROPERTIES
COMPILE_FLAGS -DSCOTCH_PTSCOTCH)
endif(BUILD_PTSCOTCH)
##############
# scotch.h #
##############
# Generate scotch.h
add_custom_command(OUTPUT ${GENERATED_INCLUDE_DIR}/scotch.h
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../libscotch/library.h ${CMAKE_CURRENT_BINARY_DIR}
COMMAND $<TARGET_FILE:dummysizes> ${CMAKE_CURRENT_BINARY_DIR}/library.h ${GENERATED_INCLUDE_DIR}/scotch.h DEPENDS dummysizes
COMMENT "Generate scotch.h")
add_custom_target(scotch_h
DEPENDS "${GENERATED_INCLUDE_DIR}/scotch.h") This should be invoked by the native compiler. Then the actual cmake files would need to be adapted to use the generated executables rather than |
Yes, adding The upstream issue is conda/conda-build#3308 btw. |
All done, thanks :) |
Thanks again for the reviews @minrk @traversaro - all your comments have now been addressed :) |
Looks like conda-forge had a quota issue on Travis, but all looks well. Presumably this will reset at the start of the month tomorrow, and we can re-run and merge. |
travis is having problems
…nda-forge-pinning 2023.01.31.03.10.11
Hi! This is the friendly automated conda-forge-linting service. I was trying to look for recipes to lint for you, but it appears we have a merge conflict. Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug. |
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
month turnover didn't fix travis, so I switched those builds over to azure, which is a lot slower but tends to be more reliable. Since cross-compile is working for mac-arm, it should hopefully work for these, too, without any further changes. |
@minrk By now, Travis-CI is almost dead for open-source projects, conda-forge should stop relying on it. |
Yup, working on it. There are no other ppc providers that I'm aware of. |
Hi! This is the friendly conda-forge automerge bot! I considered the following status checks when analyzing this PR:
Thus the PR was passing and merged! Have a great day! |
Huzzah, thanks @Tobias-Fischer! |
It is very likely that the current package version for this feedstock is out of date.
Checklist before merging this PR:
license_file
is packagedInformation about this PR:
@conda-forge-admin,
please add bot automerge
in the title and merge the resulting PR. This command will add our bot automerge feature to your feedstock.bot-rerun
label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase@conda-forge-admin, please rerun bot
in a PR comment to have theconda-forge-admin
add it for you.Pending Dependency Version Updates
Here is a list of all the pending dependency version updates for this repo. Please double check all dependencies before merging.
Dependency Analysis
We couldn't run dependency analysis due to an internal error in the bot. :( Help is very welcome!
This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/autotick-bot/actions/runs/1962647822, please use this URL for debugging.