-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
[gmsh] Add new port #21896
Merged
Merged
[gmsh] Add new port #21896
Changes from all commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
3126ddc
add: gmsh
xarthurx f2cb545
add: versioning for gmsh.
xarthurx b000646
[gmsh] Re-factory code
5941215
Fix install, remove some features due to lack required dependencies.
a466ead
version
44f047d
Do not support uwp officially
6e22d57
version
1bf2aec
Update ports/gmsh/portfile.cmake
JackBoosY ad8d17f
Update versions/g-/gmsh.json
JackBoosY 7841722
Group the options
a330c25
version
0647c13
Merge branch 'master' of https://github.com/xarthurx/vcpkg
acf148a
version
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index 7040709..a4b8c61 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -1872,12 +1872,30 @@ endif() | ||
|
||
# mark targets as optional so we can install them separately if needed | ||
# (e.g. "make lib" or "make shared" followed by "make install/fast") | ||
-install(TARGETS gmsh DESTINATION ${GMSH_BIN} OPTIONAL) | ||
+install( | ||
+ TARGETS gmsh | ||
+ RUNTIME DESTINATION bin | ||
+ LIBRARY DESTINATION lib | ||
+ ARCHIVE DESTINATION lib | ||
+ OPTIONAL | ||
+) | ||
if(ENABLE_BUILD_LIB) | ||
- install(TARGETS lib DESTINATION ${GMSH_LIB} OPTIONAL) | ||
+ install( | ||
+ TARGETS lib | ||
+ RUNTIME DESTINATION bin | ||
+ LIBRARY DESTINATION lib | ||
+ ARCHIVE DESTINATION lib | ||
+ OPTIONAL | ||
+ ) | ||
endif() | ||
if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC) | ||
- install(TARGETS shared DESTINATION ${GMSH_LIB} OPTIONAL) | ||
+ install( | ||
+ TARGETS shared | ||
+ RUNTIME DESTINATION bin | ||
+ LIBRARY DESTINATION lib | ||
+ ARCHIVE DESTINATION lib | ||
+ OPTIONAL | ||
+ ) | ||
endif() | ||
|
||
if(ENABLE_ONELAB AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/onelab) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
vcpkg_from_gitlab( | ||
GITLAB_URL https://gitlab.onelab.info | ||
OUT_SOURCE_PATH SOURCE_PATH | ||
REPO gmsh/gmsh | ||
REF gmsh_4_9_0 | ||
SHA512 e70a09741a86a9131094e77742078aec1cc94517e1d7c855c257bc93c21c057e25c7ac5168d31ec4d905d78f31d5704faf63bfd3a81b4b9e2ebbcfacf2fdaa8b | ||
HEAD_REF master | ||
PATCHES fix-install.patch | ||
) | ||
|
||
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_LIB) | ||
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) | ||
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_RUNTIME) | ||
|
||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS | ||
FEATURES | ||
opencascade ENABLE_OCC | ||
opencascade ENABLE_OCC_CAF | ||
opencascade ENABLE_OCC_TBB | ||
mpi ENABLE_MPI | ||
zipper ENABLE_ZIPPER | ||
) | ||
|
||
|
||
vcpkg_cmake_configure( | ||
SOURCE_PATH "${SOURCE_PATH}" | ||
DISABLE_PARALLEL_CONFIGURE | ||
OPTIONS | ||
${FEATURE_OPTIONS} | ||
-DENABLE_BUILD_LIB=${BUILD_LIB} | ||
-DENABLE_BUILD_SHARED=${BUILD_SHARED} | ||
-DENABLE_MSVC_STATIC_RUNTIME=${STATIC_RUNTIME} | ||
-DGMSH_RELEASE=ON | ||
-DENABLE_PACKAGE_STRIP=ON | ||
-DENABLE_SYSTEM_CONTRIB=ON | ||
# Not implement | ||
-DENABLE_GRAPHICS=OFF # Requires mesh, post, plugins and onelab | ||
-DENABLE_POST=OFF | ||
-DENABLE_PLUGINS=OFF | ||
-DENABLE_MESH=OFF | ||
-DENABLE_PARSER=OFF | ||
-DENABLE_PROFILE=OFF | ||
-DENABLE_PRIVATE_API=OFF | ||
-DENABLE_QUADMESHINGTOOLS=OFF | ||
-DENABLE_PRO=OFF | ||
-DENABLE_TOUCHBAR=OFF | ||
-DENABLE_VISUDEV=OFF | ||
-DENABLE_BLAS_LAPACK=OFF | ||
-DENABLE_CAIRO=OFF | ||
-DENABLE_CGNS=OFF | ||
-DENABLE_CGNS_CPEX0045=OFF | ||
-DENABLE_EIGEN=OFF | ||
-DENABLE_GMP=OFF | ||
-DENABLE_OPENMP=OFF | ||
-DENABLE_POPPLER=OFF | ||
-DENABLE_WRAP_JAVA=OFF | ||
-DENABLE_WRAP_PYTHON=OFF | ||
# Requies dependencies which not included in vcpkg yet | ||
-DENABLE_3M=OFF | ||
-DENABLE_ALGLIB=OFF | ||
-DENABLE_ANN=OFF | ||
-DENABLE_BAMG=OFF | ||
-DENABLE_BLOSSOM=OFF | ||
-DENABLE_BUILD_DYNAMIC=OFF # Needs gfortran | ||
-DENABLE_FLTK=OFF # Needs executable fltk-config | ||
-DENABLE_DINTEGRATION=OFF | ||
-DENABLE_GEOMETRYCENTRAL=OFF | ||
-DENABLE_DOMHEX=OFF | ||
-DENABLE_GETDP=OFF | ||
-DENABLE_GMM=OFF | ||
-DENABLE_HXT=OFF | ||
-DENABLE_KBIPACK=OFF | ||
-DENABLE_MATHEX=OFF | ||
-DENABLE_MED=OFF | ||
-DENABLE_METIS=OFF | ||
-DENABLE_MMG=OFF | ||
-DENABLE_MPEG_ENCODE=OFF | ||
-DENABLE_MUMPS=OFF | ||
-DENABLE_NUMPY=OFF | ||
-DENABLE_NETGEN=OFF | ||
-DENABLE_PETSC4PY=OFF | ||
-DENABLE_ONELAB_METAMODEL=OFF | ||
-DENABLE_ONELAB=OFF | ||
-DENABLE_OPENACC=OFF | ||
-DENABLE_OPTHOM=OFF | ||
-DENABLE_OSMESA=OFF | ||
-DENABLE_P4EST=OFF | ||
-DENABLE_PETSC=OFF | ||
-DENABLE_QUADTRI=OFF | ||
-DENABLE_REVOROPT=OFF | ||
-DENABLE_SLEPC=OFF | ||
-DENABLE_SOLVER=OFF | ||
-DENABLE_TCMALLOC=OFF | ||
-DENABLE_VOROPP=OFF | ||
-DENABLE_WINSLOWUNTANGLER=OFF | ||
# experimental | ||
-DENABLE_BUILD_ANDROID=OFF | ||
-DENABLE_BUILD_IOS=OFF | ||
|
||
-DENABLE_OS_SPECIFIC_INSTALL=OFF # Needs system permission | ||
-DENABLE_RPATH=OFF # Should use dependencies in vcpkg | ||
-DENABLE_TESTS=OFF | ||
) | ||
|
||
vcpkg_cmake_install() | ||
|
||
vcpkg_copy_tools(TOOL_NAMES gmsh AUTO_CLEAN) | ||
BillyONeal marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") | ||
|
||
file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
{ | ||
"name": "gmsh", | ||
"version": "4.9.0", | ||
"description": "Gmsh is an open source 3D finite element mesh generator with a built-in CAD engine and post-processor.", | ||
"homepage": "https://gmsh.info", | ||
"supports": "!uwp", | ||
"dependencies": [ | ||
"blas", | ||
{ | ||
"name": "vcpkg-cmake", | ||
"host": true | ||
} | ||
], | ||
"features": { | ||
"graphics": { | ||
"description": "Enable building graphics lib even without GUI (advanced)", | ||
"dependencies": [ | ||
"libjpeg-turbo", | ||
"libpng", | ||
"opengl", | ||
"zlib" | ||
] | ||
}, | ||
"mpi": { | ||
"description": "Enable MPI (experimental, not used for meshing)", | ||
"dependencies": [ | ||
"openmpi" | ||
] | ||
}, | ||
"occ": { | ||
"description": "Enable OpenCASCADE modules", | ||
"dependencies": [ | ||
"caf", | ||
"freetype", | ||
"opencascade", | ||
"tbb" | ||
] | ||
}, | ||
"zipper": { | ||
"description": "Enable Zip file compression/decompression", | ||
"dependencies": [ | ||
"zlib" | ||
] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"versions": [ | ||
{ | ||
"git-tree": "d01377e2003c3ea5ef7a6b9fb215a086e5f75eed", | ||
"version": "4.9.0", | ||
"port-version": 0 | ||
} | ||
] | ||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there some kind of rationale as to which of these are turned on vs. off? I don't really know how to evaluate if this is correct or not but I see yet another scientific compute project that depends on the universe of optional dependencies and am scared 👻
Also, is there a good way to make sure if/when the version is updated that we know what the new optional dependencies are to turn off?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the CMakeLists.txt:
This option is used to get gmsh version.
Since we use the release, so it should be turn on.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JackBoosY Perhaps I chose a bad example option. There are a ton of options in this list that look like they control optional dependencies, and I don't know how to evaluate how or why various ones of those are turned on. (Of course the first option in the list is the one that just tells it it's a release copy :()