* Extract vcpkg_extract_archive from vcpkg_find_acquire_program.
* Extract vcpkg_download_sourceforge from vcpkg_from_sourceforge.
This allows vcpkg_find_acquire_program to download from SourceForge without needing to temporarily change _VCPKG_EDITABLE.
* Use whether a URI is known for an entity to decide whether to downloads it rather than checking a separate supported_on_unix boolean.
* Add unparsed arguments check to vcpkg_extract_archive
* [vcpkg_configure_make] fix case sensitive comparison in PATH system dir search
* Fixes after code review
---------
Co-authored-by: Victor NIVET <vnivet@invoke.fr>
Don't enforce a hardcoded nesting limit as these limits are enforced by
GitLab itself and may change in the future. Furthermore I believe that
users can be trusted to successfully copy'n'paste the path portion of an
URL. Therefore we just require that the assumptions of our
implementation hold, i.e. that we can convert the repo path to a CMake
list by replacing `/` with `;` and that there is a repository name.
The current error message matching attempt is too strict as the error
message occasionally spells out the extension (i.e. `mt.exe` instead of
`mt`).
Co-authored-by: Monica <liuyumei01@beyondsoft.com>
* [python3] Update to 3.11.3
* Force set PythonForBuild on windows
* Set LD_LIBRARY_PATH on unix
* Always use vcpkg_find_acquire_program(PYTHON3) on windows
* Remove LD_LIBRARY_PATH shenanigans
* [vtk] Parse python version from include folder
* Fix static builds on windows
* Pass --with-build-python on unix
* [omniorb] Fix python version in patch
* Resurrect rpath patch
* [python3] fix usage
* [gobject-introspection] don't hardcode python version
* Update vcpkg_find_aquire_program(PYTHON3)
This is also required for gobject-introspection
* [paraview] don't hardcode python version
* [vtk-dicom] don't hardcode python version
* Update python in vcpkgTools.xml
* Fix host arch detection in vcpkg_find_acquire_program(PYTHON3)
* [libpq] Don't hardcode python version
* [shiva] Don't pass python variables
* [vcpkg-get-python-packages] Delete unused file, update hardcoded python version
* [python3] update to 3.11.4
* [omniorb] Use PREPEND in vcpkg_add_to_path
So that python from vcpkg is picked before system python
* libpq quickfix
* re-fix libpq
* fix vcpkg-get-python-packages
* Make windows 7 patch compatible with unix builds
* Copy pyd files to bin
Also fixes copying files that do not belong to current build tree
* Fix static builds
* Speculatively fix osx regression
* Fix omniorb on unix
* [gobject-introspection] fix windows builds
* [vtk] Update vendored copy of mpi4py for python 3.11 support
* [mdl-sdk] Fix python
* [gobject-introspection] fix the fix of a fix...
* Update versions
* Undo changes in gobject-introspection and vcpkg_find_aquire_program(PYTHON3)
---------
Co-authored-by: root <root@DESKTOP-UIPL9V8>
* scripts/msys => scripts/cmake
The "msys" directory looked like a "maintainer help" directory (like scripts/boost is) so it wasn't included in standalone distributions of vcpkg.
It seems like the correct fix for this is just to move it into the scripts/cmake directory.
* [vcpkg-ci-msys2] Add clangarm64 support
UCRT binaries for ARM64, built with clang.
* [vcpkg_find_acquire_program(PKGCONFIG)] Switch to pkgconf, add arm64
* CI
* [vcpkg-ci-msys2] New test port for msys2 freshness
* Add features for script updates
* Remove duplicate libbz2 entry
* Automatically update all msys packages, add autoconf-wrapper
* Update primary URL and mirrors
* Follow repo renames
* Fix dependencies of 'file'
* Resolve dependencies at runtime
Don't require msys2 packages to be order from dependent to independent.
This allows to directly use the packages official dependencies, even
if they contain cycles.
It also allows to maintain a stable alphabetical order of the package
declarations, even if the dependencies change over time. This helps to
avoid duplicate declaration.
* Fix updating
* [gettext] Preset more MSVC checks
* Update msys2 packages
* gettext fixes
* CI
* Simplify: Remove update-critical
Desired changes can be picked in git gui etc..
* PKGCONFIG moved
---------
Co-authored-by: Monica <v-liumonica@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
* [vcpkg-cmake-get-vars] Call 'project' early
System variables like 'APPLE' or 'ANDROID' aren't set before 'project()'.
* Get Android variables
* [openssl] Ensure that compiler is reached via 'PATH'
* Fix Android configuration
* Add 'tools' feature
* Update versions
* [openssl] Initialize android with vcpkg settings
* [openssl] Really don't build apps
* [vcpkg-cmake-get-vars] Update android vars
* [libpq] Pass openssl version from pkgconfig
* [vcpkg-cmake-get-vars] Update android vars
* [vcpkg-cmake-get-vars] Report generator
* [vcpkg-cmake-get-vars] Escape all output
* Transfer cmake-get-vars fixes
* Transfer cmake-get-vars extra flags
* no-asm for android-arm w/o neon
* [vcpkg_configure_make] Unquote as needed
Toolchain flags are passed into make via environment variables (e.g.
CFLAGS) and expanded by Makefiles regardless of quotes. And even vcm's
internal handling isn't prepared for these quotes. So we must remove
the early. This doesn't interfere with properly escaped quotes.
* Re-add lost 'project', amends 4cf7caaa
* [openssl] Fix emscripten
* fix gn path error on windows
* add quotes
* vcpkg cmake guidelines
* Fix version database.
* Use Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL instead of WARNING
* Quotes 🤦
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
* Print stack traces for failed unit tests
* Add test for vcpkg_fixup_pkgconfig.cmake
* Check for 'optimized' and 'debug' in pc files
* Check for 'NOTFOUND' and for 'ns::target' in pc files
* Check for, and fix, line continuations
* Test file path substitutions
* Move contents processing into separate function
* Update and leverage line break normalization
* Pass prefix to data processing
* Validate only the collapsed Libs
* Test removal of '<field>.private'
* Declare unit test license (same as vcpkg)
* Replace ';' with ' ' in 'Libs:'
* Disambiguate parameter variable names
* Test quoting of variables
* Fix quoting of variables
* Quote whole parameters
* Process and quote libs item-wise
* Resolve keywords 'optimized', 'debug', 'debug'
* Consistency
* CI [skip actions]
* CI [skip actions]
* Don't fail on detected errors
* Disable unit-testing for fatal errors
Co-authored-by: Billy O'Neal <bion@microsoft.com>
* Disambiguate saved log files
* CI [skip actions]
* CI [skip actions]
* CI [skip actions]
* Use ALIAS keyword instead of auto-numbering
* Update versions
* help cflags survive through libtool
* Guard -Xcompiler in case of gcc/gnu
since it doesn't like unknown compiler flags.
* export CMAKE_<lang>_COMPILER_FRONTEND_VARIANT from cmake
* v db and script changes
* also check compiler id
Co-authored-by: Cheney-Wang <850426846@qq.com>
* [python3] Make patch files contiguous.
When applying these back to the python3 repository and re-formatting,
the gap in patch file numbers requires annoying manual renaming. Debunk
that.
* [python3] Use patch files, not diffs.
Diffs require multiple steps to import into the python3 repository.
Debunk that. The patch format retains authorship information.
* [python3] Fix problems with conflicting patches.
Something modified in the static library patch was being used as a
context line in a later patch. How did this pass CI?
* [python3] Bump to 3.10.7.
* [python3] Fix Windows 7 patch.
* [python3] Back out trivial patch changes.
* [python3] Apply unconditional patches first.
* version things and stuff
* Bump Python tools to 3.10.7.
* Fix mingw
* Remove invalid transformation
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
* test osx stuff
* deactivate most of ci
* get trace output
* add required flags to the linker flags
* also look for --sysroot
* Link_args are always shared
* fix ar flags
* setup FOR_BUILD vars.
* try tricking the build.... but man configure scripts are stupid sometimes...
* try 2
* major meson rewrite
* fix duplicates
* revert --trace-expand
* update port version
* revert pipeline changes
* v db
* bump version
* v db
* set flags for rc compilers
* a few more ios fixes.
* v db
* fix osx/ios logic
* documentation and don't fatal_error in build/host machine entry calculation.
* add android/compiler target stuff from #26570
* remove extra endif
* v db
* add target param to linker flags.
* target in cpp flags
* Make vcpkg-cmake-get-vars more ios compatible
* Update scripts/get_cmake_vars/CMakeLists.txt
Co-authored-by: Matthias Kuhn <matthias@opengis.ch>
* More ios fixes
* fix target adding
* Fix broken loop
* v db
* v db
* bump date
* v db
* v db
* v db
* remove port-version 1
* v db
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
Co-authored-by: Matthias Kuhn <matthias@opengis.ch>
* [scripts] fixes for armv7l host builds
* [scripts] fix meson for 32-bit arm
* [scripts] replaced EXEC_PROGRAM with execute_process in ninja and pathelf paths in vcpkg_find_acquire_program
* add VCPKG_CMAKE_VS_GENERATOR for overriding/providing a generator if ninja cannot be used
* Wording CR.
Co-authored-by: Javier Matos Denizac <javier.matosd@gmail.com>
* use VisualStudioVersion to switch the generator.
* v db
* CR changes
* v db
Co-authored-by: Javier Matos Denizac <javier.matosd@gmail.com>
* [qt5/qmake] Pass toolchain flags to build
* v db
* forgot a dependency
* v db
* add required ar flags
* v db
* Apply suggestions from code review
Co-authored-by: Javier Matos Denizac <javier.matosd@gmail.com>
* v db
* inc port version
* v db
* qt5-base
* v db
Co-authored-by: Javier Matos Denizac <javier.matosd@gmail.com>
* WIP commit
* more jemalloc wip
* v db
* add license
* v db
* apply format diff
* fix script
* WIP commit
* fix ARFLAGS for the wrapper
* CR stuff
* v db
* use separate_arguments to add -Wl, to linker flags
* say "-Xlinker" three times and it will come.
* make assembler compile only.
* disable _FOR_BUILD if crosscompiling.
use function instead of macro.
Remove AS settings
* ignore settings for osx until somebody knows how to fix it.
* CR z_vcpkg_make_set_env
* CI retrigger
* make conflicting options an error
* remove DEFINED since the options are always defined
* use z_vcpkg_get_cmake_vars instead of including the toolchain
* fix typo
Co-authored-by: Osyotr <Osyotr@users.noreply.github.com>
* add supports expressions
* use _ENV_ instead of ENV so vcpkgs flags will overwrite any other flags.
(also fixes pdcurses using LINK)
* v db
* version
Co-authored-by: Osyotr <Osyotr@users.noreply.github.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
* pixman: add missing include and fix clang-cl builds
* v db
* use correct <> isntead of ""
* v db
* make the patch depend on _MSC_VER
* v db
* fix bug in vcpkg_configure_meson not linking WindowsApp.lib
fix another bug that system=windowsstore which meson doesn recognize
* bump port version
* v db
* [vcpkg_download_distfile] Don't check downloaded file when ALWAYS_REDOWNLOAD is passed
* [vcpkg_from_github] fix error message and correctly set VCPKG_HEAD_VERSION
* [vcpkg_from_gitlab] Use gitlab api instead of git ls-remote
* no change
* Apply suggestions from code review
Co-authored-by: Thomas1664 <46387399+Thomas1664@users.noreply.github.com>
Co-authored-by: Thomas1664 <46387399+Thomas1664@users.noreply.github.com>
* Audit use of TO_NATIVE_PATH.
TO_NATIVE_PATH should only be used when (1) pasting a path into a command line, or (2) displaying a path to a user. It must not be used before calling other CMake operations like file(WRITE.
Fixes https://github.com/microsoft/vcpkg/issues/26178
ports/ffmpeg/portfile.cmake:
Both uses are being embedded into a command line ✅
ports/gdal/dependency_win.cmake
117: This used TO_NATIVE_PATH but didn't actually connect the result. It's going on a command line so TO_NATIVE_PATH is appropriate.
Drive by: Added quotes around other uses (all of which seem to be going to command lines).
202: ${EXPAT_LIBRARY_REL} ${ZLIB_LIBRARY_REL} don't seem to be set even though they are used; I think this is wrong but I don't know for sure that it is so I'm leaving it alone for now.
ports/msmpi/portfile.cmake
All 3 uses are being embedded into a command line ✅
ports/jemalloc/fix-utilities.patch
ports/libproxy/fix-dependency-libmodman.patch
ports/qtbase/env.patch
These are in upstream content / context so it is not edited.
ports/opengl/portfile.cmake
Broken! Drive by fixes:
* Modernized checking VCPKG_BUILD_TYPE
* Ordered things consistently to be release then debug.
* Removed funny newlines.
ports/openni2/portfile.cmake
Borderline OK; it goes into an MSBuild / vcxproj. I'm leaving it alone. Drive by fixes:
* Guarded debug-only copies for VCPKG_BUILD_TYPE
* Fixed supports expression
ports/openssl/unix/CMakeLists.txt:
Unused!
ports/pthreads/portfile.cmake:
Both uses are being embedded into a command line ✅
ports/qt5-base/cmake/qt_fix_makefile_install.cmake
I'm not sure if this one is OK but it's being embedded into a file so it's probably fine.
ports/qtapplicationmanager/portfile.cmake:
I'm pretty sure this one is wrong, but it's guarded by VCPKG_TARGET_IS_WINDOWS so the ability to create damage is limited.
ports/readosm/portfile.cmake:
The use is being embedded into a command line ✅
ports/spatialite-tools/portfile.cmake:
The use is being embedded into a command line ✅
ports/sqlcipher/portfile.cmake:
Both uses are being embedded into a command line ✅
scripts/ports.cmake:
Some uses were unused, others are immediately used and printed to the console. ✅
scripts/buildsystems/vcpkg.cmake:
Fixed :)
scripts/cmake/vcpkg_build_qmake:
Looks unused.
scripts/cmake/vcpkg_build_process.cmake:
Added to console message only. ✅
scripts/cmake/vcpkg_execute_required_process_repeat.cmake:
Added to console message only. ✅
Drive by: Fixed typo in variable name in the message.
scripts/cmake/vcpkg_execute_required_process.cmake:
Added to console message only. ✅
* Fix missing license.
* Normalize PATH so that insertion of msys paths always works
This is required if the PATH variable has been modified and doesn't follow the normal windows style
* make it better
* switch path manipulations. vcpkg wrapper dir needs to come first.
* Revise generator selection
If the host is x86, assume that msbuild is requested for windows.
If msbuild is requested and suitable, use it.
Else if a particular generator is requested, use it.
Else if ninja is available, use it.
Else on non-windows host, use "Unix Makefiles".
* Revise ninja_host detection
* Revise parallel configure detection
* Consolidate ninja path setup
* Update documentation
* Use portable chdir
* [ms-gltf] Use new generator selection
* Update versions
* Fixup rpath after building dynamic libraries on linux
* Switch back to a single variable VCPKG_FIXUP_ELF_RPATH
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
* Don't force fixup in x64-linux triplet yet
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
Co-authored-by: Osyotr <8740768+Osyotr@users.noreply.github.com>
* Add support for loongarch64 cpu.
* update ci.baseline.txt
* Revert "update ci.baseline.txt"
This reverts commit 0b3f4851bc05a4101f07a865a9260915e5385763.
* Allow user to add additional options for meson within custom triplet.
Co-authored-by: Jamlys Lee <jamlys_lee@163.com>
* [vcpkg tool] Add vcpkg_install_copyright
* Make sure FILE_LIST is provided
* relative to ${SOURCE_PATH}
* Add documentation
* Add to table of contents
* Relative paths was a bad idea.
* Tell users to use the correct way
Co-authored-by: Billy O'Neal <bion@microsoft.com>
* Fix docs
* Add parameter COMMENT
* Rename to vcpkg_concat_copyright
* Fix escape
* Revert "Fix escape"
This reverts commit 53f1636705396fe5e606bf67ef72e39edc35140f.
* Revert "Rename to vcpkg_concat_copyright"
This reverts commit 6ce9152a618b37e5a914248f6ca6c8b7b54ef3e3.
* Fix escape
* Add support for single copyright file
* Update docs
* Make comment less confusing
* [ci skip] Billy CR
* [ci skip] Format
* Remove explicit checks for STREQUAL ""
* Add error msg if file doesn't exist
Co-authored-by: Billy O'Neal <bion@microsoft.com>
* Always save config.log, even on error
* Always save config.log and CMakeCache.txt[.log]
* Add SAVE_LOG_FILES option
* Make implicit lookups explicit
* Update versions
* Fix the application of VCPKG_CMAKE_CONFIGURE_OPTIONS with more than one option
VCPKG_CMAKE_CONFIGURE_OPTIONS (plural) is meant to be a list of options to be added to a cmake invocation.
But it was being applied quoted, which disallowed it from containing multiple options.
- If it was initialized with a list, cmake would get the options ";"-separated.
- If it was initialized with a blank-separated string, cmake would get the entire astring quoted as a single argument.
The fix is simple: don't (ever) quote arguments to list(APPEND) unless they are really meant to be a single element to append to the list.
* Update the version-date of vcpkg-cmake
* Update hash after rebase
* Fix vcpkg-cmake.json
In my defence, I'm new to this...
Co-authored-by: Juan Carlos Arevalo Baeza (JCAB) <jcab@ntdev.microsoft.com>
* [docs] Delete embedded documentation in favor of docs/
Drive-by for the helper ports:
1. "documentation": "https://vcpkg.io/en/docs/README.html"
2. "license": "MIT"
3. Use `include_guard(GLOBAL)` in all script files
4. Make sure any persistent variables are saved to the cache
* [docs] Restore empty regenerate.ps1 to satisfy Azure Pipelines
* [docs] PR comments
* Fix vcpkg_host_path unit test
* Fix unit test variable control
* Enable all test features by default
* Fix recognition of PREPEND
* CMake doesn't set env vars to empty value
* Remove pointless STATUS message
* synchronize cmake build scripts.
* version stuff
* fix REMOVE_ITEM and add license
* format manifest
* update version
* use LOGFILE_BASE
* version update
* readd PREFER_NINJA and print a warning that it is deprecated for vcpkg_cmake_configure
* version stuff
* sync build_cmake
* only turn off ninja on windows
* add Z_VCPKG_CHAINLOAD_TOOLCHAIN_FILE
* use z_vcpkg_select_default_vcpkg_chainload_toolchain in meson
* remove VCPKG_CMAKE_GENERATOR
* version stuff
* reduce error to warning
* remove VCPKG_CMAKE_GENERATOR form configure_cmake
* version stuff
* version stuff
* use build_dir_<config>
* version stuff
* use ninja variable insead of pure ninja cmd
* version bump
* use ninja variable instead of calling ninja directly
* acquire ninja
* move the acquire.
* remove setting of cmake_prefix_path
* version stuff
* bump version date
* version stuff
* bump ashes baseline
* remove VCPKG_CMAKE_GENERATOR reference
* fix wrong variable reference due to refactor
* version stuff
Co-authored-by: Alexander Neumann <you@example.com>
Co-authored-by: Billy Robert O'Neal <bion@microsoft.com>
* put default generator and toolchain selection into a function
* update version-date of script
* version stuff
* restore PREFER_NINJA behavior on windows
use elseif instead of else
* cr ws change
* missing ,
* version stuff
* CR scripts/cmake/vcpkg_configure_cmake.cmake
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* CR changes
* revert baseline
* update version
* bump version
* version stuff
* ci retrigger
Co-authored-by: Alexander Neumann <you@example.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>