Skip to content

Commit 449d6db

Browse files
authored
Add find package gtest and yaml-cpp package (#136)
Signed-off-by: Aaron Chan <aaron.chun.yew.chan@intel.com>
1 parent 81a0ceb commit 449d6db

3 files changed

Lines changed: 74 additions & 6 deletions

File tree

third_party/CMakeLists.txt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (C) 2022-2024 Intel Corporation
2+
# Copyright (C) 2022-2026 Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
#
@@ -14,9 +14,6 @@ if (ENABLE_NPU_PERFETTO_BUILD)
1414
include(cmake/perfetto.cmake)
1515
endif()
1616

17-
set(INSTALL_GTEST OFF)
18-
add_subdirectory(googletest EXCLUDE_FROM_ALL)
17+
include(cmake/googletest.cmake)
18+
include(cmake/yaml-cpp.cmake)
1919

20-
set(YAML_CPP_INSTALL OFF)
21-
set(BUILD_SHARED_LIBS OFF)
22-
add_subdirectory(yaml-cpp EXCLUDE_FROM_ALL)

third_party/cmake/googletest.cmake

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#
2+
# Copyright (C) 2022-2026 Intel Corporation
3+
#
4+
# SPDX-License-Identifier: MIT
5+
#
6+
7+
# Try to find system-installed GoogleTest package
8+
# Package names vary by distribution:
9+
# - Fedora/RHEL/openSUSE Tumbleweed: gtest-devel (provides gmock-devel as well)
10+
# - Ubuntu/Debian: libgtest-dev
11+
find_package(GTest QUIET)
12+
13+
if(NOT GTest_FOUND)
14+
message(STATUS "System GoogleTest not found, building from submodule")
15+
set(INSTALL_GTEST OFF)
16+
add_subdirectory(googletest EXCLUDE_FROM_ALL)
17+
else()
18+
message(STATUS " Found gtest, version ${GTest_VERSION}")
19+
# Display include directories and library paths for each target
20+
if(TARGET GTest::gtest)
21+
get_target_property(GTEST_INCLUDE_DIRS GTest::gtest INTERFACE_INCLUDE_DIRECTORIES)
22+
get_target_property(GTEST_LOCATION GTest::gtest LOCATION)
23+
message(STATUS "GTest_INCLUDE_DIRS : ${GTEST_INCLUDE_DIRS}")
24+
message(STATUS "GTest_LIBRARIES : ${GTEST_LOCATION}")
25+
message(STATUS "GTest_VERSION : ${GTest_VERSION}")
26+
endif()
27+
28+
if(TARGET GTest::gmock)
29+
get_target_property(GMOCK_INCLUDE_DIRS GTest::gmock INTERFACE_INCLUDE_DIRECTORIES)
30+
get_target_property(GMOCK_LOCATION GTest::gmock LOCATION)
31+
message(STATUS "GMock_INCLUDE_DIRS : ${GMOCK_INCLUDE_DIRS}")
32+
message(STATUS "GMock_LIBRARIES : ${GMOCK_LOCATION}")
33+
message(STATUS "GMock_VERSION : ${GTest_VERSION}")
34+
endif()
35+
36+
# Create aliases for consistency with submodule build
37+
# The submodule provides 'gtest' and 'gmock' targets
38+
# System package provides 'GTest::gtest', 'GTest::gmock', etc.
39+
if(NOT TARGET gtest)
40+
add_library(gtest ALIAS GTest::gtest)
41+
endif()
42+
if(NOT TARGET gmock)
43+
add_library(gmock ALIAS GTest::gmock)
44+
endif()
45+
if(NOT TARGET gtest_main AND TARGET GTest::gtest_main)
46+
add_library(gtest_main ALIAS GTest::gtest_main)
47+
endif()
48+
if(NOT TARGET gmock_main AND TARGET GTest::gmock_main)
49+
add_library(gmock_main ALIAS GTest::gmock_main)
50+
endif()
51+
endif()
52+

third_party/cmake/yaml-cpp.cmake

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#
2+
# Copyright (C) 2022-2026 Intel Corporation
3+
#
4+
# SPDX-License-Identifier: MIT
5+
#
6+
7+
# Try to find system-installed yaml-cpp package
8+
# Package names vary by distribution:
9+
# - Fedora/RHEL/openSUSE Tumbleweed: yaml-cpp-devel
10+
# - Ubuntu/Debian: libyaml-cpp-dev
11+
find_package(yaml-cpp QUIET)
12+
13+
if(NOT yaml-cpp_FOUND)
14+
message(STATUS "System yaml-cpp not found, building from submodule")
15+
set(YAML_CPP_INSTALL OFF)
16+
set(BUILD_SHARED_LIBS OFF)
17+
add_subdirectory(yaml-cpp EXCLUDE_FROM_ALL)
18+
endif()
19+

0 commit comments

Comments
 (0)