aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/gmsh
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/gmsh')
-rw-r--r--vcpkg/ports/gmsh/installdirs.diff24
-rw-r--r--vcpkg/ports/gmsh/linking-and-naming.diff49
-rw-r--r--vcpkg/ports/gmsh/portfile.cmake122
-rw-r--r--vcpkg/ports/gmsh/usage4
-rw-r--r--vcpkg/ports/gmsh/vcpkg.json51
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"
+ ]
+ }
+ }
+}