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

Switch to Visual Studio 2015 Update 3 #315

Closed
11 tasks done
yukawa opened this issue Nov 2, 2015 · 0 comments
Closed
11 tasks done

Switch to Visual Studio 2015 Update 3 #315

yukawa opened this issue Nov 2, 2015 · 0 comments

Comments

@yukawa
Copy link
Collaborator

yukawa commented Nov 2, 2015

This is a placeholder to switch to Visual Studio 2015 from Visual Studio 2013 as an official build environment of Mozc for Windows.

Remaining tasks are:

  • Wait for Visual Studio 2015 Update 3 release.
  • Roll newer version of third party libraries.
    • Update GYP to a version that officially supports Visual Studio 2015.
    • Update protobuf to a version that officially supports Visual Studio 2015.
    • Update gtest to a version that officially supports Visual Studio 2015.
    • Update WTL to a version that officially supports Visual Studio 2015.
  • Fix build failure.
  • Enable continuous build on AppVeyor.
  • Address all warnings.
  • Add an installer project w/ CRT installation support.
  • Deprecate Visual Studio 2013 support.
@yukawa yukawa self-assigned this Nov 2, 2015
yukawa added a commit that referenced this issue Nov 2, 2015
Remaining tasks would be:
- Address remaining warnings
- Roll newer version of third party libraries (e.g., gtest, WTL, protobuf)
- Enable continuous build on AppVeyor
- Add an installer project w/ CRT installation support

BUG=#315
TEST=compile
REF_BUG=24654559
REF_CL=
@yukawa yukawa changed the title Switch to Visual Studio 2015 Switch to Visual Studio 2015 Update 1 Nov 2, 2015
yukawa added a commit that referenced this issue Jan 24, 2016
As a preparation of the migration to Visual Studio 2015 Update 1,
this CL updates src/third_party/gtest as follows:
  from: google/googletest@1d53731
    to: google/googletest@82b11b8

Updating gtest also helps us to reduce the number of git submodules
because google/googlemock was merged into google/googletest in
google/googletest@1f87a09.
Hence we do not need to check out src/third_party/gmock anymore.

No behavior change is intended in production binaries.

BUG=#315
TEST=unittest
REF_BUG=
REF_CL=111825865,112890964
yukawa added a commit that referenced this issue Feb 6, 2016
There are some known compiler warning issues in WTL 9.0 when building them
with Visual Studio 2015 Update 1.  To address those compiler warnings,
this CL updates src/third_party/wtl as follows:
  from: WTL 9.0.4140
    to: WTL 9.1.5321

No user-visible behavior change is intended.

As mentioned in the previous commit [1], in WTL 9.1 the upstream
switched back to MS-PL again in http://sourceforge.net/p/wtl/code/617/

  [1] d2b01f7

BUG=#315
TEST=unittest
REF_BUG=24654559
REF_CL=113589879,113594557
@yukawa yukawa changed the title Switch to Visual Studio 2015 Update 1 Switch to Visual Studio 2015 Update 3 Jul 24, 2016
yukawa pushed a commit that referenced this issue Jul 24, 2016
As a preparation of the migration to Visual Studio 2015, this CL updates
src/third_party/protobuf as follows:
  from: protocolbuffers/protobuf@172019c
    to: protocolbuffers/protobuf@b152d7f

No user-visible behavior change is intended.

BUG=#315
TEST=
REF_BUG=25097434
REF_CL=90485115,92428516,92520189,92529087,96552058,100536637,105277626,105281788,106032863,106036662
yukawa pushed a commit that referenced this issue Jul 24, 2016
As a preparation of the migration to Visual Studio 2015, this CL updates
src/third_party/protobuf as follows:
  from: protocolbuffers/protobuf@b152d7f
    to: protocolbuffers/protobuf@d4569d1

No user-visible behavior change is intended.

BUG=#315
TEST=
REF_BUG=
REF_CL=106632463,106815096
yukawa added a commit that referenced this issue Jul 24, 2016
With this CL,
  build_mozc.py gyp --msvs_version=2015
should start working.

BUG=#315
TEST=
REF_BUG=24654559
REF_CL=108838384
yukawa added a commit that referenced this issue Jul 24, 2016
Note that OSS Mozc has not supported installer yet.  Hence this CL has
no impact so far.

BUG=#315
TEST=
REF_BUG=24654559,25353935
REF_CL=108949027
yukawa added a commit that referenced this issue Jul 24, 2016
With this CL, we can run post build script by using non hermetic Visual
C++ 2015.

BUG=#315
TEST=
REF_BUG=24654559,25353935
REF_CL=108961837
yukawa added a commit that referenced this issue Jul 24, 2016
As a preparation of the migration to Visual Studio 2015, this CL updates
src/third_party/protobuf as follows:
  from: protocolbuffers/protobuf@d4569d1
    to: protocolbuffers/protobuf@1a59a71

