Skip to content

Commit

Permalink
tools: update gyp-next to v0.6.2
Browse files Browse the repository at this point in the history
PR-URL: #35690
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
targos authored and Trott committed Oct 17, 2020
1 parent a373130 commit 35a6946
Show file tree
Hide file tree
Showing 6 changed files with 128 additions and 53 deletions.
40 changes: 40 additions & 0 deletions tools/gyp/.github/workflows/node-gyp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: node-gyp integration

on: [push, pull_request]

jobs:
test:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Clone gyp-next
uses: actions/checkout@v2
with:
path: gyp-next
- name: Clone nodejs/node-gyp
uses: actions/checkout@v2
with:
repository: nodejs/node-gyp
path: node-gyp
- uses: actions/setup-node@v1
with:
node-version: 14.x
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install dependencies
run: |
cd node-gyp
npm install --no-progress
- name: Replace gyp in node-gyp
shell: bash
run: |
rm -rf node-gyp/gyp
cp -r gyp-next node-gyp/gyp
- name: Run tests
run: |
cd node-gyp
npm test
2 changes: 1 addition & 1 deletion tools/gyp/.github/workflows/nodejs-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
build-windows:
runs-on: windows-latest
steps:
- name: Clone node-gyp
- name: Clone gyp-next
uses: actions/checkout@v2
with:
path: gyp-next
Expand Down
16 changes: 16 additions & 0 deletions tools/gyp/.github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
on:
push:
branches:
- master

name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: GoogleCloudPlatform/release-please-action@v2.5.6
with:
token: ${{ secrets.GITHUB_TOKEN }}
release-type: python
package-name: gyp-next
bump-minor-pre-major: Yes
89 changes: 49 additions & 40 deletions tools/gyp/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,70 @@
# Changelog

All notable changes to this project will be documented in this file.
### [0.6.2](https://www.github.com/nodejs/gyp-next/compare/v0.6.1...v0.6.2) (2020-10-16)

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [Unreleased]
### Bug Fixes

