New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 632438 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

`gn refs <build dir> <ICU header file>` does not match anything

Project Member Reported by js...@chromium.org, Jul 28 2016

Issue description

Spun off from  bug 631575  comment 10 ( http://crbug.com/631575#c10  )

$ gn refs out/Default "third_party/icu/source/common/unicode/unistr.h" --all
The input matches no targets, configs, or files.

As a result, when the only change in ICU is a header file, trybot (that uses gn refs to determine what targets to recompile for a given CL) does not recompile anything. 

$ gn refs out/Default "third_party/icu/source/common/unistr.cpp" --all

//:All
//:blink_tests
//:both_gn_and_gyp
//:chromium_builder_asan
//:chromium_builder_perf
//:gn_all
//:gn_mojo_targets
//:gn_only
//:gn_visibility
//apps:apps
..... snip ......

unistr.cpp is listed in source in icu/BUILD.gn but none of public (e.g. icu/source/common/unicode/unistr.h) and private header files (e.g. icu/source/common/umutex.h) are listed in BUILD.gn. Instead, icu/BUILD.gn has include_dirs set to ["source/common", "source/i18n"].

If all the private headers are listed in sources[] and all the public headers are listed in public[],  'gn refs ...' will match a header file. 

When I do that with one public header file and one private header file for icuuc target, 'gn check' does not complain and 'gn refs' works as expected. 

Let me see if gn check is still ok with all the header files listed (private headers in sources[] and public headers in public[]). 




 
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/deps/icu.git/+/56680aaa9aafe50996f5bd88c88d0dacf0e897db

commit 56680aaa9aafe50996f5bd88c88d0dacf0e897db
Author: Jungshik Shin <jshin@chromium.org>
Date: Tue Aug 02 21:30:19 2016

List header files explicitly in BUILD.gn

Private headers are listed in source[] while public headers are listed
in public[] for icuuc and icu18n targets.

This change is to let trybot analyze step recompile icuuc or icu18n even
when the only change in CL is in a header file (public or private).

BUG= 632438 
TEST=`gn check <out_dir>` does not complain.
TEST=`gn ref <out_dir> third_party/icu/source/common/umutex.h` matches icuuc.
TEST=`gn ref <out_dir> third_party/icu/source/common/unicode/unistr.h`
     matches icuuc.

R=brettw@chromium.org

Review URL: https://codereview.chromium.org/2186343002 .

[modify] https://crrev.com/56680aaa9aafe50996f5bd88c88d0dacf0e897db/BUILD.gn

Project Member

Comment 2 by bugdroid1@chromium.org, Aug 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/094a721de6c93093a7e7d868cd73e7eb1a1abdd8

commit 094a721de6c93093a7e7d868cd73e7eb1a1abdd8
Author: jshin <jshin@chromium.org>
Date: Tue Aug 09 20:14:20 2016

Roll ICU from ef5c7353 to 53ce6316

The range has:
 - IANA timezone database update to 2016f (Windows ICU data dll only.
   Others were updated previously)
 - Two GN clean-ups.

For details, see
https://chromium.googlesource.com/chromium/deps/icu.git/+log/ef5c7353..53ce6316

BUG=473288, 626078 , 632438 
TEST=See GN CLs above
TBR=rserek@chromium.org

Review-Url: https://codereview.chromium.org/2229733004
Cr-Commit-Position: refs/heads/master@{#410790}

[modify] https://crrev.com/094a721de6c93093a7e7d868cd73e7eb1a1abdd8/DEPS

Comment 3 by js...@chromium.org, Aug 9 2016

Status: Fixed (was: Started)

Sign in to add a comment