X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fcmake%2FFindGMock.cmake;fp=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fcmake%2FFindGMock.cmake;h=04fa814479db3243487cffc365b9ab90142f6f7e;hb=e26c1ec581be598521517829adba8c8dd23a768f;hp=0000000000000000000000000000000000000000;hpb=6699c1aea74eeb0eb400e6299079f0c7576f716f;p=iec.git diff --git a/src/type3_AndroidCloud/anbox-master/cmake/FindGMock.cmake b/src/type3_AndroidCloud/anbox-master/cmake/FindGMock.cmake new file mode 100644 index 0000000..04fa814 --- /dev/null +++ b/src/type3_AndroidCloud/anbox-master/cmake/FindGMock.cmake @@ -0,0 +1,102 @@ +# Copyright (C) 2014 Canonical Ltd +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . + +# Build with system gmock and embedded gtest +# +# Usage: +# +# find_package(GMock) +# +# ... +# +# target_link_libraries( +# my-target +# ${GTEST_BOTH_LIBRARIES} +# ) +# +# NOTE: Due to the way this package finder is implemented, do not attempt +# to find the GMock package more than once. + +find_package(Threads) + +pkg_check_modules(GTEST gtest ) +pkg_check_modules(GTEST_MAIN gtest_main) +pkg_check_modules(GMOCK gmock ) +pkg_check_modules(GMOCK_MAIN gmock_main) + +if (NOT (GTEST_FOUND AND GTEST_MAIN_FOUND AND GMOCK_FOUND AND GMOCK_MAIN_FOUND)) + + if (EXISTS "/usr/src/googletest") + # As of version 1.8.0 + set(GMOCK_SOURCE_DIR "/usr/src/googletest/googlemock" CACHE PATH "gmock source directory") + set(GMOCK_INCLUDE_DIRS "${GMOCK_SOURCE_DIR}/include" CACHE PATH "gmock source include directory") + set(GTEST_INCLUDE_DIRS "/usr/src/googletest/googletest/include" CACHE PATH "gtest source include directory") + else() + set(GMOCK_SOURCE_DIR "/usr/src/gmock" CACHE PATH "gmock source directory") + set(GMOCK_INCLUDE_DIRS "/usr/include" CACHE PATH "gmock source include directory") + set(GTEST_INCLUDE_DIRS "/usr/include" CACHE PATH "gtest source include directory") + endif() + + # We add -g so we get debug info for the gtest stack frames with gdb. + # The warnings are suppressed so we get a noise-free build for gtest and gmock if the caller + # has these warnings enabled. + set(findgmock_cxx_flags "${CMAKE_CXX_FLAGS} -g -Wno-old-style-cast -Wno-missing-field-initializers -Wno-ctor-dtor-privacy -Wno-switch-default") + + set(findgmock_bin_dir "${CMAKE_CURRENT_BINARY_DIR}/gmock") + set(findgmock_gtest_lib "${findgmock_bin_dir}/gtest/libgtest.a") + set(findgmock_gtest_main_lib "${findgmock_bin_dir}/gtest/libgtest_main.a") + set(findgmock_gmock_lib "${findgmock_bin_dir}/libgmock.a") + set(findgmock_gmock_main_lib "${findgmock_bin_dir}/libgmock_main.a") + + include(ExternalProject) + ExternalProject_Add(GMock SOURCE_DIR "${GMOCK_SOURCE_DIR}" + BINARY_DIR "${findgmock_bin_dir}" + BUILD_BYPRODUCTS "${findgmock_gtest_lib}" + "${findgmock_gtest_main_lib}" + "${findgmock_gmock_lib}" + "${findgmock_gmock_main_lib}" + INSTALL_COMMAND "" + CMAKE_ARGS "-DCMAKE_CXX_FLAGS=${findgmock_cxx_flags}") + + add_library(gtest INTERFACE) + target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIRS}) + target_link_libraries(gtest INTERFACE ${findgmock_gtest_lib} ${CMAKE_THREAD_LIBS_INIT}) + add_dependencies(gtest GMock) + + add_library(gtest_main INTERFACE) + target_include_directories(gtest_main INTERFACE ${GTEST_INCLUDE_DIRS}) + target_link_libraries(gtest_main INTERFACE ${findgmock_gtest_main_lib} gtest) + + add_library(gmock INTERFACE) + target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIRS}) + target_link_libraries(gmock INTERFACE ${findgmock_gmock_lib} gtest) + + add_library(gmock_main INTERFACE) + target_include_directories(gmock_main INTERFACE ${GMOCK_INCLUDE_DIRS}) + target_link_libraries(gmock_main INTERFACE ${findgmock_gmock_main_lib} gmock gtest_main) + + set(GTEST_LIBRARIES gtest) + set(GTEST_MAIN_LIBRARIES gtest_main) + set(GMOCK_LIBRARIES gmock gmock_main) + + unset(findgmock_cxx_flags) + unset(findgmock_bin_dir) + unset(findgmock_gtest_lib) + unset(findgmock_gtest_main_lib) + unset(findgmock_gmock_lib) + unset(findgmock_gmock_main_lib) + +endif() + +set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})