You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Alex Clemmer <cl...@gmail.com> on 2015/09/11 21:22:31 UTC

Re: Review Request 37502: Add CMAKE_CXX_FLAGS to GMOCK_CONFIG_CMD in CMake.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/37502/#review98669
-----------------------------------------------------------


I think that `-DGTEST_USE_OWN_TR1_TUPLE` is actually unnecessary now that you've upgraded to GMock 1.7 (in commie a8970ce78f1abbee3dd4de282d54ced38d0e5fa1). Let me just double-check my understanding here just to make sure we're on the same page.

I've run CMake on my OS X machine and included the output below[1]. You can see that I'm running vanilla OS X, and that my compiler is clang. When I swap out the GMock version to be v1.6 (instead of v1.7, which is what it currently is), I get the error tr1/tuple error you see at [2].

BUT, when I run it with GMock v1.7, the issue is fixed. To confirm the fix, I consulted the source of `gtest-port.h` and found some code[3] that appears to intelligently figure out whether this flag should be set automatically.

If this is true, then I think this patch can omit this flag set entirely.


[1] CMake config output:
```
 ~/src/mesos/build $ cmake ..
-- The C compiler identification is AppleClang 6.1.0.6020053
-- The CXX compiler identification is AppleClang 6.1.0.6020053
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- ************************************************************
-- ********* Beginning Mesos CMake configuration step *********
-- ************************************************************
-- INSTALLATION PREFIX: /usr/local
-- MACHINE SPECS:
--     Hostname:
--     OS:       DARWIN(14.1.0)
--     Arch:     X86_64
--     BitMode:
--     BuildID:
-- ************************************************************
-- Performing Test COMPILER_SUPPORTS_CXX11
-- Performing Test COMPILER_SUPPORTS_CXX11 - Success
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.5")
-- Found APR headers: /usr/include/apr-1
-- Found APR library: /usr/lib/libapr-1.dylib
-- Found APRUTIL headers: /usr/include/apr-1
-- Found APRUTIL library: /usr/lib/libaprutil-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_client-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_delta-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_diff-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_fs-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_fs_fs-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_fs_util-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_ra-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_ra_local-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_ra_serf-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_ra_svn-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_repos-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_subr-1.dylib
-- Found SVN lib: /usr/local/lib/libsvn_wc-1.dylib
-- Found SVN: /usr/local/lib/libsvn_client-1.dylib;/usr/local/lib/libsvn_delta-1.dylib;/usr/local/lib/libsvn_diff-1.dylib;/usr/local/lib/libsvn_fs-1.dylib;/usr/local/lib/libsvn_fs_fs-1.dylib;/usr/local/lib/libsvn_fs_util-1.dylib;/usr/local/lib/libsvn_ra-1.dylib;/usr/local/lib/libsvn_ra_local-1.dylib;/usr/local/lib/libsvn_ra_serf-1.dylib;/usr/local/lib/libsvn_ra_svn-1.dylib;/usr/local/lib/libsvn_repos-1.dylib;/usr/local/lib/libsvn_subr-1.dylib;/usr/local/lib/libsvn_wc-1.dylib
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/alex/src/mesos/build
```

[2] Error generated with GMock v1.6 on my machine:
```
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest -I./build-aux -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include -D_THREAD_SAFE -DGTEST_HAS_PTHREAD=1 -g -O2 -MT src/gtest-all.lo -MD -MP -MF src/.deps/gtest-all.Tpo -c /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/src/gtest-all.cc  -fno-common -DPIC -o src/.libs/gtest-all.o
In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/src/gtest-all.cc:39:
In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/gtest.h:57:
In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/internal/gtest-internal.h:40:
/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/internal/gtest-port.h:499:13: fatal error:
      'tr1/tuple' file not found
#   include <tr1/tuple>  // NOLINT
            ^
1 error generated.
```

[3] Part of `gtest-port.h` that appears to intelligently set `GTEST_USE_OWN_TR1_TUPLE`: https://github.com/google/googletest/blob/master/googletest/include/gtest/internal/gtest-port.h#L639-L655

- Alex Clemmer


On Sept. 4, 2015, 4:25 a.m., haosdent huang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/37502/
> -----------------------------------------------------------
> 
> (Updated Sept. 4, 2015, 4:25 a.m.)
> 
> 
> Review request for mesos, Artem Harutyunyan, Alex Clemmer, and Joseph Wu.
> 
> 
> Bugs: MESOS-3270
>     https://issues.apache.org/jira/browse/MESOS-3270
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Add CMAKE_CXX_FLAGS to GMOCK_CONFIG_CMD in CMake.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/CMakeLists.txt 997cc0d0e316e316136d4746e50e9e292a82b36b 
> 
> Diff: https://reviews.apache.org/r/37502/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> haosdent huang
> 
>


Re: Review Request 37502: Add CMAKE_CXX_FLAGS to GMOCK_CONFIG_CMD in CMake.

Posted by haosdent huang <ha...@gmail.com>.

> On Sept. 11, 2015, 7:22 p.m., Alex Clemmer wrote:
> > I think that `-DGTEST_USE_OWN_TR1_TUPLE` is actually unnecessary now that you've upgraded to GMock 1.7 (in commie a8970ce78f1abbee3dd4de282d54ced38d0e5fa1). Let me just double-check my understanding here just to make sure we're on the same page.
> > 
> > I've run CMake on my OS X machine and included the output below[1]. You can see that I'm running vanilla OS X, and that my compiler is clang. When I swap out the GMock version to be v1.6 (instead of v1.7, which is what it currently is), I get the error tr1/tuple error you see at [2].
> > 
> > BUT, when I run it with GMock v1.7, the issue is fixed. To confirm the fix, I consulted the source of `gtest-port.h` and found some code[3] that appears to intelligently figure out whether this flag should be set automatically.
> > 
> > If this is true, then I think this patch can omit this flag set entirely.
> > 
> > 
> > [1] CMake config output:
> > ```
> >  ~/src/mesos/build $ cmake ..
> > -- The C compiler identification is AppleClang 6.1.0.6020053
> > -- The CXX compiler identification is AppleClang 6.1.0.6020053
> > -- Check for working C compiler: /usr/bin/cc
> > -- Check for working C compiler: /usr/bin/cc -- works
> > -- Detecting C compiler ABI info
> > -- Detecting C compiler ABI info - done
> > -- Check for working CXX compiler: /usr/bin/c++
> > -- Check for working CXX compiler: /usr/bin/c++ -- works
> > -- Detecting CXX compiler ABI info
> > -- Detecting CXX compiler ABI info - done
> > -- ************************************************************
> > -- ********* Beginning Mesos CMake configuration step *********
> > -- ************************************************************
> > -- INSTALLATION PREFIX: /usr/local
> > -- MACHINE SPECS:
> > --     Hostname:
> > --     OS:       DARWIN(14.1.0)
> > --     Arch:     X86_64
> > --     BitMode:
> > --     BuildID:
> > -- ************************************************************
> > -- Performing Test COMPILER_SUPPORTS_CXX11
> > -- Performing Test COMPILER_SUPPORTS_CXX11 - Success
> > -- Looking for include file pthread.h
> > -- Looking for include file pthread.h - found
> > -- Looking for pthread_create
> > -- Looking for pthread_create - found
> > -- Found Threads: TRUE
> > -- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.5")
> > -- Found APR headers: /usr/include/apr-1
> > -- Found APR library: /usr/lib/libapr-1.dylib
> > -- Found APRUTIL headers: /usr/include/apr-1
> > -- Found APRUTIL library: /usr/lib/libaprutil-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_client-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_delta-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_diff-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_fs-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_fs_fs-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_fs_util-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra_local-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra_serf-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra_svn-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_repos-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_subr-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_wc-1.dylib
> > -- Found SVN: /usr/local/lib/libsvn_client-1.dylib;/usr/local/lib/libsvn_delta-1.dylib;/usr/local/lib/libsvn_diff-1.dylib;/usr/local/lib/libsvn_fs-1.dylib;/usr/local/lib/libsvn_fs_fs-1.dylib;/usr/local/lib/libsvn_fs_util-1.dylib;/usr/local/lib/libsvn_ra-1.dylib;/usr/local/lib/libsvn_ra_local-1.dylib;/usr/local/lib/libsvn_ra_serf-1.dylib;/usr/local/lib/libsvn_ra_svn-1.dylib;/usr/local/lib/libsvn_repos-1.dylib;/usr/local/lib/libsvn_subr-1.dylib;/usr/local/lib/libsvn_wc-1.dylib
> > -- Configuring done
> > -- Generating done
> > -- Build files have been written to: /Users/alex/src/mesos/build
> > ```
> > 
> > [2] Error generated with GMock v1.6 on my machine:
> > ```
> > libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest -I./build-aux -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include -D_THREAD_SAFE -DGTEST_HAS_PTHREAD=1 -g -O2 -MT src/gtest-all.lo -MD -MP -MF src/.deps/gtest-all.Tpo -c /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/src/gtest-all.cc  -fno-common -DPIC -o src/.libs/gtest-all.o
> > In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/src/gtest-all.cc:39:
> > In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/gtest.h:57:
> > In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/internal/gtest-internal.h:40:
> > /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/internal/gtest-port.h:499:13: fatal error:
> >       'tr1/tuple' file not found
> > #   include <tr1/tuple>  // NOLINT
> >             ^
> > 1 error generated.
> > ```
> > 
> > [3] Part of `gtest-port.h` that appears to intelligently set `GTEST_USE_OWN_TR1_TUPLE`: https://github.com/google/googletest/blob/master/googletest/include/gtest/internal/gtest-port.h#L639-L655
> 
> haosdent huang wrote:
>     I remember GTEST_LANG_CXX11 and GTEST_USE_OWN_TR1_TUPLE need use together. Let me check this.
> 
> haosdent huang wrote:
>     Yes, need use "-std=c++11 -DGTEST_USE_OWN_TR1_TUPLE -DGTEST_LANG_CXX11" to compile when use gmock-1.6.0.tar.gz

