[nnfw-cmake] Support gmock library (#8031)
author오형석/On-Device Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Thu, 10 Oct 2019 10:06:12 +0000 (19:06 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Thu, 10 Oct 2019 10:06:12 +0000 (19:06 +0900)
Prepare to support gmock - android 10 nnapi test require gmock

Signed-off-by: Hyeongseok Oh <hseok82.oh@samsung.com>
infra/nnfw/cmake/packages/GTestConfig.cmake
packaging/nnfw.spec
tests/nnapi/CMakeLists.txt
tools/cross/armel/tizen-fetch.sh

index 856d1b6..b4dd05f 100644 (file)
@@ -37,7 +37,63 @@ if(${GTEST_FOUND} AND TARGET Threads::Threads)
     target_link_libraries(gtest_main INTERFACE ${GTEST_MAIN_LIBRARIES})
   endif(NOT TARGET gtest_main)
 
+  if(NOT TARGET gmock)
+    find_library(GMOCK_LIBRARIES gmock)
+    find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)
+    if(GMOCK_LIBRARIES AND GMOCK_INCLUDE_DIR)
+      add_library(gmock INTERFACE)
+      target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIR})
+      target_link_libraries(gmock INTERFACE ${GMOCK_LIBRARIES} Threads::Threads)
+    endif(GMOCK_LIBRARIES)
+  endif(NOT TARGET gmock)
+
+  if(NOT TARGET gmock_main)
+    find_library(GMOCK_MAIN_LIBRARIES gmock_main)
+    find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)
+    if(GMOCK_MAIN_LIBRARIES AND GMOCK_INCLUDE_DIR)
+      add_library(gmock_main INTERFACE)
+      target_include_directories(gmock_main INTERFACE ${GMOCK_INCLUDE_DIR})
+      target_link_libraries(gmock_main INTERFACE gmock)
+      target_link_libraries(gmock_main INTERFACE ${GMOCK_MAIN_LIBRARIES})
+    endif(GMOCK_MAIN_LIBRARIES AND GMOCK_INCLUDE_DIR)
+  endif(NOT TARGET gmock_main)
+
   # TODO Check whether this command is necessary or not
   include_directories(${GTEST_INCLUDE_DIR})
   set(GTest_FOUND TRUE)
+else(${GTEST_FOUND} AND TARGET Threads::Threads)
+  find_path(GTEST_INCLUDE_DIR gtest/gtest.h)
+  find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)
+  find_library(GMOCK_LIBRARIES libgmock.so)
+  find_library(GMOCK_MAIN_LIBRARIES libgmock_main.so)
+
+  if(GTEST_INCLUDE_DIR AND GMOCK_INCLUDE_DIR AND GMOCK_LIBRARIES AND GMOCK_MAIN_LIBRARIES AND TARGET Threads::Threads)
+    if(NOT TARGET gmock)
+      add_library(gmock INTERFACE)
+      target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIRS})
+      target_link_libraries(gmock INTERFACE ${GMOCK_LIBRARIES} Threads::Threads)
+    endif(NOT TARGET gmock)
+
+    if(NOT TARGET gmock_main)
+      add_library(gmock_main INTERFACE)
+      target_include_directories(gmock_main INTERFACE ${GMOCK_INCLUDE_DIRS})
+      target_link_libraries(gmock_main INTERFACE gmock)
+      target_link_libraries(gmock_main INTERFACE ${GMOCK_MAIN_LIBRARIES})
+    endif(NOT TARGET gmock_main)
+
+    if(NOT TARGET gtest)
+      add_library(gtest INTERFACE)
+      target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIRS})
+      target_link_libraries(gtest INTERFACE ${GMOCK_LIBRARIES} Threads::Threads)
+    endif(NOT TARGET gtest)
+
+    if(NOT TARGET gtest_main)
+      add_library(gtest_main INTERFACE)
+      target_include_directories(gtest_main INTERFACE ${GTEST_INCLUDE_DIRS})
+      target_link_libraries(gtest_main INTERFACE gtest)
+      target_link_libraries(gtest_main INTERFACE ${GMOCK_MAIN_LIBRARIES})
+    endif(NOT TARGET gtest_main)
+
+    set(GTest_FOUND TRUE)
+  endif(GTEST_INCLUDE_DIR AND GMOCK_INCLUDE_DIR AND GMOCK_LIBRARIES AND GMOCK_MAIN_LIBRARIES AND TARGET Threads::Threads)
 endif(${GTEST_FOUND} AND TARGET Threads::Threads)
index 995896c..5399d78 100644 (file)
@@ -15,7 +15,7 @@ BuildRequires:        cmake
 BuildRequires: python
 BuildRequires: python3
 BuildRequires: boost-devel
-BuildRequires: gtest-devel
+BuildRequires: gmock-devel
 BuildRequires: tensorflow-lite-devel
 
 BuildRequires: libarmcl-devel
index 3acf424..49f379a 100644 (file)
@@ -50,7 +50,7 @@ elseif (BUILD_PURE_ARM_COMPUTE)
   set(SKIPLIST_FILE_NAME ${RUNTIME_NNAPI_TEST}.skip.${TARGET_PLATFORM}.pacl)
 endif()
 target_link_libraries(${RUNTIME_NNAPI_TEST} nnfw_lib_nnapi)
-target_link_libraries(${RUNTIME_NNAPI_TEST} gtest)
+target_link_libraries(${RUNTIME_NNAPI_TEST} gtest gmock)
 target_link_libraries(${RUNTIME_NNAPI_TEST} ${LIB_PTHREAD} dl)
 
 install(TARGETS ${RUNTIME_NNAPI_TEST} DESTINATION unittest)
index a281e88..1ded5c2 100755 (executable)
@@ -165,5 +165,5 @@ fetch_tizen_pkgs armv7l libgcc libstdc++ libstdc++-devel libunwind libunwind-dev
 Inform "Initialize standard unified"
 fetch_tizen_pkgs_init standard unified
 Inform "fetch nnfw packages"
-fetch_tizen_pkgs armv7l gtest-devel tensorflow-lite-devel boost-devel libarmcl-devel boost-program-options boost-system boost-filesystem gtest libarmcl-release
+fetch_tizen_pkgs armv7l gmock-devel tensorflow-lite-devel boost-devel libarmcl-devel boost-program-options boost-system boost-filesystem gmock libarmcl-release