## [0.6.0] - 2020-10-13
* do not rewrite absolute paths to avoid long paths ([#74](https://www.github.com/nodejs/gyp-next/issues/74)) ([c2ccc1a](https://www.github.com/nodejs/gyp-next/commit/c2ccc1a81f7f94433a94f4d01a2e820db4c4331a))
* only include MARMASM when toolset is target ([5a2794a](https://www.github.com/nodejs/gyp-next/commit/5a2794aefb58f0c00404ff042b61740bc8b8d5cd))

### Added
- The Makefile generator will now output shared libraries directly to the product
directory on all platforms (previously only macOS).
### [0.6.1](https://github.com/nodejs/gyp-next/compare/v0.6.0...v0.6.1) (2020-10-14)

## [0.5.0] - 2020-09-30

### Added
- Extended compile_commands_json generator to consider more file extensions than
just `c` and `cc`. `cpp` and `cxx` are now supported.
- Source files with duplicate basenames are now supported.
### Bug Fixes

* Correctly rename object files for absolute paths in MSVS generator.

## [0.6.0](https://github.com/nodejs/gyp-next/compare/v0.5.0...v0.6.0) (2020-10-13)


### Features

* The Makefile generator will now output shared libraries directly to the product directory on all platforms (previously only macOS).

## [0.5.0](https://github.com/nodejs/gyp-next/compare/v0.4.0...v0.5.0) (2020-09-30)


### Features

* Extended compile_commands_json generator to consider more file extensions than just `c` and `cc`. `cpp` and `cxx` are now supported.
* Source files with duplicate basenames are now supported.

### Removed
- The `--no-duplicate-basename-check` option was removed.
- The `msvs_enable_marmasm` configuration option was removed in favor of
auto-inclusion of the "marmasm" sections for Windows on ARM.

## [0.4.0] - 2020-07-14
* The `--no-duplicate-basename-check` option was removed.
* The `msvs_enable_marmasm` configuration option was removed in favor of auto-inclusion of the "marmasm" sections for Windows on ARM.

## [0.4.0](https://github.com/nodejs/gyp-next/compare/v0.3.0...v0.4.0) (2020-07-14)


### Features

* Added support for passing arbitrary architectures to Xcode builds, enables `arm64` builds.

### Bug Fixes

* Fixed a bug on Solaris where copying archives failed.

## [0.3.0](https://github.com/nodejs/gyp-next/compare/v0.2.1...v0.3.0) (2020-06-06)


### Added
- Added support for passing arbitrary architectures to Xcode builds, enables `arm64` builds.
### Features

### Fixed
- Fixed a bug on Solaris where copying archives failed.
* Added support for MSVC cross-compilation. This allows compilation on x64 for a Windows ARM target.

## [0.3.0] - 2020-06-06
### Bug Fixes

### Added
- Added support for MSVC cross-compilation. This allows compilation on x64 for
a Windows ARM target.
* Fixed XCode CLT version detection on macOS Catalina.

### Fixed
- Fixed XCode CLT version detection on macOS Catalina.
### [0.2.1](https://github.com/nodejs/gyp-next/compare/v0.2.0...v0.2.1) (2020-05-05)

## [0.2.1] - 2020-05-05

### Fixed
- Relicensed to Node.js contributors.
- Fixed Windows bug introduced in v0.2.0.
### Bug Fixes

## [0.2.0] - 2020-04-06
* Relicensed to Node.js contributors.
* Fixed Windows bug introduced in v0.2.0.

This is the first release of this project, based on https://chromium.googlesource.com/external/gyp
with changes made over the years in Node.js and node-gyp.
## [0.2.0](https://github.com/nodejs/gyp-next/releases/tag/v0.2.0) (2020-04-06)

[Unreleased]: https://github.com/nodejs/gyp-next/compare/v0.6.0...HEAD
[0.6.0]: https://github.com/nodejs/gyp-next/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/nodejs/gyp-next/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/nodejs/gyp-next/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/nodejs/gyp-next/compare/v0.2.1...v0.3.0
[0.2.1]: https://github.com/nodejs/gyp-next/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/nodejs/gyp-next/releases/tag/v0.2.0
This is the first release of this project, based on https://chromium.googlesource.com/external/gyp with changes made over the years in Node.js and node-gyp.
32 changes: 21 additions & 11 deletions tools/gyp/pylib/gyp/generator/msvs.py
Original file line number Diff line number Diff line change
Expand Up @@ -2177,7 +2177,12 @@ def GenerateOutput(target_list, target_dicts, data, params):


def _GenerateMSBuildFiltersFile(
filters_path, source_files, rule_dependencies, extension_to_rule_name, platforms
filters_path,
source_files,
rule_dependencies,
extension_to_rule_name,
platforms,
toolset,
):
"""Generate the filters file.
Expand All @@ -2197,6 +2202,7 @@ def _GenerateMSBuildFiltersFile(
rule_dependencies,
extension_to_rule_name,
platforms,
toolset,
filter_group,
source_group,
)
Expand All @@ -2222,6 +2228,7 @@ def _AppendFiltersForMSBuild(
rule_dependencies,
extension_to_rule_name,
platforms,
toolset,
filter_group,
source_group,
):
Expand Down Expand Up @@ -2257,13 +2264,14 @@ def _AppendFiltersForMSBuild(
rule_dependencies,
extension_to_rule_name,
platforms,
toolset,
filter_group,
source_group,
)
else:
# It's a source. Create a source entry.
_, element = _MapFileToMsBuildSourceType(
source, rule_dependencies, extension_to_rule_name, platforms
source, rule_dependencies, extension_to_rule_name, platforms, toolset
)
source_entry = [element, {"Include": source}]
# Specify the filter it is part of, if any.
Expand All @@ -2273,7 +2281,7 @@ def _AppendFiltersForMSBuild(


def _MapFileToMsBuildSourceType(
source, rule_dependencies, extension_to_rule_name, platforms
source, rule_dependencies, extension_to_rule_name, platforms, toolset
):
"""Returns the group and element type of the source file.
Expand Down Expand Up @@ -2301,9 +2309,8 @@ def _MapFileToMsBuildSourceType(
elif ext in [".s", ".asm"]:
group = "masm"
element = "MASM"
for platform in platforms:
if platform.lower() in ["arm", "arm64"]:
element = "MARMASM"
if "arm64" in platforms and toolset == "target":
element = "MARMASM"
elif ext == ".idl":
group = "midl"
element = "Midl"
Expand Down Expand Up @@ -3613,14 +3620,16 @@ def _AddSources2(
rule_dependencies,
extension_to_rule_name,
_GetUniquePlatforms(spec),
spec["toolset"],
)
if group == "compile":
# Always add an <ObjectFileName> value to support duplicate
# source file basenames.
if group == "compile" and not os.path.isabs(source):
# Add an <ObjectFileName> value to support duplicate source
# file basenames, except for absolute paths to avoid paths
# with more than 260 characters.
file_name = os.path.splitext(source)[0] + ".obj"
if (file_name.startswith("..\\")):
if file_name.startswith("..\\"):
file_name = re.sub(r"^(\.\.\\)+", "", file_name)
elif (file_name.startswith("$(")):
elif file_name.startswith("$("):
file_name = re.sub(r"^\$\([^)]+\)\\", "", file_name)
detail.append(["ObjectFileName", "$(IntDir)\\" + file_name])
grouped_sources[group].append([element, {"Include": source}] + detail)
Expand Down Expand Up @@ -3728,6 +3737,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags, spec):
rule_dependencies,
extension_to_rule_name,
platforms,
toolset,
)
missing_sources = _VerifySourcesExist(sources, project_dir)

Expand Down
2 changes: 1 addition & 1 deletion tools/gyp/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

setup(
name="gyp-next",
version="0.6.0",
version="0.6.2",
description="A fork of the GYP build system for use in the Node.js projects",
long_description=long_description,
long_description_content_type="text/markdown",
Expand Down

0 comments on commit 35a6946

Please sign in to comment.