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

Update cmake to support win builds #83

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

Conversation

ngodber
Copy link

@ngodber ngodber commented Jun 25, 2021

@qnzhou and @folded I'd really appreciate a review on the changes I made to get carve building on msvc. This work is in prep for creating a conda-forge feedstock for this great library to hopefully make it and pymesh more accessible.

@folded
Copy link
Contributor

folded commented Jun 25, 2021

I'm not certain that I trust building windows DLLs. Generally speaking C++ dynamic objects on all platforms need careful thought. I'm also not sure I know why you would want to do this, unless PyMesh uses ctypes to access carve. It would be better to statically compile carve into the python module that is itself a DLL, but only has to expose C symbols.

@ngodber
Copy link
Author

ngodber commented Jun 25, 2021

@folded thanks for the feedback. Assuredly this is fairly new ground for me so I can't comment on static vs dynamic. Am I right in thinking the issue is around ABI? The last package I submitted to conda forge the reviewer indicated that conda forge prefers dynamic libs. My guess is that given packages are all built using the same compiler architecture ABI isn't a concern. Although im doing this in order to package pymesh, carve will be packaged independently so that other projects can make us of it. I can setup the build to provide static and dynamic libs in the package.

@ngodber
Copy link
Author

ngodber commented Jun 25, 2021

PyMesh/PyMesh#302 the broader effort is here.

@ngodber
Copy link
Author

ngodber commented Jun 28, 2021

@folded, beyond static vs dynamic, do you see any issues with the modifications made (most of which were around compiling with modern msvc)?

@folded
Copy link
Contributor

folded commented Jun 29, 2021

I've considered switching carve to using bazel to build. Would that be of interest? I feel like - especially for c++ code - hermetic builds are a very sensible approach.

@ngodber
Copy link
Author

ngodber commented Jun 29, 2021

@folded unfortunately bazel isn't support in conda-forge at this time though I am sure it will be added in time.

My primary goal is to substantially improve access to solid geometry libs from within python which, at time of writing, is poor. I just managed to get builds going though it ended up taking substantially more time than I had planned. I would hugely appreciate your review of the builds at conda-forge/staged-recipes#15430. Unfortunately I've run out of time to finish pymesh build itself but I'm hoping another is willing to carry the ball forward!

@ngodber
Copy link
Author

ngodber commented Oct 20, 2022

@folded are you interested in merging this? otherwise I'll nuke this branch and its associated conda-forge repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants