microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS
MIT License
22.3k stars 6.19k forks source link

hdf5 cross-compile on Ubuntu 20.04 for windows failing #36461

Open neoceph opened 5 months ago

neoceph commented 5 months ago

Operating system

Ubuntu 20.04

Compiler

MinGW

Steps to reproduce the behavior

Trying to cross-compile on Ubuntu for windows the hdf5. Created the triplet file (x64-linux-windows-dynamic.cmake) and placed that inside triplets/community using the following information.

set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic)

set(VCPKG_CMAKE_SYSTEM_NAME MinGW)

set(CMAKE_C_COMPILER i686-w64-mingw32-gcc) set(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)

then issue the following command

`vcpkg install hdf5:x64-linux-windows-dynamic`

Failure logs

CMake Error: try_run() invoked in cross-compiling mode, please set the following cache variables appropriately: HAVE_IOEO_EXITCODE (advanced) For details see /home/nirjhor/Software/vcpkg/buildtrees/hdf5/x64-linux-windows-dynamic-dbg/TryRunResults.cmake CMake Error: try_run() invoked in cross-compiling mode, please set the following cache variables appropriately: H5_LDOUBLE_TO_LONG_SPECIAL_RUN (advanced) H5_LDOUBLE_TO_LONG_SPECIAL_RUNTRYRUN_OUTPUT (advanced) For details see /home/nirjhor/Software/vcpkg/buildtrees/hdf5/x64-linux-windows-dynamic-dbg/TryRunResults.cmake CMake Error: try_run() invoked in cross-compiling mode, please set the following cache variables appropriately: H5_LONG_TO_LDOUBLE_SPECIAL_RUN (advanced) H5_LONG_TO_LDOUBLE_SPECIAL_RUNTRYRUN_OUTPUT (advanced) For details see /home/nirjhor/Software/vcpkg/buildtrees/hdf5/x64-linux-windows-dynamic-dbg/TryRunResults.cmake CMake Error: try_run() invoked in cross-compiling mode, please set the following cache variables appropriately: H5_LDOUBLE_TO_LLONG_ACCURATE_RUN (advanced) H5_LDOUBLE_TO_LLONG_ACCURATE_RUNTRYRUN_OUTPUT (advanced) For details see /home/nirjhor/Software/vcpkg/buildtrees/hdf5/x64-linux-windows-dynamic-dbg/TryRunResults.cmake CMake Error: try_run() invoked in cross-compiling mode, please set the following cache variables appropriately: H5_LLONG_TO_LDOUBLE_CORRECT_RUN (advanced) H5_LLONG_TO_LDOUBLE_CORRECT_RUNTRYRUN_OUTPUT (advanced) For details see /home/nirjhor/Software/vcpkg/buildtrees/hdf5/x64-linux-windows-dynamic-dbg/TryRunResults.cmake CMake Error: try_run() invoked in cross-compiling mode, please set the following cache variables appropriately: H5_DISABLE_SOME_LDOUBLE_CONV_RUN (advanced) H5_DISABLE_SOME_LDOUBLE_CONV_RUN__TRYRUN_OUTPUT (advanced) For details see /home/nirjhor/Software/vcpkg/buildtrees/hdf5/x64-linux-windows-dynamic-dbg/TryRunResults.cmake

Additional context

No response

dg0yt commented 5 months ago

Upstream hdf5 doesn't support easy cross builds. You must detect target properties and feed it into the build.

BTW for x64, there exists an x64-mingw-dynamic triplet.
i686-w64-mingw32-gcc is for x86 AFAICT.

neoceph commented 5 months ago

Upstream hdf5 doesn't support easy cross builds. You must detect target properties and feed it into the build.

BTW for x64, there exists an x64-mingw-dynamic triplet. i686-w64-mingw32-gcc is for x86 AFAICT.

Thanks for the x64-mingw-dynamic triplet. Not surprisingly stumbling upon same error. Do you know of any resources that can give me more information about how to get the target properties and feed them into the build?

I am also going to post this on hdf5 'Issues'