I think <tr1/tuple> is similiar like this one, and in autotools, we use -stdlib=libc++:
https://github.com/BVLC/caffe/issues/1358


- haosdent


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/37502/#review98669
-----------------------------------------------------------


On Sept. 4, 2015, 4:25 a.m., haosdent huang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/37502/
> -----------------------------------------------------------
> 
> (Updated Sept. 4, 2015, 4:25 a.m.)
> 
> 
> Review request for mesos, Artem Harutyunyan, Alex Clemmer, and Joseph Wu.
> 
> 
> Bugs: MESOS-3270
>     https://issues.apache.org/jira/browse/MESOS-3270
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Add CMAKE_CXX_FLAGS to GMOCK_CONFIG_CMD in CMake.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/CMakeLists.txt 997cc0d0e316e316136d4746e50e9e292a82b36b 
> 
> Diff: https://reviews.apache.org/r/37502/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> haosdent huang
> 
>


Re: Review Request 37502: Add CMAKE_CXX_FLAGS to GMOCK_CONFIG_CMD in CMake.

Posted by haosdent huang <ha...@gmail.com>.

> On Sept. 11, 2015, 7:22 p.m., Alex Clemmer wrote:
> > I think that `-DGTEST_USE_OWN_TR1_TUPLE` is actually unnecessary now that you've upgraded to GMock 1.7 (in commie a8970ce78f1abbee3dd4de282d54ced38d0e5fa1). Let me just double-check my understanding here just to make sure we're on the same page.
> > 
> > I've run CMake on my OS X machine and included the output below[1]. You can see that I'm running vanilla OS X, and that my compiler is clang. When I swap out the GMock version to be v1.6 (instead of v1.7, which is what it currently is), I get the error tr1/tuple error you see at [2].
> > 
> > BUT, when I run it with GMock v1.7, the issue is fixed. To confirm the fix, I consulted the source of `gtest-port.h` and found some code[3] that appears to intelligently figure out whether this flag should be set automatically.
> > 
> > If this is true, then I think this patch can omit this flag set entirely.
> > 
> > 
> > [1] CMake config output:
> > ```
> >  ~/src/mesos/build $ cmake ..
> > -- The C compiler identification is AppleClang 6.1.0.6020053
> > -- The CXX compiler identification is AppleClang 6.1.0.6020053
> > -- Check for working C compiler: /usr/bin/cc
> > -- Check for working C compiler: /usr/bin/cc -- works
> > -- Detecting C compiler ABI info
> > -- Detecting C compiler ABI info - done
> > -- Check for working CXX compiler: /usr/bin/c++
> > -- Check for working CXX compiler: /usr/bin/c++ -- works
> > -- Detecting CXX compiler ABI info
> > -- Detecting CXX compiler ABI info - done
> > -- ************************************************************
> > -- ********* Beginning Mesos CMake configuration step *********
> > -- ************************************************************
> > -- INSTALLATION PREFIX: /usr/local
> > -- MACHINE SPECS:
> > --     Hostname:
> > --     OS:       DARWIN(14.1.0)
> > --     Arch:     X86_64
> > --     BitMode:
> > --     BuildID:
> > -- ************************************************************
> > -- Performing Test COMPILER_SUPPORTS_CXX11
> > -- Performing Test COMPILER_SUPPORTS_CXX11 - Success
> > -- Looking for include file pthread.h
> > -- Looking for include file pthread.h - found
> > -- Looking for pthread_create
> > -- Looking for pthread_create - found
> > -- Found Threads: TRUE
> > -- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.5")
> > -- Found APR headers: /usr/include/apr-1
> > -- Found APR library: /usr/lib/libapr-1.dylib
> > -- Found APRUTIL headers: /usr/include/apr-1
> > -- Found APRUTIL library: /usr/lib/libaprutil-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_client-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_delta-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_diff-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_fs-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_fs_fs-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_fs_util-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra_local-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra_serf-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra_svn-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_repos-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_subr-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_wc-1.dylib
> > -- Found SVN: /usr/local/lib/libsvn_client-1.dylib;/usr/local/lib/libsvn_delta-1.dylib;/usr/local/lib/libsvn_diff-1.dylib;/usr/local/lib/libsvn_fs-1.dylib;/usr/local/lib/libsvn_fs_fs-1.dylib;/usr/local/lib/libsvn_fs_util-1.dylib;/usr/local/lib/libsvn_ra-1.dylib;/usr/local/lib/libsvn_ra_local-1.dylib;/usr/local/lib/libsvn_ra_serf-1.dylib;/usr/local/lib/libsvn_ra_svn-1.dylib;/usr/local/lib/libsvn_repos-1.dylib;/usr/local/lib/libsvn_subr-1.dylib;/usr/local/lib/libsvn_wc-1.dylib
> > -- Configuring done
> > -- Generating done
> > -- Build files have been written to: /Users/alex/src/mesos/build
> > ```
> > 
> > [2] Error generated with GMock v1.6 on my machine:
> > ```
> > libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest -I./build-aux -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include -D_THREAD_SAFE -DGTEST_HAS_PTHREAD=1 -g -O2 -MT src/gtest-all.lo -MD -MP -MF src/.deps/gtest-all.Tpo -c /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/src/gtest-all.cc  -fno-common -DPIC -o src/.libs/gtest-all.o
> > In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/src/gtest-all.cc:39:
> > In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/gtest.h:57:
> > In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/internal/gtest-internal.h:40:
> > /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/internal/gtest-port.h:499:13: fatal error:
> >       'tr1/tuple' file not found
> > #   include <tr1/tuple>  // NOLINT
> >             ^
> > 1 error generated.
> > ```
> > 
> > [3] Part of `gtest-port.h` that appears to intelligently set `GTEST_USE_OWN_TR1_TUPLE`: https://github.com/google/googletest/blob/master/googletest/include/gtest/internal/gtest-port.h#L639-L655

