Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions third_party/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@ if (ENABLE_NPU_PERFETTO_BUILD)
include(cmake/perfetto.cmake)
endif()

set(INSTALL_GTEST OFF)
add_subdirectory(googletest EXCLUDE_FROM_ALL)
include(cmake/googletest.cmake)
include(cmake/yaml-cpp.cmake)

set(YAML_CPP_INSTALL OFF)
set(BUILD_SHARED_LIBS OFF)
add_subdirectory(yaml-cpp EXCLUDE_FROM_ALL)
52 changes: 52 additions & 0 deletions third_party/cmake/googletest.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#
# Copyright (C) 2022-2024 Intel Corporation
#
# SPDX-License-Identifier: MIT
#

# Try to find system-installed GoogleTest package
# Package names vary by distribution:
# - Fedora/RHEL/openSUSE Tumbleweed: gtest-devel (provides gmock-devel as well)
# - Ubuntu/Debian: libgtest-dev
find_package(GTest QUIET)

if(NOT GTest_FOUND)
message(STATUS "System GoogleTest not found, building from submodule")
set(INSTALL_GTEST OFF)
add_subdirectory(googletest EXCLUDE_FROM_ALL)
else()
message(STATUS " Found gtest, version ${GTest_VERSION}")
# Display include directories and library paths for each target
if(TARGET GTest::gtest)
get_target_property(GTEST_INCLUDE_DIRS GTest::gtest INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(GTEST_LOCATION GTest::gtest LOCATION)
message(STATUS "GTest_INCLUDE_DIRS : ${GTEST_INCLUDE_DIRS}")
message(STATUS "GTest_LIBRARIES : ${GTEST_LOCATION}")
message(STATUS "GTest_VERSION : ${GTest_VERSION}")
endif()

if(TARGET GTest::gmock)
get_target_property(GMOCK_INCLUDE_DIRS GTest::gmock INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(GMOCK_LOCATION GTest::gmock LOCATION)
message(STATUS "GMock_INCLUDE_DIRS : ${GMOCK_INCLUDE_DIRS}")
message(STATUS "GMock_LIBRARIES : ${GMOCK_LOCATION}")
message(STATUS "GMock_VERSION : ${GTest_VERSION}")
endif()

# Create aliases for consistency with submodule build
# The submodule provides 'gtest' and 'gmock' targets
# System package provides 'GTest::gtest', 'GTest::gmock', etc.
if(NOT TARGET gtest)
add_library(gtest ALIAS GTest::gtest)
endif()
if(NOT TARGET gmock)
add_library(gmock ALIAS GTest::gmock)
endif()
if(NOT TARGET gtest_main AND TARGET GTest::gtest_main)
add_library(gtest_main ALIAS GTest::gtest_main)
endif()
if(NOT TARGET gmock_main AND TARGET GTest::gmock_main)
add_library(gmock_main ALIAS GTest::gmock_main)
endif()
endif()

19 changes: 19 additions & 0 deletions third_party/cmake/yaml-cpp.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#
# Copyright (C) 2022-2024 Intel Corporation
#
# SPDX-License-Identifier: MIT
#

# Try to find system-installed yaml-cpp package
# Package names vary by distribution:
# - Fedora/RHEL/openSUSE Tumbleweed: yaml-cpp-devel
# - Ubuntu/Debian: libyaml-cpp-dev
find_package(yaml-cpp QUIET)

if(NOT yaml-cpp_FOUND)
message(STATUS "System yaml-cpp not found, building from submodule")
set(YAML_CPP_INSTALL OFF)
set(BUILD_SHARED_LIBS OFF)
add_subdirectory(yaml-cpp EXCLUDE_FROM_ALL)
endif()