Commit Graph

52 Commits

Author SHA1 Message Date
Frank
30a20e8f15
[vcpkg] Fix integration in Visual Studio (#28216) 2022-12-07 17:11:31 -08:00
sbrajchuk
11e021f9f8
[vcpkg] Add support of -static-md to Visual Studio UI (#28045)
* Add support of -static-md to UI

* Remove redundant comparison

* Fix typo

* Check if 'Use Static Libraries' is selected
2022-11-29 11:38:53 -08:00
Billy O'Neal
d97c3ab76c
[vcpkg-msbuild-integration] Set the default value of VcpkgConfiguration according to $(UseDebugLibraries) rather than $(Configuration) for better support of custom configuration names. (#26177)
Competing resolution of https://github.com/microsoft/vcpkg/pull/9496 and https://github.com/microsoft/vcpkg/pull/22086
2022-08-10 13:14:52 -07:00
autoantwort
36bd5e39b7
[msbuild] don't fail on error messages (#25844) 2022-07-20 15:41:27 -07:00
klaus triendl
17cefc2cd9
[msbuild] Correct resulting triplet installation folder (#22079)
Co-authored-by: klaus triendl <klaus.triendl@firedaemon.com>
2021-12-20 11:29:26 -05:00
Rémy Tassoux
989f5594f8
[vcpkg] Fix external include path (#21544)
* [vcpkg] Fix external include path

* Fix ExternalIncludePath syntax

Co-authored-by: Billy O'Neal <bion@microsoft.com>

Co-authored-by: Rémy Tassoux <rt2@rasterizedworld.com>
Co-authored-by: Billy O'Neal <bion@microsoft.com>
2021-11-26 00:35:05 -08:00
Rémy Tassoux
203daf9844
[vcpkg.targets] Add vcpkg installed libraries to MSBuild external include path (#18820)
Co-authored-by: Rémy Tassoux <rt2@rasterizedworld.com>
2021-11-19 05:49:33 -08:00
AndrewDeanMS
86d2925af0
Remove unnecessary <Delete> that races <Touch> (#20313)
When VcpkgInstallManifestDependencies runs in parallel,
the Delete in one task causes the touch in another to fail.
The Delete isn't actually necessary to accomplish the goal
here, so remove it.
2021-09-24 10:07:26 -07:00
autoantwort
f0c569e3e5
[msbuild] add vcpkg to <Lib> search path (#20054) 2021-09-08 12:21:06 -07:00
Billy O'Neal
97e7ac8d74
[vcpkg] Repair msbuild damage and workaround the way we integrate on VS2015. (#19767)
* Repair msbuild damage and workaround the way we integrate on VS2015.

This is a fix for a pile of issues discovered by https://github.com/microsoft/vcpkg/pull/18906

* VS 2015 has a bug that the <VcpkgInstalledDir Condition="!$(VcpkgInstalledDir.EndsWith('\'))">$(VcpkgInstalledDir)\</VcpkgInstalledDir> dance we do to get a trailing slash is not applied correctly when VcpkgInstalledDir was edited in the same property group attempting to add the trailing slash.
* We need a trailing slash on VcpkgInstalledDir at all times, but https://github.com/microsoft/vcpkg/pull/16173 damaged this by removing it from TreatAsLocalProperty. Add the right TreatAsLocalPropertys back. Add all such slash defenses to the top of the file just beneath, eliminating need to call Path::Combine and friends by following msbuild "directory properties have a trailing slash" convention.
* Move VcpkgOSTarget and VcpkgPlatformTarget into the .targets, as they aren't intended to be overridable by users and don't appear in our selection dialog box(es).
* Don't bother avoiding setting vcpkg properties when VcpkgEnabled is off; after all, VcpkgEnabled is itself a vcpkg property :). I left attempts to skip creating items since creating items can hit the disk.
* Add _Z to several internal msbuild variables.
* Move VcpkgApplocalDeps to the .props since it's a user setting.
* Don't unconditionally use $(TLogLocation) because it is not set on 2015, and also it's per-project.
* Fixed typo in docs "VcpkgInstalledDirectory", and document the limitation that it doesn't work in 2015.
* In manifest mode, put the installed tree in a subdirectory including the triplet to make changing configurations faster.

Known limitations:

* If you change vcpkg.json without changing any .cpp files, we don't rebuild the dependencies even though we should. I don't know how to fix this but it doesn't appear to be a regression.

* Fix .tlog handling.

* Further defend against modified properties on VS2015.

* Document more VS2015 limitations.

* Remove TreatAsLocalProperty comment.
2021-09-02 12:33:21 -07:00
nicole mazzuca
062676d92b
[msbuild] fix integration caching (#16787)
we would always run on build, as opposed to only running when changes happened
2021-03-22 13:53:45 -07:00
nicole mazzuca
fe2a6bb789
[host dependencies] add support in the scripts (#16627)
This contains all the docs and scripts changes from #16479,
without any of the ports changes, for easier CR
2021-03-10 15:33:16 -08:00
nicole mazzuca
8d7cd1d09e
[vcpkg integrate install] Allow setting the vcpkg installed dir (#16173)
* [vcpkg integrate install] Allow setting the vcpkg installed dir

* fix the cache-y thing

* robert crs
2021-02-10 16:22:33 -08:00
ras0219
4502f8ed68
[vcpkg.targets] Add an additional options parameter for MSBuild integration (#16155)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2021-02-09 15:35:06 -08:00
ras0219
401b26c986
[vcpkg] Teach vcpkg.targets to emit a .tlog, enabling up-to-date checks (#15898)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2021-01-29 11:04:53 -08:00
Phoebe
480ec85d51
[vcpkg] Fix issue in vcpkg.targets that introduced in 13755 (#14797) 2020-11-30 09:39:23 -08:00
nicole mazzuca
539a182d37
[vcpkg msbuild] Fix the issues introduced in 13755 (#14772)
* Fix the issues introduced in 13755

Fixes #14735

* add VcpkgRoot != ''
2020-11-25 12:45:36 -08:00
Dr. Frank Heimes
e126e3eed7
[vcpkg] Two bug fixes and some improvements in buildsystems/msbuild (#13755)
* Use IncludePath and LibraryPath properties

These tool agnostic properties allow to configure ClCompile and ResourceCompile without repeating the code.
This change includes my changes from #4454.

* Applied changes as described in #13753

* Fixed warning and error in vcpkg end-to-end tests

* Fixed incorrect warning "we found a manifest file in \."

* Fixed still failing integration test. See discussion in #13753.

* Code Review Correction

Removed stray double quote reported by @strega-nil

* change display name

Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-11-19 12:33:20 -08:00
Billy O'Neal
a6a1722cfa
[vcpkg, jsonnet, openssl-uwp] Enable use of the system powershell-core if it is present. (#13805) 2020-10-27 20:48:14 -07:00
nicole mazzuca
4902a7be1d
[vcpkg manifest-mode] Fix parallel msbuild failures (#13589)
This changes the vcpkg msbuild targets file to wait for the lock, rather than failing immediately
2020-09-18 17:01:18 -07:00
Phoebe
6659efca6a
[msbuild] Revert the importance to Normal (#12727) 2020-08-05 13:03:02 -07:00
ras0219
fd4a08806f
[vcpkg] Fix MSBuild regressions #12062 and #12086. (#12257)
This PR also renames the VcpkgUserTriplet MSBuild variable to VcpkgTriplet to minimize user confusion compared to previous practice and documentation.

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-08 15:08:17 -07:00
Robert Schumacher
eedecc033d
[vcpkg.targets] Fix #12292 regression with MSBuild targets (#12319) 2020-07-08 13:51:03 -07:00
Dr. Frank Heimes
c21893b4dc
[vcpkg integrate] Clean up vcpkg.target file (#4608)
Use IncludePath and LibraryPath propertiesThese tool agnostic properties allow to configure ClCompile and ResourceCompile without repeating the code.
This change includes my changes from #4454.

Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
2020-07-05 12:39:14 -07:00
Phoebe
f24543e831
[msbuild] Revert the importance to Normal (#12212) 2020-07-02 20:19:23 -07:00
Stephane Lajoie
428df4c7d6
Don't change manifest root when manifest isn't enabled. (#12191)
* Don't change manifest root when manifest isn't enabled.

* Update scripts/buildsystems/msbuild/vcpkg.targets

* Apply suggestions from code review

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-07-01 12:18:13 -07:00
nicole mazzuca
1d8f0acc9c
[vcpkg manifest] Manifest Implementation (#11757)
==== Changes Related to manifests ====

* Add the `manifests` feature flag
  * This only says whether we look for a `vcpkg.json` in the cwd, not
    whether we support parsing manifests (for ports, for example)
* Changes to the manifests RFC
  * `"authors"` -> `"maintainers"`
  * `--x-classic-mode` -> `-manifests` \in `vcpkg_feature_flags`
  * reserve `"core"` in addition to `"default"`, since that's already
    reserved for features
  * Add a small helper note about what identifiers must look like
  * `<license-string>`: SPDX v3.8 -> v3.9
  * `"feature"."description"` is allowed to be an array of strings as well
  * `"version"` -> `"version-string"` for forward-compat with versions
    RFC
* Add the `--feature-flags` option
* Add the ability to turn off feature flags via passing
  `-<feature-flag>` to `VCPKG_FEATURE_FLAGS` or `--feature-flags`
* Add CMake toolchain support for manifests
  * Requires either:
    * a feature flag of `manifests` in either `Env{VCPKG_FEATURE_FLAGS}`
      or `VCPKG_FEATURE_FLAGS`
    * Passing the `VCPKG_ENABLE_MANIFESTS` option
  * The toolchain will install your packages to
    `${VCPKG_MANIFEST_DIR}/vcpkg_installed`.
* Add MSBuild `vcpkg integrate install` support for manifests
  * Requires `VcpkgEnableManifest` to be true
* `vcpkg create` creates a port that has a `vcpkg.json` instead of a
  `CONTROL`
* argparse, abseil, 3fd, and avisynthplus ports switched to manifest
  from CONTROL
* Add support for `--x-manifest-root`, as well as code for finding it if
  not passed
* Add support for parsing manifests!
* Add a filesystem lock!

==== Important Changes which are somewhat unrelated to manifests ====

* Rename `logicexpression.{h,cpp}` to `platform-expression.{h,cpp}`
* Add `PlatformExpression` type which takes the place of the old logic
  expression
  * Split the parsing of platform expressions from checking whether
    they're true or not
  * Eagerly parse PlatformExpressions as opposed to leaving them as
    strings
* Add checking for feature flag consistency
  * i.e., if `-binarycaching` is passed, you shouldn't be passing
    `--binarysource`
* Add the `Json::Reader` type which, with the help of user-defined
  visitors, converts JSON to your internal type
* VcpkgArgParser: place the switch names into a constant as opposed to
  using magic constants
  * In general update the parsing code so that this ^ works
* Add `Port-Version` fields to CONTROL files
  * This replaces the existing practice of
    `Version: <my-version>-<port-version>`

==== Smaller changes ====
* small drive-by cleanups to some CMake
  * `${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}` ->
    `${CURRENT_INSTALLED_DIR}`
  * Remove `-analyze` when compiling with clang-cl, since that's not a
    supported flag (vcpkg's build system)
  * Add a message about which compiler is detected by vcpkg's build
    system machinery
* Fix `Expected::then`
* Convert `""` to `{}` for `std::string` and `fs::path`, to avoid a
  `strlen` (additionally, `.empty()` instead of `== ""`, and `.clear()`)
* Add `Strings::strto` which converts strings to numeric types
* Support built-in arrays and `StringView` for `Strings::join`
* Add `operator<` and friends to `StringView`
* Add `substr` to `StringView`
* SourceParagraphParser gets some new errors
2020-06-30 10:40:18 -07:00
Alexander Neumann
14514508d8
[vcpkg] Add vcpkg item to project settings in Visual Studio (#4361)
Co-authored-by: Curtis J Bezault <curtbezault@gmail.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-06-15 14:24:14 -07:00
Billy O'Neal
6ac6267f51
[vcpkg] Provide $(VcpkgRoot) and $(VcpkgCurrentInstalledDir) for customers. (#11779) 2020-06-04 13:33:47 -07:00
Billy O'Neal
4fb2256085
[vcpkg] Allow CI to pass in all relevant directories and remove use of symbolic links (#11483) 2020-06-03 19:31:28 -07:00
Billy O'Neal
cc4f93f434
[vcpkg] Rename the msbuild property VcpkgRoot to VcpkgCurrentInstalledDir, and set VcpkgRoot to the expected root instead. (#11653) 2020-05-29 16:38:03 -07:00
Alexander Neumann
4f7d4dc66f Temp fix for #4359 (#4573)
* make user wide integration not burn everything if LLVM is used as a toolset.
(e.g. cmake -G "VS" -TLLVM fails to even find compiler due to linker issues)
fixes #4359 but might have side effects for that toolset.
(e.g. not automatically adding dependencies)

* remove whitespaces

* [vcpkg-integrate] Conform to MSBuild conventions for comparisons
2018-11-08 23:48:09 -08:00
Frederik Carlier
cc00cf05fb New packages: libimobiledevice, getopt, readline (#3504)
* Add libplist

* Add libusbmuxd

* Fix typos

* Add getopt

* Add libimobiledevice

* Fix typos

* Add libideviceactivation

* Add ideviceinstaller

* Include utilities

* Install usbmuxd

* Add readline

* Fix readline on 64-bit windows

* Add libirecovery

* libideviceactivation: include tools

* Bump versions to fix build issues

* Bump versions

* Add idevicerestore

* [getopt][getopt-win32] Rename to getopt-win32 and only install on Windows Desktop

* [readline][readline-win32] Rename to readline-win32 and only install for Windows Desktop

* [vcpkg_from_github][vcpkg_apply_patches] Make PATCHES relative to the current port directory

* [vcpkg_install_msbuild][vcpkg_check_linkage] Introduce vcpkg_install_msbuild() and vcpkg_check_linkage().

* [libimobiledevice et al] Use vcpkg_from_github() and vcpkg_install_msbuild()

* [readline] Fix static builds
2018-08-08 04:15:13 -07:00
Jacek Blaszczynski
a28138eb9e Add preliminary support for arm-windows and arm64-windows triplets (#2371)
* Add preliminary support for arm-windows and arm64-windows triplets

Visual Studio 15.4 shipped with new VC tools targeting arm and arm64
for desktop. This change allows for recognition and usage of new
triplets supporting arm and arm64 Windows desktop and server targets.

* Remove unnecessary changes

* Part 2

* Part 3

* Make detection of Arm64 _VCPKG_TARGET_ARCHITECTURE precise

* Enforce usage of Visual Studio CMake generatorfor arm and temporarily arm64 targets

* Address code review feedback, clean libjpeg-turbo port.cmake

* [libjpeg-turbo][tiff] Reduce changes to existing libraries.

* [vcpkg-cmake] Simplify toolchain selection logic and improve comments
2018-01-03 17:19:52 -06:00
Ilya Finkelshteyn
e7cbb50f3d Fix path to powershell.exe
https://github.com/Microsoft/vcpkg/issues/2299
2017-12-05 15:22:21 -08:00
Robert Schumacher
a4f8515c9e [vcpkg-msbuild-integration] Address #2299 by using full path to powershell. 2017-12-05 15:22:21 -08:00
Robert Schumacher
330b8d8bab [vcpkg-msbuild-integration] Output warning when configuration is not determinable. Add special cases for RelWithDebInfo and MinSizeRel. 2017-11-04 20:48:06 -07:00
paercebal
f1c6b5cd4b Enable tolerance for similar configurations 2017-08-12 10:57:56 +02:00
Robert Schumacher
92c0a91d3f [vcpkg-msbuild] Fix line wrapping bug on Win7.
On Win7, calling powershell via MSBuild results in normal output lines being split based on the ConHost system-wide default line length settings.

The fix is to first write all the lines to a file, then load that file as into an MSBuild ItemGroup. This avoids all interaction with ConHost.
2017-04-11 16:32:45 -07:00
Robert Schumacher
eb9b85c49d [vcpkg] Switch several usages of -ExecutionPolicy Unrestricted to Bypass to avoid failures due to Mark Of The Web 2017-04-08 18:53:39 -07:00
Wei Mao
6a2e1c77fe Fix issue 556: need setup include path for rc.exe (wtl fails to build) 2017-04-07 09:50:24 -07:00
Robert Schumacher
8b21933367 [vcpkg-msbuild] Add troubleshooting message to MSBuild projects with Importance=Normal 2017-01-31 17:53:08 -08:00
Robert Schumacher
44810f267d [vcpkg integrate] Lower verbosity of MSBuild messages. 2017-01-23 18:26:57 -08:00
Alexander Karatarakis
030ed27117 Fix integration when $(Platform) is empty 2017-01-19 17:38:56 -08:00
Christian Ullrich
335c15a9d0 Copy DLLs before attempting to regsvr32. 2016-12-23 14:47:38 +01:00
Christian Ullrich
c0cb3ca009 Copy DLLs for all project types.
$(TargetPath) is a simpler way of getting the primary output than assembling it from multiple variables. In addition, $(OutputType) matches $(TargetExt) only for .exe projects.
2016-12-23 14:47:26 +01:00
Robert Schumacher
32157f8ce5 [vcpkg-integrate] Provide an opt-out for autolinking. Properly suppress integration via MSBuild when using CMake.
Add lib\ and lib\manual-link\ to additional library paths.

[gtest] Because the four libraries provided by gtest supply redundant symbols and define main, opt them all out.

Addresses #306.
2016-11-25 23:10:27 -08:00
Robert Schumacher
e5152851f2 Revert d58f0c6680. MSBuild (and CMake) do not allow switching on CRT type effectively, so we should use more robust logic. 2016-11-04 17:37:58 -07:00
Alexander Karatarakis
789855546c Fix issues with the integration file 2016-10-31 17:02:39 -07:00
Alexander Karatarakis
d58f0c6680 [integration] Enable static lib integration. Also, detect .vcpkg-root 2016-10-31 13:32:58 -07:00