I remember GTEST_LANG_CXX11 and GTEST_USE_OWN_TR1_TUPLE need use together. Let me check this.


- haosdent


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/37502/#review98669
-----------------------------------------------------------


On Sept. 4, 2015, 4:25 a.m., haosdent huang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/37502/
> -----------------------------------------------------------
> 
> (Updated Sept. 4, 2015, 4:25 a.m.)
> 
> 
> Review request for mesos, Artem Harutyunyan, Alex Clemmer, and Joseph Wu.
> 
> 
> Bugs: MESOS-3270
>     https://issues.apache.org/jira/browse/MESOS-3270
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Add CMAKE_CXX_FLAGS to GMOCK_CONFIG_CMD in CMake.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/CMakeLists.txt 997cc0d0e316e316136d4746e50e9e292a82b36b 
> 
> Diff: https://reviews.apache.org/r/37502/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> haosdent huang
> 
>


Re: Review Request 37502: Add CMAKE_CXX_FLAGS to GMOCK_CONFIG_CMD in CMake.

Posted by haosdent huang <ha...@gmail.com>.

> On Sept. 11, 2015, 7:22 p.m., Alex Clemmer wrote:
> > I think that `-DGTEST_USE_OWN_TR1_TUPLE` is actually unnecessary now that you've upgraded to GMock 1.7 (in commie a8970ce78f1abbee3dd4de282d54ced38d0e5fa1). Let me just double-check my understanding here just to make sure we're on the same page.
> > 
> > I've run CMake on my OS X machine and included the output below[1]. You can see that I'm running vanilla OS X, and that my compiler is clang. When I swap out the GMock version to be v1.6 (instead of v1.7, which is what it currently is), I get the error tr1/tuple error you see at [2].
> > 
> > BUT, when I run it with GMock v1.7, the issue is fixed. To confirm the fix, I consulted the source of `gtest-port.h` and found some code[3] that appears to intelligently figure out whether this flag should be set automatically.
> > 
> > If this is true, then I think this patch can omit this flag set entirely.
> > 
> > 
> > [1] CMake config output:
> > ```
> >  ~/src/mesos/build $ cmake ..
> > -- The C compiler identification is AppleClang 6.1.0.6020053
> > -- The CXX compiler identification is AppleClang 6.1.0.6020053
> > -- Check for working C compiler: /usr/bin/cc
> > -- Check for working C compiler: /usr/bin/cc -- works
> > -- Detecting C compiler ABI info
> > -- Detecting C compiler ABI info - done
> > -- Check for working CXX compiler: /usr/bin/c++
> > -- Check for working CXX compiler: /usr/bin/c++ -- works
> > -- Detecting CXX compiler ABI info
> > -- Detecting CXX compiler ABI info - done
> > -- ************************************************************
> > -- ********* Beginning Mesos CMake configuration step *********
> > -- ************************************************************
> > -- INSTALLATION PREFIX: /usr/local
> > -- MACHINE SPECS:
> > --     Hostname:
> > --     OS:       DARWIN(14.1.0)
> > --     Arch:     X86_64
> > --     BitMode:
> > --     BuildID:
> > -- ************************************************************
> > -- Performing Test COMPILER_SUPPORTS_CXX11
> > -- Performing Test COMPILER_SUPPORTS_CXX11 - Success
> > -- Looking for include file pthread.h
> > -- Looking for include file pthread.h - found
> > -- Looking for pthread_create
> > -- Looking for pthread_create - found
> > -- Found Threads: TRUE
> > -- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.5")
> > -- Found APR headers: /usr/include/apr-1
> > -- Found APR library: /usr/lib/libapr-1.dylib
> > -- Found APRUTIL headers: /usr/include/apr-1
> > -- Found APRUTIL library: /usr/lib/libaprutil-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_client-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_delta-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_diff-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_fs-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_fs_fs-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_fs_util-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra_local-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra_serf-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_ra_svn-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_repos-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_subr-1.dylib
> > -- Found SVN lib: /usr/local/lib/libsvn_wc-1.dylib
> > -- Found SVN: /usr/local/lib/libsvn_client-1.dylib;/usr/local/lib/libsvn_delta-1.dylib;/usr/local/lib/libsvn_diff-1.dylib;/usr/local/lib/libsvn_fs-1.dylib;/usr/local/lib/libsvn_fs_fs-1.dylib;/usr/local/lib/libsvn_fs_util-1.dylib;/usr/local/lib/libsvn_ra-1.dylib;/usr/local/lib/libsvn_ra_local-1.dylib;/usr/local/lib/libsvn_ra_serf-1.dylib;/usr/local/lib/libsvn_ra_svn-1.dylib;/usr/local/lib/libsvn_repos-1.dylib;/usr/local/lib/libsvn_subr-1.dylib;/usr/local/lib/libsvn_wc-1.dylib
> > -- Configuring done
> > -- Generating done
> > -- Build files have been written to: /Users/alex/src/mesos/build
> > ```
> > 
> > [2] Error generated with GMock v1.6 on my machine:
> > ```
> > libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest -I./build-aux -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest -I/Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include -D_THREAD_SAFE -DGTEST_HAS_PTHREAD=1 -g -O2 -MT src/gtest-all.lo -MD -MP -MF src/.deps/gtest-all.Tpo -c /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/src/gtest-all.cc  -fno-common -DPIC -o src/.libs/gtest-all.o
> > In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/src/gtest-all.cc:39:
> > In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/gtest.h:57:
> > In file included from /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/internal/gtest-internal.h:40:
> > /Users/alex/src/mesos/build/3rdparty/libprocess/3rdparty/gmock-1.6.0/src/gmock-1.6.0/gtest/include/gtest/internal/gtest-port.h:499:13: fatal error:
> >       'tr1/tuple' file not found
> > #   include <tr1/tuple>  // NOLINT
> >             ^
> > 1 error generated.
> > ```
> > 
> > [3] Part of `gtest-port.h` that appears to intelligently set `GTEST_USE_OWN_TR1_TUPLE`: https://github.com/google/googletest/blob/master/googletest/include/gtest/internal/gtest-port.h#L639-L655
> 
> haosdent huang wrote:
>     I remember GTEST_LANG_CXX11 and GTEST_USE_OWN_TR1_TUPLE need use together. Let me check this.

Yes, need use "-std=c++11 -DGTEST_USE_OWN_TR1_TUPLE -DGTEST_LANG_CXX11" to compile when use gmock-1.6.0.tar.gz


- haosdent


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/37502/#review98669
-----------------------------------------------------------


On Sept. 4, 2015, 4:25 a.m., haosdent huang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/37502/
> -----------------------------------------------------------
> 
> (Updated Sept. 4, 2015, 4:25 a.m.)
> 
> 
> Review request for mesos, Artem Harutyunyan, Alex Clemmer, and Joseph Wu.
> 
> 
> Bugs: MESOS-3270
>     https://issues.apache.org/jira/browse/MESOS-3270
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Add CMAKE_CXX_FLAGS to GMOCK_CONFIG_CMD in CMake.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/CMakeLists.txt 997cc0d0e316e316136d4746e50e9e292a82b36b 
> 
> Diff: https://reviews.apache.org/r/37502/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> haosdent huang
> 
>