No user-visible behavior change is intended.

BUG=#315
TEST=
REF_BUG=
REF_CL=109130104,109140430
yukawa added a commit that referenced this issue Aug 7, 2016
As posted in MSDN blog [1], App-local deployment of the Universal CRT is
now supported, which allows us to support Windows 8.1 and prior versions
without relying on VCRedist.exe, like we have done with Visual C++ 2013
and prior versions of Visual C++.

 [1] http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx

BUG=#315
TEST=
REF_BUG=24654559,25353935
REF_CL=111804040
REF_TIME=2016-01-10T09:56:25-08:00
REF_TIME_RAW=1452448585 -0800
yukawa added a commit that referenced this issue Aug 7, 2016
This CL updates src/third_party/protobuf as follows:
  from: protocolbuffers/protobuf@1a59a71
    to: protocolbuffers/protobuf@d5fb408

BUG=#315
TEST=
REF_BUG=
REF_CL=112113800
REF_TIME=2016-01-13T19:11:27-08:00
REF_TIME_RAW=1452741087 -0800
yukawa added a commit that referenced this issue Aug 7, 2016
It turns out that '--msvs_version' option is not correctly passed to
postbuilds_win.py and it is always treated as the efault value 2013.

The root cause is a bug in postbuilds_win.gypi.  Since
'postbuild_msvs_option' GYP optoin is defined as an array, it should be
passed as '<@(postbuild_msvs_option)' instead of
'@(postbuild_msvs_option)'.  Otherwise, its value is never used.

With this CL, we can finally propagate '--msvs_version=2015' passed to
  build_mozc.py gyp
to postbuilds_win.py as expected.

BUG=#315
TEST=
REF_BUG=24654559
REF_CL=112532234
REF_TIME=2016-01-19T17:19:28-08:00
REF_TIME_RAW=1453252768 -0800
yukawa added a commit that referenced this issue Aug 7, 2016
Now we can safely assume that CompareStringOrdinal API is available in
the target environment (Windows 7 and later).  Actually following
methods are no longer hence should be removed.
 - WinUtilTest::NativeEqualStringTest
 - WinUtilTest::CrtEqualStringTest

There is a bonus that removing those code also fixes compiler warnings
generated by Visual C++ 2015.

BUG=#315,#372
TEST=
REF_BUG=26932823,27053168,18957181
REF_CL=114045312
REF_TIME=2016-02-06T22:37:17-08:00
REF_TIME_RAW=1454827037 -0800
@yukawa yukawa closed this as completed in 0aad409 Aug 7, 2016
yukawa added a commit that referenced this issue Aug 7, 2016
On Windows converting HWND into uint32 and vise versa is supposed to be
safe.  However, doing that withoug causing compiler warnings is a bit
tricky.  This CL adds utility methods in WinUtil class for the
readability.

BUG=#315
TEST=
REF_BUG=26932823
REF_CL=114641823
REF_TIME=2016-02-14T07:15:23-08:00
REF_TIME_RAW=1455462923 -0800
yukawa added a commit that referenced this issue Aug 7, 2016
|ShellExecuteW()| [1] is a tricky API in terms of how an error code is
encoded in the return value.  In short, if the return value is less than
or equal to 32, that is an error code.  Otherwise it means that the API
call succeeded.

This CL fixes the warning by casting the return value to size_t, which
is not ideal but should be better than the current code.

 [1]: https://msdn.microsoft.com/en-us/library/windows/desktop/bb762153.aspx

BUG=#315
TEST=
REF_BUG=26932823
REF_CL=114644224
REF_TIME=2016-02-14T09:03:31-08:00
REF_TIME_RAW=1455469411 -0800
yukawa added a commit that referenced this issue Aug 7, 2016
BUG=#315
TEST=
REF_BUG=26932823
REF_CL=114656293
REF_TIME=2016-02-14T17:45:29-08:00
REF_TIME_RAW=1455500729 -0800
yukawa added a commit that referenced this issue Aug 7, 2016
This CL addresses the following warnigns:
 - warning C4302:
    'reinterpret_cast': truncation from 'LPVOID' to 'int32'
 - warning C4311:
    'reinterpret_cast': pointer truncation from 'LPVOID' to 'int32'
 - warning C4312:
    'reinterpret_cast': conversion from 'const int32' to 'void *' of
    greater size

This CL also takes care of signed integer overflow, when incrementing
the focus revision, which is one of well-known undefined behaviour in
C++.

Note that in practice we do not depend on the order of the focus
revision in mozc_server.  Hence probably this has not been an issue
though unless the overflow results in runtime exceptions.

BUG=#315
TEST=
REF_BUG=26932823
REF_CL=114661183
REF_TIME=2016-02-14T20:31:43-08:00
REF_TIME_RAW=1455510703 -0800
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant