You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I fail to find documentation (or a specification) for the package installation layout.
In particular, I would like to know where to properly place tools like curl-config or geos-config, i.e. executable scripts which provide information about how to use the corresponding libraries.
Software which uses theses script (e.g. gdal) expects them to be found by name via the PATH environment variable or to be provided explicit by parameters (e.g. gdal's --with-geos)
This is what I found in vcpkg:
The release variant of these scripts (curl-config, geos-config) is currently installed to share/${PORT} The debug variant (which could provide the d-suffixed library names) is dropped,
Fixed.
vcpkg_copy_tools defaults to dealing with tools/${PORT}
vcpkg_configure_make installs tools to tools/${PORT}/bin tools/${PORT}/sbin tools/${PORT}/debug/bin tools/${PORT}/debug/sbin
vcpkg_configure_meson has undocumented options ADDITIONAL_NATIVE_BINARIES, ADDITIONAL_CROSS_BINARIES which are used by some ports like tools/${PORT}/<COMPONENT>
vcpkg_cmake_config_fixup adjusts the path of tools references in cmake config files to tools/${PORT}
dbus installs debug tools to debug/tools/${PORT}.
Some tools which shall not automatically be in the (CMAKE_PROGRAM_)PATH are installed to manual-tools/${PORT}.
The Linuxish standard for this would be libexec
and it is used, too.
My questions:
When to use tools and when to use another prefix?
Where to place debug variants, if needed?
Where to place tools created for the host during a cross-build, vs. tools created for the target?
ANSWER: Host tools must be built in the host triplet only.
COMMENT: This can create bootstrapping problems, example: luajit (target -> host -> target), qt5-base (qmake and mkspecs).
Shouldn't the modification of the PATH environment be restricted to explicitly declared (host) dependencies instead of globbing tools/*?
I fail to find documentation (or a specification) for the package installation layout.
In particular, I would like to know where to properly place tools like
curl-configorgeos-config, i.e. executable scripts which provide information about how to use the corresponding libraries.Software which uses theses script (e.g. gdal) expects them to be found by name via the
PATHenvironment variable or to be provided explicit by parameters (e.g. gdal's--with-geos)This is what I found in vcpkg:
The release variant of these scripts (
curl-config,geos-config) is currently installed toshare/${PORT}The debug variant (which could provide the d-suffixed library names) is dropped,Fixed.
PATHenvironment variable byvcpkg.cmake,even for cross-builds (Android, iOS)(since [vcpkg.cmake] Setup CMAKE_PROGRAM_PATH for the host if possible #23322:) for the host triplet:toolstools/*(but no extra subdirectories)and all subdirectories (since [vcpkg.cmake] Setup CMAKE_PROGRAM_PATH for the host if possible #23322)CMAKE_PROGRAM_PATHcmake variable:tools\<DEPENDENCY>This variable is used by
cmake_find_programwhich is sometimes called withPATH_SUFFIXES bin(FindMPI.cmake[openmpi] find_package(MPI) doesn't work correctly for debug configuration #18151), sometimes without suffixes (FindGettext.cmake[gettext] msgfmt (and other gettext bin tools) missing on macOS & Windows #13518).toolstools/${PORT}tools/${PORT}/bintools/${PORT}/sbintools/${PORT}/debug/bintools/${PORT}/debug/sbintools/${PORT}/<COMPONENT>tools/${PORT}debug/tools/${PORT}.manual-tools/${PORT}.The Linuxish standard for this would be
libexecand it is used, too.
My questions:
toolsand when to use another prefix?ANSWER: Host tools must be built in the host triplet only.
COMMENT: This can create bootstrapping problems, example:
luajit(target -> host -> target),qt5-base(qmake and mkspecs).PATHenvironment be restricted to explicitly declared (host) dependencies instead of globbingtools/*?