Skip to content

[fesapi] New port #46809

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

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft

Conversation

NicolasCami
Copy link

  • Changes comply with the maintainer guide.
  • The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
  • Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx.
  • The versioning scheme in vcpkg.json matches what upstream says.
  • The license declaration in vcpkg.json matches what upstream says.
  • The installed as the "copyright" file matches what upstream says.
  • The source code of the component installed comes from an authoritative source.
  • The generated "usage text" is accurate. See adding-usage for context.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is in the new port's versions file.
  • Only one version is added to each modified port's versions file.

This port has been tested locally on Windows.

@NicolasCami
Copy link
Author

@microsoft-github-policy-service agree company="Look Up Geoscience"

@BillyONeal BillyONeal added the category:new-port The issue is requesting a new library to be added; consider making a PR! label Aug 7, 2025
@BillyONeal
Copy link
Member

It seems like this library is incompatible with our hdf5 port:

[1/2] "D:/downloads/tools/cmake-3.30.1-windows/cmake-3.30.1-windows-i386/bin/cmake.exe" -E chdir ".." "D:/downloads/tools/cmake-3.30.1-windows/cmake-3.30.1-windows-i386/bin/cmake.exe" "D:/b/fesapi/src/v2.13.0.0-459d55586b.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=D:/p/fesapi_x64-windows" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-Wno-dev" "-Wno-deprecated" "-DWITH_EXAMPLE:BOOL=OFF" "-DWITH_TEST:BOOL=OFF" "-DWITH_DOTNET_WRAPPING:BOOL=OFF" "-DWITH_JAVA_WRAPPING:BOOL=OFF" "-DWITH_PYTHON_WRAPPING:BOOL=OFF" "-DWITH_RESQML2_2:BOOL=ON" "-DCMAKE_MAKE_PROGRAM=C:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "-DBUILD_SHARED_LIBS=ON" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=D:/a/_work/1/s/scripts/toolchains/windows.cmake" "-DVCPKG_TARGET_TRIPLET=x64-windows" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=v143" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=D:/a/_work/1/s/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=x64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=D:/a/_work/1/s" "-D_VCPKG_INSTALLED_DIR=D:/installed" "-DVCPKG_MANIFEST_INSTALL=OFF"
FAILED: ../CMakeCache.txt 
"D:/downloads/tools/cmake-3.30.1-windows/cmake-3.30.1-windows-i386/bin/cmake.exe" -E chdir ".." "D:/downloads/tools/cmake-3.30.1-windows/cmake-3.30.1-windows-i386/bin/cmake.exe" "D:/b/fesapi/src/v2.13.0.0-459d55586b.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=D:/p/fesapi_x64-windows" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-Wno-dev" "-Wno-deprecated" "-DWITH_EXAMPLE:BOOL=OFF" "-DWITH_TEST:BOOL=OFF" "-DWITH_DOTNET_WRAPPING:BOOL=OFF" "-DWITH_JAVA_WRAPPING:BOOL=OFF" "-DWITH_PYTHON_WRAPPING:BOOL=OFF" "-DWITH_RESQML2_2:BOOL=ON" "-DCMAKE_MAKE_PROGRAM=C:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "-DBUILD_SHARED_LIBS=ON" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=D:/a/_work/1/s/scripts/toolchains/windows.cmake" "-DVCPKG_TARGET_TRIPLET=x64-windows" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=v143" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=D:/a/_work/1/s/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=x64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=D:/a/_work/1/s" "-D_VCPKG_INSTALLED_DIR=D:/installed" "-DVCPKG_MANIFEST_INSTALL=OFF"
-- The C compiler identification is MSVC 19.44.35211.0
-- The CXX compiler identification is MSVC 19.44.35211.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found HDF5: hdf5::hdf5-shared (found version "1.14.6") found components: C
CMake Error at CMakeLists.txt:73 (message):
  Serial HDF5 required but only parallel version found!

@dg0yt
Copy link
Contributor

dg0yt commented Aug 8, 2025

When looked at upstream, I had the impression that they apply "unusal" find strategies, probably to cover transitive usage requirements, and the port should replace that with canonical find_package for direct dependencies.

It seems like this library is incompatible with our hdf5 port:
...
CMake Error at CMakeLists.txt:73 (message):
Serial HDF5 required but only parallel version found!

"parallel" is an optional feature in port "hdf5", but it may be included in the full CI for testing purposes.

@NicolasCami
Copy link
Author

Hello,
Thanks for the review. I'm surprised that it doesn't even work for the Windows x64 target. I'm working on a project using this port on Windows, with CMake 3.31 and Visual Studio 2022 and I never had this kind of issue. I'll investigate further. In the meantime, would you like me to convert this PR to draft?
Kind regards

@NicolasCami
Copy link
Author

@dg0yt I guess you're right, currently fesapi expects hdf5 to not provide "parallel" support. I asked the maintainer of HDF5 why this is the case.

@dg0yt
Copy link
Contributor

dg0yt commented Aug 8, 2025

Please look at the code which reaches the error:
https://github.com/F2I-Consulting/fesapi/blob/a34abc00431ef430d00d8e53a18cdb0a2fe68cdc/CMakeLists.txt#L61-L77

So it is more like you need provide HDF5_PREFER_PARALLEL to reflect the actual hdf5 configuration.

-DWITH_DOTNET_WRAPPING:BOOL=OFF
-DWITH_JAVA_WRAPPING:BOOL=OFF
-DWITH_PYTHON_WRAPPING:BOOL=OFF
-DWITH_RESQML2_2:BOOL=ON
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try

Suggested change
-DWITH_RESQML2_2:BOOL=ON
-DWITH_RESQML2_2:BOOL=ON
"-DHDF5_PREFER_PARALLEL=${HDF5_WITH_PARALLEL}"

(HDF5_WITH_PARALLEL comes from hdf5's vcpkg-port-config.cmake. The "hdf5[parallel]" thing is very special...)

@BillyONeal BillyONeal marked this pull request as draft August 8, 2025 23:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants