-
Notifications
You must be signed in to change notification settings - Fork 553
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
GMT #5199
GMT #5199
Conversation
…t on windows as the dependency NetCDF is not available on windows yet
Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
The errors on windows are:
if that rings a bell for someone, suggestions are helpful! |
For |
According to julia --compile=min -e 'using BinaryBuilderBase; BinaryBuilderBase.runshell(Platform("x86_64", "windows"))'
sandbox:${WORKSPACE} # for file in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/*.a; do nm $file | grep __imp__set_fmode && echo "found in ${file}"; done
0000000000000000 I __imp__set_fmode
found in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/libmsvcr100.a
0000000000000000 I __imp__set_fmode
found in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/libmsvcr110.a
0000000000000000 I __imp__set_fmode
found in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/libmsvcr120.a
0000000000000000 I __imp__set_fmode
found in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/libmsvcr120_app.a
0000000000000000 I __imp__set_fmode
found in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/libmsvcr120d.a
0000000000000000 I __imp__set_fmode
found in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/libmsvcr90.a
0000000000000000 I __imp__set_fmode
found in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/libmsvcr90d.a
0000000000000000 I __imp__set_fmode
found in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/libucrt.a
0000000000000000 I __imp__set_fmode
found in /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/lib/libucrtbase.a
|
thanks. If I manually compile this with
it works & the whole code compiles. Do you happen to know how I can tell |
You have to add the libraries names to the target which needs them, for example with |
Some creative uses of linker flags:
Linking a source directory?!?!? |
Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
ok, I keep being confused with CMake. If I manually add this at the end:
it works.
which does not work. |
Could you give it another try? I fixed the |
There are still lots of mistakes in the source code of GMT: all occurrences of |
Hmm, let me see if I understand it. You revising(???) the GMT C code and not accepting it and therefore this attempt of creating a We may all be very dumb on GMT (I'm not by far the largest contributor) but we are are a bit aware of the And you may also do not like (or believe) to hear that along the GMT developing time we have found dozens of memory access bugs that were detected only by the non-standard compliant compilers like MSVC and that gcc and clang had happily let go. |
No, you do not understand correctly. I am pointing out factual errors in the source code which prevent correct compilation. We cannot merge a PR if compilation fails for a platform (the alternative being excluding that platform altogether). And compilation for Windows was failing here 🤷 |
Yes, I'm aware of that but the point is: Is it still failing after the upstream fixes? And if yes, where/why. |
No, I haven't tried, but I just looked for obvious mistakes. |
We could continue discussing this for ever, which I will not. At least while the tone maintains. |
In case it wasn't obvious, |
Yes, I know. And on Windows the dlls have embedded their own names and that' why we cannot simple rename them and expect it to work. |
No one is expecting anything to magically work, that has to be fixed, no one has done it. |
Sure. Not blaming anyone. |
I found the
|
To get back to this discussion, it seems to me that at least the
julia> versioninfo()
Julia Version 1.8.3
Commit 0434deb161 (2022-11-14 20:14 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 8 × 12th Gen Intel(R) Core(TM) i3-1215U
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, goldmont)
Threads: 1 on 8 virtual cores
PS C:\Users\boris\.julia\dev\GMT_jll> julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.8.3 (2022-11-14)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
(@v1.8) pkg> dev https://github.com/giordano/GMT_jll.jl
PS C:\Users\boris\.julia\dev\GMT_jll> julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.8.3 (2022-11-14)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
(@v1.8) pkg> activate .
Activating project at `C:\Users\boris\.julia\dev\GMT_jll`
julia> using GMT_jll
julia> run(GMT_jll.gmt())
GMT - The Generic Mapping Tools, Version 6.5.0_19413d4_2023.03.03 [64-bit] [MP] [8 cores]
(c) 1991-2023 The GMT Team (https://www.generic-mapping-tools.org/team.html).
Supported in part by the US National Science Foundation (http://www.nsf.gov/)
and volunteers from around the world.
GMT is distributed under the GNU LGPL License (http://www.gnu.org/licenses/lgpl.html).
Dependencies: netCDF, GDAL, PCRE, FFTW, LAPACK, ZLIB, Ghostscript, GraphicsMagick, FFmpeg.
usage: gmt [options]
gmt <module name> [<module-options>]
options:
--help List descriptions of available GMT modules.
--new-script[=L] Write GMT modern mode script template to standard output.
Optionally specify bash|csh|batch [Default is current shell].
--new-glue=name Write C code for external supplements to glue them to GMT.
--show-bindir Show directory with GMT executables.
--show-citation Show the most recent citation for GMT.
--show-classic Show all classic module names.
--show-classic-core Show all classic module names (core only).
--show-cores Show number of available cores.
--show-datadir Show directory/ies with user data.
--show-dataserver Show URL of the remote GMT data server.
--show-dcw Show the DCW data version used.
--show-doi Show the DOI for the current release.
--show-gshhg Show the GSHHG data version used.
--show-library Show path of the shared GMT library.
--show-modules Show all modern module names.
--show-modules-core Show all modern module names (core only).
--show-plugindir Show directory for plug-ins.
--show-sharedir Show directory for shared GMT resources.
--show-userdir Show full path of user's ~/.gmt dir
--version Print GMT version number.
if <module-options> is '=' we call exit (0) if module exist and non-zero otherwise.
Process(setenv(`'C:\Users\boris\.julia\artifacts\b00f4bcc0d779dfd70def088d9a629941a6e23b1\bin\gmt.exe'`,["PATH=C:\\Users\\boris\\AppData\\Local\\Programs\\Julia-1.8.3\\bin;C:\\Users\\boris\\.julia\\artifacts\\0235fabbecfa4e38a3c8e87491b9d4f3e7fe9848\\bin;C:\\Users\\boris\\.julia\\artifacts\\701aaf00cce776fdefff2d993e09800fab61e884\\bin;C:\\Users\\boris\\.julia\\artifacts\\a5b7c195243758d88c64cd8547e527fbace3877b\\bin;C:\\Users\\boris\\.julia\\artifacts\\431cad9bf95e817b5fc813666e353ae36b2202c0\\bin;C:\\Users\\boris\\.julia\\artifacts\\4543a35904e5905f4c387199cc080e27cc202cec\\bin;C:\\Users\\boris\\.julia\\artifacts\\c024ee55cc5bbe84dd4411a68b02dd9a3797fdcd\\bin;C:\\Users\\boris\\.julia\\artifacts\\4ad4b701a165bfb1dec449667cffd85d0a16dcc2\\bin;C:\\Users\\boris\\.julia\\artifacts\\ac8a1c48a02b397f6ce1beb6473de8bbb3b1e0ce\\bin;C:\\Users\\boris\\.julia\\artifacts\\2e9a29903fddf79371cd5f82327f70ada670a234\\bin;C:\\Users\\boris\\.julia\\artifacts\\17025344af7bdfe8a7ac4e8887f0953f1dc50376\\bin;C:\\Users\\boris\\.julia\\artifacts\\01b969d96551292e78f0acfa204f120b09f4e7b4\\bin;C:\\Users\\boris\\.julia\\artifacts\\f2d9050c5dba019ebf272fe7da44f78c5491672d\\bin;C:\\Users\\boris\\.julia\\artifacts\\bcdd265e21bd7089238f661440be60aed9e9e696\\bin;C:\\Users\\boris\\.julia\\artifacts\\511fc12b661678285fd116ffcee88cbaf043b869\\bin;C:\\Users\\boris\\.julia\\artifacts\\72037f1415327f12277eed0521c861517630a0ba\\bin;C:\\Users\\boris\\.julia\\artifacts\\a845328b7acbc4442b321885d186869a90297089\\bin;C:\\Users\\boris\\.julia\\artifacts\\41eb25ea50f277f03154d52354602687fb1abc84\\bin;C:\\Users\\boris\\.julia\\artifacts\\18a38c3afb63ea0df1832d3f946b21b58ba401ea\\bin;C:\\Users\\boris\\.julia\\artifacts\\5d74056071181523cbb62efeddd86132d4db12de\\bin;C:\\Users\\boris\\.julia\\artifacts\\db3d60d39813bf806d1b4a8032e3a2f892c75738\\bin;C:\\Users\\boris\\.julia\\artifacts\\b62e4d49f0fa9e8d9daccda7af8ed7315580d6dc\\bin;C:\\Users\\boris\\.julia\\artifacts\\9c9d5d21081d79fb66bb9aaeea87960a22c5599b\\bin;C:\\Users\\boris\\.julia\\artifacts\\3628616b5a5a8fd8628079ae4fb0d8948fdb37bc\\bin;C:\\Users\\boris\\.julia\\artifacts\\a214c5171a32bff0583c70a08027d44e8ef22cc2\\bin;C:\\Users\\boris\\.julia\\artifacts\\dcd0721a2a49cfb8916395419701035173b57955\\bin;C:\\Users\\boris\\.julia\\artifacts\\83d62d00715073512a2e76bbb95e027bf701a4e3\\bin;C:\\Users\\boris\\.julia\\artifacts\\b7dd1809d0626eac3bf6f97ba8ccfbb6cc63c509\\bin;C:\\Users\\boris\\.julia\\artifacts\\5e6cdd29fca31b08026313af46c1db0c724ebbb2\\bin;C:\\Users\\boris\\.julia\\artifacts\\f572524225d8a9266c31227f4e28a0a1091bd882\\bin;C:\\Users\\boris\\.julia\\artifacts\\a97c68e84f8d803b96763aa872ed49381fb9cb7e\\bin;C:\\Users\\boris\\.julia\\artifacts\\5af028f5ee6fc5d6923b4769eca4bc199914e6bd\\bin;C:\\Users\\boris\\.julia\\artifacts\\38d4f07d7bebeb1d35473280d1ef56f7d8e6991d\\bin;C:\\Users\\boris\\.julia\\artifacts\\e5872943f1078a6397a4f4d0f760db959ec50630\\bin;C:\\Users\\boris\\.julia\\artifacts\\f9f799e6ae3fe7f244bb55052db7ff1cea876c27\\bin;C:\\Users\\boris\\.julia\\artifacts\\4f67e82ee394e74ca63b7dc589dcc9218c12b20a\\bin;C:\\Users\\boris\\.julia\\artifacts\\6a5456c156251deff41ae40ac8dfbb3d8c808ffe\\bin;C:\\Users\\boris\\.julia\\artifacts\\c916a560fa109a4db3d6938a8ab1a6a8b4a09731\\bin;C:\\Users\\boris\\.julia\\artifacts\\3aff78028a0bb2ad40ebc3ae7e465a52dcbe2730\\bin;C:\\Users\\boris\\.julia\\artifacts\\ee9d999d28081333cf8ec10830fd77b75359226b\\bin;C:\\Users\\boris\\.julia\\artifacts\\2ae55b726ee1f4063216b19a1ffb59d3d5b0a6eb\\bin;C:\\Users\\boris\\.julia\\artifacts\\017f69ccc5ddfc0405e5bf8326a572300498e06c\\bin;C:\\Users\\boris\\.julia\\artifacts\\1b573c0aaf4a3a73f296a61c2cacbee17ac0d4e3\\bin;C:\\Users\\boris\\.julia\\artifacts\\7d57f5f863fd09f31bbff6d08d53bfc07f49c3e6\\bin;C:\\Users\\boris\\.julia\\artifacts\\6f5e7c4e3249d2073c64e6beaa3abcd7ae4fa9bc\\bin;C:\\Users\\boris\\.julia\\artifacts\\0c393ed4faa8cdf04f992ff605abaed1c1172f69\\bin;C:\\Users\\boris\\.julia\\artifacts\\160ce27d1af09edffbb7d9f1833f6d3bdefad491\\bin;C:\\Users\\boris\\.julia\\artifacts\\c6e48d3563556547ad4cc0021c2cffa066a079df\\bin;C:\\Users\\boris\\.julia\\artifacts\\da2e0ac84abbe712490f8ee73aca3d512f1eaaab\\bin;C:\\Users\\boris\\.julia\\artifacts\\5b9eb98a95e718b9ddc16d01fd70b19736b13e0b\\bin;C:\\Users\\boris\\.julia\\artifacts\\e2bc28a38e71d07d41a27f8d4b3132c5d1b5a22d\\bin;C:\\Users\\boris\\.julia\\artifacts\\cca2b0693e0ae8df2daca37d0779bb7209f32c5f\\bin;C:\\Users\\boris\\.julia\\artifacts\\b00f4bcc0d779dfd70def088d9a629941a6e23b1\\bin;C:\\Users\\boris\\AppData\\Local\\Programs\\Julia-1.8.3\\bin\\..\\lib\\julia;C:\\Users\\boris\\AppData\\Local\\Programs\\Julia-1.8.3\\bin\\..\\lib;C:\\Users\\boris\\AppData\\Local\\Programs\\Julia-1.8.3\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\dotnet\\;C:\\Program Files\\Git\\cmd;C:\\Users\\boris\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\boris\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\boris\\AppData\\Local\\Programs\\Julia-1.8.3\\bin;C:\\ProgramData\\boris\\GitHubDesktop\\bin", "USERDOMAIN_ROAMINGPROFILE=DESKTOP-488U587", "HOMEPATH=\\Users\\boris", "VSCODE_INJECTION=1", "PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.CPL", "SESSIONNAME=Console", "SYSTEMROOT=C:\\WINDOWS", "APPDATA=C:\\Users\\boris\\AppData\\Roaming", "PSMODULEPATH=C:\\Users\\boris\\Documents\\WindowsPowerShell\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules", "COMMONPROGRAMW6432=C:\\Program Files\\Common Files" … "PROGRAMFILES(X86)=C:\\Program Files (x86)", "VSCODE_GIT_ASKPASS_MAIN=c:\\Users\\boris\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass-main.js", "PROGRAMFILES=C:\\Program Files", "CHROME_CRASHPAD_PIPE_NAME=\\\\.\\pipe\\LOCAL\\crashpad_30280_YPJHJPUITZAYFZRU", "LOGONSERVER=\\\\DESKTOP-488U587", "DRIVERDATA=C:\\Windows\\System32\\Drivers\\DriverData", "ORIGINAL_XDG_CURRENT_DESKTOP=undefined", "FONTCONFIG_PATH=C:\\Users\\boris\\.julia\\artifacts\\c916a560fa109a4db3d6938a8ab1a6a8b4a09731\\etc\\fonts", "SYSTEMDRIVE=C:", "PROCESSOR_ARCHITECTURE=AMD64"]), ProcessExited(0)) So I think this can be merged. |
Yes, but the problem is that the
I wonder if it has something to do with JuliaLang/julia#48419 Note, I was able to produce a GMT_jll for linux with |
On my machine the above command works fine: julia> using LibCURL_jll, NetCDF_jll, GDAL_jll, FFTW_jll, PCRE_jll, LAPACK32_jll, OpenBLAS32_jll, FFMPEG_jll, Glib_jll, Ghostscript_jll, CompilerSupportLibraries_jll, LLVMOpenMP_jll, GMT_jll
julia> perhaps there is something else on your machine that interferes? FWIW; julia> NetCDF_jll.libnetcdf_path
"C:\\Users\\boris\\.julia\\artifacts\\4543a35904e5905f4c387199cc080e27cc202cec\\bin\\libnetcdf-19.dll"
julia> NetCDF_jll.LIBPATH_list
6-element Vector{String}:
"C:\\Users\\boris\\AppData\\Local\\Programs\\Julia-1.8.3\\bin"
"C:\\Users\\boris\\.julia\\artifacts\\0235fabbecfa4e38a3c8e87491b9d4f3e7fe9848\\bin"
"C:\\Users\\boris\\.julia\\artifacts\\701aaf00cce776fdefff2d993e09800fab61e884\\bin"
"C:\\Users\\boris\\.julia\\artifacts\\a5b7c195243758d88c64cd8547e527fbace3877b\\bin"
"C:\\Users\\boris\\.julia\\artifacts\\431cad9bf95e817b5fc813666e353ae36b2202c0\\bin"
"C:\\Users\\boris\\.julia\\artifacts\\4543a35904e5905f4c387199cc080e27cc202cec\\bin"
julia> using LAPACK32_jll
julia> LAPACK32_jll.liblapack_path
"C:\\Users\\boris\\.julia\\artifacts\\f572524225d8a9266c31227f4e28a0a1091bd882\\bin\\liblapack.dll"
julia> works on |
And was it with the Anyway, I just noticed that we need to add the |
No I am not using any additionally installed packages, but rather the ones that were used to compile I´m using windows 11 for this along with the
julia> ]dev https://github.com/giordano/GMT_jll.jl
Cloning git-repo `https://github.com/giordano/GMT_jll.jl`
Resolving package versions...
No Changes to `C:\Users\boris\.julia\environments\v1.8\Project.toml`
No Changes to `C:\Users\boris\.julia\environments\v1.8\Manifest.toml`
julia> ;
shell> cd .julia\\dev\\GMT_jll\\
C:\Users\boris\.julia\dev\GMT_jll
julia> ]
(@v1.8) pkg> activate .
Activating project at `C:\Users\boris\.julia\dev\GMT_jll`
(GMT_jll) pkg> precompile
Updating registry at `C:\Users\boris\.julia\registries\General.toml`
Updating `C:\Users\boris\.julia\dev\GMT_jll\Project.toml`
[692b3bcd] + JLLWrappers v1.4.1
[b22a6f82] + FFMPEG_jll v4.4.2+2
[f5851436] + FFTW_jll v3.3.10+0
[a7073274] + GDAL_jll v301.600.200+0
[61579ee1] + Ghostscript_jll v9.55.0+4
[7746bdde] + Glib_jll v2.74.0+2
[17f450c3] + LAPACK32_jll v3.10.0+0
[1d63c593] + LLVMOpenMP_jll v15.0.4+0
[7243133f] + NetCDF_jll v400.902.5+1
⌅ [656ef2d0] + OpenBLAS32_jll v0.3.17+0
[2f80f16e] + PCRE_jll v8.44.0+0
[e66e0078] ~ CompilerSupportLibraries_jll ⇒ v0.5.2+0
[deac9b47] ~ LibCURL_jll ⇒ v7.84.0+0
Updating `C:\Users\boris\.julia\dev\GMT_jll\Manifest.toml`
[692b3bcd] + JLLWrappers v1.4.1
[21216c6a] + Preferences v1.3.0
[8ce61222] + Arrow_jll v10.0.0+1
[6e34b625] + Bzip2_jll v1.0.8+0
[83423d85] + Cairo_jll v1.16.1+1
[2e619515] + Expat_jll v2.4.8+0
[b22a6f82] + FFMPEG_jll v4.4.2+2
[f5851436] + FFTW_jll v3.3.10+0
[a3f928ae] + Fontconfig_jll v2.13.93+0
[d7e528f0] + FreeType2_jll v2.10.4+0
[559328eb] + FriBidi_jll v1.0.10+0
[a7073274] + GDAL_jll v301.600.200+0
[d604d12d] + GEOS_jll v3.11.0+0
[78b55507] + Gettext_jll v0.21.0+0
[61579ee1] + Ghostscript_jll v9.55.0+4
[7746bdde] + Glib_jll v2.74.0+2
[3b182d85] + Graphite2_jll v1.3.14+0
[0234f1f7] + HDF5_jll v1.12.2+2
[2e76f6c2] + HarfBuzz_jll v2.8.1+1
[aacddb02] + JpegTurbo_jll v2.1.91+0
[b39eb1a6] + Kerberos_krb5_jll v1.19.3+0
[c1c5ebd0] + LAME_jll v3.100.1+0
[17f450c3] + LAPACK32_jll v3.10.0+0
[88015f11] + LERC_jll v3.0.0+1
[1d63c593] + LLVMOpenMP_jll v15.0.4+0
[dd4b983a] + LZO_jll v2.10.1+0
[08be9ffa] + LibPQ_jll v14.3.0+1
⌅ [e9f186c6] + Libffi_jll v3.2.2+1
[d4300ac3] + Libgcrypt_jll v1.8.7+0
[7add5ba3] + Libgpg_error_jll v1.42.0+0
[94ce4f54] + Libiconv_jll v1.16.1+2
[4b2f31a3] + Libmount_jll v2.35.0+0
[89763e89] + Libtiff_jll v4.4.0+0
[38a345b3] + Libuuid_jll v2.36.0+0
[d3a379c0] + LittleCMS_jll v2.12.0+0
[5ced341a] + Lz4_jll v1.9.3+0
[7243133f] + NetCDF_jll v400.902.5+1
[e7412a2a] + Ogg_jll v1.3.5+1
⌅ [656ef2d0] + OpenBLAS32_jll v0.3.17+0
[643b3616] + OpenJpeg_jll v2.4.0+0
[458c3c95] + OpenSSL_jll v1.1.20+0
[91d4177d] + Opus_jll v1.3.2+0
[2f80f16e] + PCRE_jll v8.44.0+0
[58948b4f] + PROJ_jll v900.100.0+0
[30392449] + Pixman_jll v0.40.1+0
[76ed43ae] + SQLite_jll v3.41.0+0
[e0b8ae26] + Thrift_jll v0.16.0+0
[02c8fc9c] + XML2_jll v2.10.3+0
[aed1982a] + XSLT_jll v1.1.34+0
[4f6342f7] + Xorg_libX11_jll v1.6.9+4
[0c0b7dd1] + Xorg_libXau_jll v1.0.9+4
[a3789734] + Xorg_libXdmcp_jll v1.1.3+4
[1082639a] + Xorg_libXext_jll v1.3.4+4
[9a3f8284] + Random
[ea8e919c] + SHA v0.7.0
[9e88b42a] + Serialization
[6462fe0b] + Sockets
[fa267f1f] + TOML v1.0.0
[a4e569a6] + Tar v1.10.1
[cf7118a7] + UUIDs
[4ec0a83e] + Unicode
[e66e0078] + CompilerSupportLibraries_jll v0.5.2+0
[deac9b47] + LibCURL_jll v7.84.0+0
[29816b5a] + LibSSH2_jll v1.10.2+0
[c8ffd9c3] + MbedTLS_jll v2.28.0+0
[14a3606d] + MozillaCACerts_jll v2022.2.1
[4536629a] + OpenBLAS_jll v0.3.20+0
[efcefdf7] + PCRE2_jll v10.40.0+0
[83775a58] + Zlib_jll v1.2.12+3
[8e850b90] + libblastrampoline_jll v5.1.1+0
[8e850ede] + nghttp2_jll v1.48.0+0
[3f19e933] + p7zip_jll v17.4.0+0
Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
Precompiling project...
1 dependency successfully precompiled in 2 seconds. 75 already precompiled.
julia> using LibCURL_jll, NetCDF_jll, GDAL_jll, FFTW_jll, PCRE_jll, LAPACK32_jll, OpenBLAS32_jll, FFMPEG_jll, Glib_jll, Ghostscript_jll, CompilerSupportLibraries_jll, LLVMOpenMP_jll, GMT_jll
julia> run(`$(GMT_jll.gmt())`)
GMT - The Generic Mapping Tools, Version 6.5.0_19413d4_2023.03.03 [64-bit] [MP] [8 cores]
(c) 1991-2023 The GMT Team (https://www.generic-mapping-tools.org/team.html).
Supported in part by the US National Science Foundation (http://www.nsf.gov/)
and volunteers from around the world.
GMT is distributed under the GNU LGPL License (http://www.gnu.org/licenses/lgpl.html).
Dependencies: netCDF, GDAL, PCRE, FFTW, LAPACK, ZLIB, Ghostscript, GraphicsMagick, FFmpeg.
usage: gmt [options]
gmt <module name> [<module-options>]
options:
--help List descriptions of available GMT modules.
--new-script[=L] Write GMT modern mode script template to standard output.
Optionally specify bash|csh|batch [Default is current shell].
--new-glue=name Write C code for external supplements to glue them to GMT.
--show-bindir Show directory with GMT executables.
--show-citation Show the most recent citation for GMT.
--show-classic Show all classic module names.
--show-classic-core Show all classic module names (core only).
--show-cores Show number of available cores.
--show-datadir Show directory/ies with user data.
--show-dataserver Show URL of the remote GMT data server.
--show-dcw Show the DCW data version used.
--show-doi Show the DOI for the current release.
--show-gshhg Show the GSHHG data version used.
--show-library Show path of the shared GMT library.-show-citation Show the most recent citation for GMT.
--show-classic Show all classic module names.
--show-classic-core Show all classic module names (core only).
--show-cores Show number of available cores.
--show-datadir Show directory/ies with user data.
--show-dataserver Show URL of the remote GMT data server.
--show-dcw Show the DCW data version used.
--show-doi Show the DOI for the current release.
--show-gshhg Show the GSHHG data version used.
--show-library Show path of the shared GMT library.
--show-modules Show all modern module names.
--show-modules-core Show all modern module names (core only).
--show-plugindir Show directory for plug-ins.
--show-sharedir Show directory for shared GMT resources.
--show-userdir Show full path of user's ~/.gmt dir
--version Print GMT version number.
if <module-options> is '=' we call exit (0) if module exist and non-zero otherwise.
julia> args="--version"
"--version"
julia> run(`$(GMT_jll.gmt()) $(args)`);
6.5.0_19413d4_2023.03.03 For completion once again my system; julia> versioninfo()
Julia Version 1.8.3
Commit 0434deb161 (2022-11-14 20:14 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 8 × 12th Gen Intel(R) Core(TM) i3-1215U
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, goldmont)
Threads: 1 on 8 virtual cores Perhaps you have a different system and it does not work on that one? As mentioned, it works on 1.9 as well (for me). |
The option julia> args="--show-userdir"
"--show-userdir"
julia> run(`$(GMT_jll.gmt()) $(args)`);
C:/Users/boris/.gmt you can catch the output of the above command into a string with; julia> out = read(`$(GMT_jll.gmt()) $(args)`, String)
"C:/Users/boris/.gmt\n"
julia> out = readchomp(`$(GMT_jll.gmt()) $(args)`)
"C:/Users/boris/.gmt" |
Good, thanks. So that must mean that the If you can load the
vs
|
I suppose I need to indicate in If you can tell me exactly how to set that up and reproduce the plot command above I’m happy to try. |
I think I saw that you can do Then it would only be to run the command I posted. But there are more and this doesn't look good. The errors come from the binaries themselves and to investigate them I need to debug bur for one side I would need to build them myself locally and for another I certainly do not want to use
|
yes, I can confirm that the tests above don´t work. It is encouraging, though, that quite a few of the tests do work. |
The big shit is that, when running from CLI my MinGW build passes all tests of its equivalent MSVC build. But that proves little because the code paths followed by the CLI and wrapped versions (Julia, Matlab, Python) are not the same. It should be relatively easy if I could debug the But I agree that this could be merged though not yet accepted as a Conda binaries replacement. Unless there is no problems with the Linux and MacOS binaries. Yet, before that the |
One thing if you know about that. I see that the dependencies have
Not exactly sure how to convert those compat numbers to programs versions. I take it that it means
but there is an elephant in the room which is the HDF5 versionupon which they linked againt. HDF5 is very, very picky with their versions. One cannot have a |
There are good news though. My Linux (Ubuntu 20.04) build in Codespaces does not fail in those cases (though my WSL with Ubuntu 22.04 still errors with libcurl). But it errors
clearly the |
You can see that in the build recipes for NetCDF:
I believe this is done because the BB version always need to increase if you add new options or dependencies to the BB build (even when the upstream version remains the same). Therefore it may quickly become out of whack with the real version number, so it is multiplied by 100 & incremented accordingly. |
according to the build recipe of ExecutableProduct("gs", :gs), Check whether that is available as Edit: Yes it is indeed available in Ghostscript_jll. If not done automatically, you have to make |
OK, I have this working now on Linux but with a few strange errors on the Codespaces (where some test) fail but all pass in my WSL installation. Clearly we need more testing bur for that we also need this merged. Note, on Windows the JLL is not used because of other strange errors that I'll need to find a way to debug them. Boris, could you please rebuild the JLL using a more recent GMT commit? Several issues in GMT were fixed/improved since the last build. |
done (using the latest build of GMT that passed the CI tests). |
@giordano: we believe this is now ok to be merged (if you're happy as well). |
This creates a BinaryBuilder version of GMT, the Generic Mapping Tools.