• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1set(gtest_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
2set(gtest_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
3
4set(CMAKE_OPTION
5        -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON
6        -DCMAKE_MACOSX_RPATH=TRUE)
7if(BUILD_LITE)
8    if(PLATFORM_ARM64 AND CMAKE_SYSTEM_NAME MATCHES "Android")
9        set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
10                -DANDROID_NATIVE_API_LEVEL=19
11                -DANDROID_NDK=$ENV{ANDROID_NDK}
12                -DANDROID_ABI=arm64-v8a
13                -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
14                -DANDROID_STL=${ANDROID_STL}
15                ${CMAKE_OPTION})
16    endif()
17    if(PLATFORM_ARM32 AND CMAKE_SYSTEM_NAME MATCHES "Android")
18        set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake
19                -DANDROID_NATIVE_API_LEVEL=19
20                -DANDROID_NDK=$ENV{ANDROID_NDK}
21                -DANDROID_ABI=armeabi-v7a
22                -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang
23                -DANDROID_STL=${ANDROID_STL}
24                ${CMAKE_OPTION})
25    endif()
26endif()
27
28if(NOT ENABLE_GLIBCXX)
29    set(gtest_CXXFLAGS "${gtest_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
30endif()
31
32if(BUILD_LITE)
33    if(ENABLE_GITEE)
34        set(REQ_URL "https://gitee.com/mirrors/googletest/repository/archive/release-1.8.1.tar.gz")
35        set(SHA256 "9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c")
36    else()
37        set(REQ_URL "https://github.com/google/googletest/archive/release-1.8.1.tar.gz")
38        set(SHA256 "9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c")
39    endif()
40
41    mindspore_add_pkg(gtest
42            VER 1.8.1
43            LIBS gtest gmock
44            URL ${REQ_URL}
45            SHA256 ${SHA256}
46            CMAKE_OPTION ${CMAKE_OPTION})
47else()
48    if(ENABLE_GITEE)
49        set(REQ_URL "https://gitee.com/mirrors/googletest/repository/archive/release-1.12.1.tar.gz")
50        set(SHA256 "81964fe578e9bd7c94dfdb09c8e4d6e6759e19967e397dbea48d1c10e45d0df2")
51    else()
52        set(REQ_URL "https://github.com/google/googletest/archive/release-1.12.1.tar.gz")
53        set(SHA256 "81964fe578e9bd7c94dfdb09c8e4d6e6759e19967e397dbea48d1c10e45d0df2")
54    endif()
55
56    mindspore_add_pkg(gtest
57            VER 1.12.1
58            LIBS gtest gmock
59            URL ${REQ_URL}
60            SHA256 ${SHA256}
61            CMAKE_OPTION ${CMAKE_OPTION})
62endif()
63
64include_directories(${gtest_INC})
65add_library(mindspore::gtest ALIAS gtest::gtest)
66add_library(mindspore::gmock ALIAS gtest::gmock)
67if(CMAKE_SYSTEM_NAME MATCHES "Windows")
68    file(COPY ${gtest_DIRPATH}/bin/libgtest${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
69            ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest FOLLOW_SYMLINK_CHAIN)
70    file(COPY ${gtest_DIRPATH}/bin/libgtest_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
71            ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest FOLLOW_SYMLINK_CHAIN)
72    file(COPY ${gtest_DIRPATH}/bin/libgmock_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
73            ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest FOLLOW_SYMLINK_CHAIN)
74    file(COPY ${gtest_DIRPATH}/bin/libgmock${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
75            ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest FOLLOW_SYMLINK_CHAIN)
76else()
77    file(COPY ${gtest_LIBPATH}/libgtest${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
78            ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest FOLLOW_SYMLINK_CHAIN)
79    file(COPY ${gtest_LIBPATH}/libgtest_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
80            ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest FOLLOW_SYMLINK_CHAIN)
81    file(COPY ${gtest_LIBPATH}/libgmock${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
82            ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest FOLLOW_SYMLINK_CHAIN)
83    file(COPY ${gtest_LIBPATH}/libgmock_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION
84            ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest FOLLOW_SYMLINK_CHAIN)
85endif()