Avoid wrong use of popular but ambiguous variables (`WIN32` etc.) in
scripts and portfiles by detection in CI.
Sometimes the variables are used wrongly, and sometimes this isn't
caught in PR review. This PR tries to catch those variables (when in the
active code path in script mode). [This can happen to every
contributor](https://github.com/microsoft/vcpkg/pull/34356#discussion_r1360074122),
even if he/she knows the rules ... vcpkg is raising the bar higher than
usual, having to deal with targets and hosts even in script mode.
(`b2-options.cmake` (boost fragment) shows where we get if we don't pay
attention: the same code being used in script mode (`WIN32` meaning
host) and in project mode (`WIN32` meaning target).)
The new check doesn't break any user builds because it relies on command
line options. However it changes the ABI hashes.
* Fix lib suffix matching
* Preserve flags when transforming standard libs
* Use separate_arguments
* Fix transform
* [vcpkg_configure_make] Fix SKIP_CONFIGURE
* Update linker flags
* Update linker flags
* Fix regex substitution
* Restore full CI
* Reuse configure's linker flags setup
* Handle ldflags separately from linker flags
* Factor out common definitions
* Control docdir and mandir for debug
* Use vcpkg_list APPEND
* Don't pass -avoid-version into configure
* Restore lost escaping
* Copy --target from LDFLAGS to CC/CXX
* Consolidate macros into one function
* Elaborate ABI flags
* Elaborate flag processing
* Update warnings for embedded space
* Update windows tool path fixup
* [libudns] No cross builds
* [vcpkg_find_acquire_program] Add VSCLANG
Find VS's clang without fallback to the giant LLVM download.
* [gmp] Update CCAS setup
* [nettle] Update CCAS setup
* Fix VSCLANG
* WIP
* Restore processing of isysroot
* [nettle] Fix assembler option
* [liburing] Adjust
* Variable name changes
* Remove redundant separate arguments
* Move -m32/-m64 to ABI flags
* Unify ABIFLAGS spelling
* CI
* Revert VSCLANG
* Use GNU Make to build autotools ports on FreeBSD (microsoft/vcpkg#32282)
* Fix flag removal
* Drop separation of ABI flags
* Handle '-arch=...'
* Revert "Control docdir and mandir for debug"
This reverts commit d8293a199745ced3e8e77a274ebe2005d9a213be.
* [icu] Pass uwp option to pkgdata
* Restore old osx flags hook
* Add triplet variable to make libtool pass --target to linker
---------
Co-authored-by: Schaich, Alonso <alonsoschaich@fastmail.fm>
* [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
* [vcpkg_build_make] only link against manual-link folder if exists
* [vcpkg_configure_make] don't set LD_LIBRARY_PATH
This is not recommended during the normal build process
https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
* [vcpkg_build_make] Only set the lib path if exists
* [vcpkg_configure_make] Resore handling of _LINK_ environment variable
* [vcpkg_build_make] Backup and restore CPPFLAGS CFLAGS CXXFLAGS RCFLAGS
* [vcpkg_build_make] Fix name of LINKER FLAGS detected from cmake
* [vcpkg_build_make] replace obolete _VAR_SUFFIX with cmake_buildtype
* [vcpkg docs] Change how documenting port functions works
Instead of using `##`, use comment blocks for documentation.
Also, add some minor docs and change RST -> MD
so we actually get docs generated.
* add CI stuff
* regenerate docs
* fix vcpkg_find_acquire_program to not use _execute_process
* [fontconfig] update fontconfig
* [libiconv] update to make
* [gettext] update to make
* [vcpkg_configure_make] Changes considering pure configure ports without the requirement to run autoconfig
* [fontconfig] make it work on windows
* Remove install of unofficial cmake config
* add function get_cmake_vars
* fine tuning.
* apply to make based ports.
* add log suffix on not windows platforms
* fix c&p error
* add previous LINK env
* setup env on windows and extract cpp flags correctly.
* update glib and libxml2
* fix windows regressions
* Apply suggestions from code review
* add windres wrapper to invoke RC.
* remove wrong fi
* fix libintl.
* try fixing uwp
* other things to update
* exiv2 fix
* libtool does not like -RTC1
* pass the /RTC<x> flag directly to the compiler
* trust cmake instead of adding extra flags
* fix expat
* fix iconv wrapper install
* change fontconfig intl linkage.
* add appcontainer back in which is required for UWP. Why is this not in the cmake flags?
* fix pkg-config in vcpkg_configure_make
* fix json-c pkg-config installation
* remove remnoved config
* comment out debug messages + bit of tuning
* finally fontconfig
* comment debug messages
* expat apply extra patches.
* Switch back to -E instead of -EP in cpp
* commit changes from fontconfig PR
* [expat] fix expat details
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* cleanup docs
* update osx pipeline so that fontconfig actually builds
* fix expat the lazy way by using a higher commit than release
* fix a barage of regressions due to the use of unofficial targets
* [expat] use a higher commit hash with a better stabilized cmake build
* forgot freexl regression
* more unofficial fixes
* fix downstream expat usage
* fix wxwidgets
* fix gcdm regression
* [vtk] fix the regression due to expat
* add uwp cl flags back in. Somehow those are not set by cmake
* add a few other configure options for full gettext build
* fix cmake regression
* fix a few regressions
* fix static gettext build
* fix gettext static
* fix libxml2 wrapper for cmake
* some more regressions fixes
* add conversion from somelib.lib to -lsomelib
* add a few option to libiconv.
* get logs from CI
* add missing ar-lib wrapper
* add missing ar-lib wrapper
* add fatal error to gettext
* remove uuid from the list of LIBS since it seems to not exist in CI?
* small but important regex correction
* fix regex and add debug message for libs
* remove error and only build libintl.
* add uuid dependency to fontconfig in qt5-base
* osx install gettext for autopoint
* fix io2d regression by saying the port is broken .....
(which it is; upstream needs to learn proper cmake)
* restore the old libxml2 wrapper with minor modifications
* fix xmlsec regression
* install wrapper correctly
* try actual fixing io2d
* improve iconv wrapper
* add latest changes from update_fontconfig PR
* Apply suggestions from code review
first set which don't need special attention
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* Apply suggestions from code review
one more simple change
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* [x264] set env AS
* fix bugs due to refactor
* use subpath everywhere
* apply changes from CR
* fix fontconfig build.
* only change libs in static builds
* remove unnecessary lines 41 & 44
* remove flag transformation
* reintroduce the flag / to - transformation for MSVC
* trying to figure out autopoint issue.
using wrong (windows) find.exe instead of msys
* add correct working_dir to subpath
* escape stupid env paths.
* fix typo
* add findutils
remove debug messages
* add error if libtool chokes
* add file to msys
* pass lt_cv_deplibs_check_method=pass_all on windows
(couldn't get file.exe to work so that libtool correctly ids the passed libs)
* add bzip2 to msys
* reenable libtool check. Lets see if CI agrees
* unbreak linux
try to figure out where uuid should be on windows.
* add -L flag and help libtool ?
* try to get ci to find uuid.
* try to use cygpath
* update controls
* cleanup merge mistakes
* correct merge issues
* determine cmake vars if not done before.
* move adding of -l earlier
* more merge cleanup
* fix uwp builds by not transforming libs
* fix patches in io2d
* fix xz download error
* apply code review changes manually
* fix the typos left behind in CR
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* add function get_cmake_vars
* fine tuning.
* apply to make based ports.
* add log suffix on not windows platforms
* fix c&p error
* add previous LINK env
* setup env on windows and extract cpp flags correctly.
* Apply suggestions from code review
* commit changes from fontconfig PR
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* cleanup docs
* add conversion from somelib.lib to -lsomelib
* add missing ar-lib wrapper
* small but important regex correction
* add latest changes from update_fontconfig PR
* Apply suggestions from code review
first set which don't need special attention
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* Apply suggestions from code review
one more simple change
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* [x264] set env AS
* fix bugs due to refactor
* use subpath everywhere
* apply changes from CR
* remove unnecessary lines 41 & 44
* remove flag transformation
* reintroduce the flag / to - transformation for MSVC
* Apply suggestions from code review
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* rename the function
* rename function/variables
* transform flags list
* Apply suggestions from code review
* fix vcpkg_build_make due to the variable name change
* fix another case of function renaming regressions
* only rename config.log if it exists
* actually add the script after vcpkg_common_functions was deleted.
* remove setting of ldflags if path contains spaces
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* [vcpkg] add missing Makefile flag for install step
Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
* [libpq] add custom Makefile to install only required targets
Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
* take changes from fontconfig pr
* [farmhash] add autoconf
* [freexl] add autoconf
* [healpix] add autoconf
* [libb2] add autoconf
* [libwandio] add autoconf and patch
* more autoconf
* [x264] fix windows build issues
* minimal cleanup
* [libwandio] some fixes
* [vcpkg/scripts/make] add include to C/CXX flags correctly set machine flags for linker
* remove unnecessary comments part 1
* cleanup part 2
* cleanup
* remove unnecessary code
* [pbc] fix osx regressions
* [lzokay] format manifest
* try to copy sources to fix build issues
* add autoconfig to force updated configure scripts
* bump port versions of openmpi and ocilib
* added lib paths back into vcpkg_build_make because they are probably required
* Use CPP flags
add quotes around restoring of ENV
add LIB and LIBPATH correctly
* Apply suggestions from code review
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* Apply more changes forom CR
- remove mingw make
- add doc for missing options
- introduce two new macros for backup/restore of env vars
* fix wrong variables.
* use the list macro instead of the single var macro
* also use it at the top
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* update all 16 configure_make ports
* add make wrappers for msvc
* improve make builds
* fix relativ path errors on linux (and osx?)
* revisit all 16 portfiles again
* remove trace from install
* fix relative build path issues.
* bump control of the 16 configure ports
* never forget .... real linux is case sensitive ....
* Revert "bump control of the 16 configure ports"
This reverts commit 40d6d81c01d2709c4acbdbec503b4787c3fd8282.
* Revert "Revert "bump control of the 16 configure ports""
This reverts commit 9c9851ddfcd01bfad604ab9c9aed7379238d619a.
* bump control again for real ci rebuild
* add copy_source
* remove message
* pass parameters to vcpkg_build_make
* fix healpix build.
* fix libmagic regression
* fix libwandio regression
* pfring changes regression fix? (cannot test in wsl)
* ws change to retrigger CI
* fix libpq regression
* fix libudns regression
* add share/pkgconfig to PKG_CONFIG_PATH
* cleanup of deprecated options
* cleanup docs
* Revert "bump control again for real ci rebuild"
This reverts commit b4bc18edc2376eba6c3aa3dda52bd82286f23616.
* shared binaries on linux should stay in lib. Only dlls are mvoed to bin
* move pkgconfig check and add message about missing system packages
* added autopoint as a build requirement
* fix prerun shell working dir.
* a few fixes from the x windows pr
- add libpath setting
- fixed pkgconfig search on windows platforms
- fixed autopoint msys package on windows
* fix release prefix
* minimal cleanup and ws changes to trigger true CI rebuild
* fix tcl by upgrading
* remove unnecessary rename
* fix pfring? can't test in WSL. Linux kernel headers required.
* fix lowercase in patch
* fix libwandio
* remove x264 from fail list
* replace wrappers with wrappers from automake
* update make ports
* remove unnecessary message
* refactor vcpkg_configure_make
* [tcl] remove stray ?
* [farmhash] fix build
* [freexl] ws change to retrigger ci build
* [x264] add pthread as a dependency
* [vcpkg/scripts] add ignore flag correctly
* [sdl] fix vcpkg_fixup_pkgconfig call
* [farmhash/freexl] delete configure and recreate it.
* [libudns] remove trailing ?
* [freexl] use empty build target
* [freexl] add system library; remove previous change
* Update ports/x264/portfile.cmake
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
* [libwandio] remove unncessary comment
Co-authored-by: dan-shaw <51385773+dan-shaw@users.noreply.github.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
* Fix separate make and install execution error issue.
* trigger CI system.
* Fix multiple copy files under debug, fix separator between make and install in linux.