diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/gmsh | |
Diffstat (limited to 'vcpkg/ports/gmsh')
| -rw-r--r-- | vcpkg/ports/gmsh/installdirs.diff | 24 | ||||
| -rw-r--r-- | vcpkg/ports/gmsh/linking-and-naming.diff | 49 | ||||
| -rw-r--r-- | vcpkg/ports/gmsh/portfile.cmake | 122 | ||||
| -rw-r--r-- | vcpkg/ports/gmsh/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/gmsh/vcpkg.json | 51 |
5 files changed, 250 insertions, 0 deletions
diff --git a/vcpkg/ports/gmsh/installdirs.diff b/vcpkg/ports/gmsh/installdirs.diff new file mode 100644 index 0000000..c688518 --- /dev/null +++ b/vcpkg/ports/gmsh/installdirs.diff @@ -0,0 +1,24 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 11b2662a5..e2764d751 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2014,7 +2014,7 @@ if(ENABLE_BUILD_LIB) + endif() + if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC) + install(TARGETS shared EXPORT gmshTargets +- RUNTIME DESTINATION ${GMSH_LIB} ++ RUNTIME DESTINATION ${GMSH_BIN} + ARCHIVE DESTINATION ${GMSH_LIB} + LIBRARY DESTINATION ${GMSH_LIB} + OPTIONAL) +@@ -2038,10 +2038,6 @@ if(ENABLE_ONELAB AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/onelab) + endif() + if(ENABLE_BUILD_LIB OR ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC) + install(FILES ${GMSH_API} DESTINATION ${GMSH_INC}) +- install(FILES ${GMSH_PY} DESTINATION ${GMSH_LIB}) +- install(FILES ${GMSH_JL} DESTINATION ${GMSH_LIB}) +- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/METADATA DESTINATION +- ${GMSH_LIB}/gmsh-${GMSH_PYTHON_VERSION}.dist-info) + if(ENABLE_PRIVATE_API) + install(FILES ${GMSH_PRIVATE_API} DESTINATION ${GMSH_INC}/gmsh) + if(HAVE_CONTRIB_EIGEN) # the private API depends on Eigen diff --git a/vcpkg/ports/gmsh/linking-and-naming.diff b/vcpkg/ports/gmsh/linking-and-naming.diff new file mode 100644 index 0000000..d219115 --- /dev/null +++ b/vcpkg/ports/gmsh/linking-and-naming.diff @@ -0,0 +1,49 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 46937b2..67ddec5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1748,6 +1748,7 @@ endforeach() + if(ENABLE_BUILD_LIB) + add_library(lib STATIC ${GMSH_SRC}) + set_target_properties(lib PROPERTIES OUTPUT_NAME gmsh) ++ target_link_libraries(lib ${LINK_LIBRARIES}) + if(MSVC) + set_target_properties(lib PROPERTIES DEBUG_POSTFIX d) + if(ENABLE_MSVC_STATIC_RUNTIME) +@@ -1793,26 +1794,23 @@ endif() + + # binary targets + if(HAVE_FLTK) +- if(ENABLE_BUILD_DYNAMIC) +- add_executable(gmsh WIN32 src/common/Main.cpp) +- target_link_libraries(gmsh shared) +- else() +- add_executable(gmsh WIN32 src/common/Main.cpp ${GMSH_SRC}) +- endif() ++ add_executable(gmsh WIN32 src/common/Main.cpp) + # we could add this to create a minimal app bundle even without install + # if(APPLE AND NOT ENABLE_OS_SPECIFIC_INSTALL) + # set_target_properties(gmsh PROPERTIES MACOSX_BUNDLE ON + # MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/utils/misc/gmsh_dev.plist) + # endif() + else() +- if(ENABLE_BUILD_DYNAMIC) +- add_executable(gmsh src/common/Main.cpp) +- target_link_libraries(gmsh shared) +- else() +- add_executable(gmsh src/common/Main.cpp ${GMSH_SRC}) +- endif() ++ add_executable(gmsh src/common/Main.cpp) ++endif() ++if(TARGET shared) ++ target_link_libraries(gmsh shared) ++elseif(TARGET lib) ++ target_link_libraries(gmsh lib) ++else() ++ target_sources(gmsh ${GMSH_SRC}) + endif() +-target_link_libraries(gmsh ${LINK_LIBRARIES}) ++set_target_properties(gmsh PROPERTIES PDB_NAME gmsh.exe) + + # OS specific linker options + if(WIN32 AND NOT MSVC) diff --git a/vcpkg/ports/gmsh/portfile.cmake b/vcpkg/ports/gmsh/portfile.cmake new file mode 100644 index 0000000..3cbc301 --- /dev/null +++ b/vcpkg/ports/gmsh/portfile.cmake @@ -0,0 +1,122 @@ +string(REPLACE "." "_" UNDERSCORES_VERSION "${VERSION}")
+
+vcpkg_from_gitlab(
+ GITLAB_URL https://gitlab.onelab.info
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO gmsh/gmsh
+ REF "${PORT}_${UNDERSCORES_VERSION}"
+ SHA512 45992b474b9e25aa681474740699dc5601abb1cdcbd4e6d3a0eca14a49cac576e085b3d2ffd11d39eab64aa2452c6a411975afabba668305650ec34b4b0040ff
+ HEAD_REF master
+ PATCHES
+ installdirs.diff
+ linking-and-naming.diff
+)
+
+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_OS_SPECIFIC_INSTALL=OFF
+ -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)
+
+vcpkg_cmake_config_fixup()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+)
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt")
diff --git a/vcpkg/ports/gmsh/usage b/vcpkg/ports/gmsh/usage new file mode 100644 index 0000000..e5aba88 --- /dev/null +++ b/vcpkg/ports/gmsh/usage @@ -0,0 +1,4 @@ +gmsh provides CMake targets: + + find_package(gmsh CONFIG REQUIRED) + target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:gmsh::shared>,gmsh::shared,gmsh::lib>) diff --git a/vcpkg/ports/gmsh/vcpkg.json b/vcpkg/ports/gmsh/vcpkg.json new file mode 100644 index 0000000..321bf91 --- /dev/null +++ b/vcpkg/ports/gmsh/vcpkg.json @@ -0,0 +1,51 @@ +{ + "name": "gmsh", + "version": "4.14.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", + "license": "LGPL-2.0-or-later", + "supports": "!uwp", + "dependencies": [ + "blas", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "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" + ] + } + } +} |