Skip to content
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

Initial VCPkg integration #4226

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
217ad69
Initial implementation of vcpkg builder
Feb 26, 2022
cccb361
Respect --silent in vcpkg spew and support a --vcpkg-debug flag
Feb 27, 2022
d3e983b
Fix break caused by reading old-style CONTROL files. Tweak output for…
Feb 28, 2022
b5f070c
Avoid re-downloading vcpkg.exe from GitHub when we have the correct v…
Mar 1, 2022
52de2a6
Merge branch 'master' into vcpkg
Aug 7, 2022
282785e
Enable enumeration of package contents in SConstruct file, via Packag…
Aug 9, 2022
12d1fdd
Fix faulty use of AppendUnique
Aug 9, 2022
705be7b
Updates to VCPkg documentation and tests
Aug 14, 2022
16b87e6
Merge remote-tracking branch 'upstream/master'
Sep 9, 2022
a8fecc5
Merge branch 'master' into vcpkg
Sep 9, 2022
a7d5fd8
Significantly expanded unit tests
Sep 11, 2022
a560ee0
Added CHANGES.txt entry
Sep 11, 2022
7ce7088
Updated description in CHANGES.txt and replicated in RELEASE.txt
Sep 12, 2022
2f3c24f
Updated file headers to match current templates.
Sep 18, 2022
70fef43
Only init vcpkg tool on supported platforms (Win/MacOS/Linux)
Sep 18, 2022
20ce478
Fix code review feedback and add tests for package contents
Sep 19, 2022
2ffe5d4
Fix a flaw in enumerating package contents, in which packages reachab…
Sep 19, 2022
076d2d9
Add disabled test for the list-of-packages case
Sep 19, 2022
4ec11b5
Fix multi-package case. Update documentation.
Sep 19, 2022
8e22ef5
Add missing XML xlink namespace
Sep 24, 2022
93630d3
Fix missed variable rename
Sep 24, 2022
93233b0
Convert VCPkgBuilder to its own class overriding __eq__, in order to …
Sep 24, 2022
9147eab
Fix naming of cv- link
Sep 24, 2022
7e7727f
Fix doc generation
Sep 25, 2022
3b89b13
Merge remote-tracking branch 'upstream/master' into vcpkg
Dec 13, 2022
ce40138
Merge remote-tracking branch 'upstream/master' into vcpkg
Jan 16, 2023
a7f5858
Update xml traversal limit
Jan 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
use an faster implementation under the assumption of ordered dictionaries.

From Ryan Saunders:
- Added VCPkg() builder, integrating the vcpkg cross-platform package management tool for
3rd-party C/C++ libraries (http://vcpkg.io). A project using SCons can use the VCPkg()
builder to to download and build any package known to vcpkg. Works on Windows, Linux and MacOS.
- Fixed runtest.py failure on Windows caused by excessive escaping of the path to python.exe.

From Flaviu Tamas:
Expand Down
3 changes: 3 additions & 0 deletions RELEASE.txt
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ NEW FUNCTIONALITY
not be called until all AddOption() calls are completed. Resolves Issue #4187
- Added --experimental=tm_v2, which enables Andrew Morrow's NewParallel Job implementation.
This should scale much better for highly parallel builds. You can also enable this via SetOption().
- Added VCPkg() builder, integrating the vcpkg cross-platform package management tool for
3rd-party C/C++ libraries (http://vcpkg.io). A project using SCons can use the VCPkg()
builder to to download and build any package known to vcpkg. Works on Windows, Linux and MacOS.


DEPRECATED FUNCTIONALITY
Expand Down
696 changes: 696 additions & 0 deletions SCons/Tool/VCPkgTests.py

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion SCons/Tool/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -696,7 +696,7 @@ def tool_list(platform, env):
assemblers = ['masm', 'nasm', 'gas', '386asm']
fortran_compilers = ['gfortran', 'g77', 'ifl', 'cvf', 'f95', 'f90', 'fortran']
ars = ['mslib', 'ar', 'tlib']
other_plat_tools = ['msvs', 'midl', 'wix']
other_plat_tools = ['msvs', 'midl', 'vcpkg', 'wix']
elif str(platform) == 'os2':
"prefer IBM tools on OS/2"
linkers = ['ilink', 'gnulink', ] # 'mslink']
Expand Down Expand Up @@ -746,6 +746,7 @@ def tool_list(platform, env):
assemblers = ['as']
fortran_compilers = ['gfortran', 'f95', 'f90', 'g77']
ars = ['ar']
other_plat_tools += ['vcpkg']
elif str(platform) == 'cygwin':
"prefer GNU tools on Cygwin, except for a platform-specific linker"
linkers = ['cyglink', 'mslink', 'ilink']
Expand All @@ -762,6 +763,9 @@ def tool_list(platform, env):
assemblers = ['gas', 'nasm', 'masm']
fortran_compilers = ['gfortran', 'g77', 'ifort', 'ifl', 'f95', 'f90', 'f77']
ars = ['ar', ]
# VCPkg is supported on Linux; no official support for other *nix variants
if str(platform) == 'posix':
other_plat_tools += ['vcpkg']

if not str(platform) == 'win32':
other_plat_tools += ['m4', 'rpm']
Expand Down
2 changes: 1 addition & 1 deletion SCons/Tool/default.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ are selected if their respective conditions are met:
&t-link-jar;, &t-link-javac;, &t-link-javah;, &t-link-rmic;,
&t-link-dvipdf;, &t-link-dvips;, &t-link-gs;,
&t-link-tex;, &t-link-latex;, &t-link-pdflatex;, &t-link-pdftex;,
&t-link-tar;, &t-link-zip;, &t-link-textfile;.
&t-link-tar;, &t-link-zip;, &t-link-textfile; &t-link-vcpkg;.
</para>

<para>
Expand Down
2 changes: 1 addition & 1 deletion SCons/Tool/docbook/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
# lxml etree XSLT global max traversal depth
#

lmxl_xslt_global_max_depth = 3100
lmxl_xslt_global_max_depth = 4000

if has_lxml and lmxl_xslt_global_max_depth:
def __lxml_xslt_set_global_max_depth(max_depth):
Expand Down
Loading