Skip to content

Commit 8e3886a

Browse files
committed
Create Zephyr external module
This update googletest to use it as Zephyr OS external module. This allows downloading, configure and building googltest using Zephyr west build system, without any user manipulation. Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
1 parent ab83f03 commit 8e3886a

File tree

4 files changed

+43
-0
lines changed

4 files changed

+43
-0
lines changed

modules/googletest/CMakeLists.txt

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
zephyr_library()
2+
3+
# Disable use of pthreads in GoogleTest
4+
set(gtest_disable_pthreads ON CACHE BOOL "Build GoogleTest without Pthread")
5+
6+
zephyr_include_directories_ifdef(CONFIG_GTEST ${ZEPHYR_GOOGLETEST_MODULE_DIR}/googletest/)
7+
zephyr_include_directories_ifdef(CONFIG_GTEST ${ZEPHYR_GOOGLETEST_MODULE_DIR}/googletest/include/)
8+
zephyr_library_sources_ifdef(CONFIG_GTEST
9+
${ZEPHYR_GOOGLETEST_MODULE_DIR}/googletest/src/gtest-all.cc
10+
)
11+
target_sources_ifdef(CONFIG_GTEST app PRIVATE
12+
${ZEPHYR_GOOGLETEST_MODULE_DIR}/googletest/src/gtest_main.cc
13+
)
14+
15+
zephyr_include_directories_ifdef(CONFIG_GMOCK ${ZEPHYR_GOOGLETEST_MODULE_DIR}/googlemock/)
16+
zephyr_include_directories_ifdef(CONFIG_GMOCK ${ZEPHYR_GOOGLETEST_MODULE_DIR}/googlemock/include/)
17+
zephyr_library_sources_ifdef(CONFIG_GMOCK ${ZEPHYR_GOOGLETEST_MODULE_DIR}/googlemock/src/gmock-all.cc)

modules/googletest/Kconfig

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
config GTEST
2+
bool "GoogleTest test framework"
3+
select TEST
4+
select CPP
5+
select REQUIRES_FULL_LIBCPP
6+
select FPU
7+
8+
config GMOCK
9+
bool "GoogleMock mocking framework"
10+
select GTEST
11+
12+
choice STD_CPP
13+
default STD_CPP14 if GTEST
14+
endchoice
15+
16+
choice LIBC_IMPLEMENTATION
17+
default NEWLIB_LIBC if GTEST
18+
endchoice

modules/modules.cmake

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
set(ZEPHYR_GOOGLETEST_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR}/googletest)
2+
set(ZEPHYR_GOOGLETEST_KCONFIG ${CMAKE_CURRENT_LIST_DIR}/googletest/Kconfig)

zephyr/module.yml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
name: googletest
2+
build:
3+
cmake-ext: true
4+
kconfig-ext: true
5+
settings:
6+
module_ext_root: .

0 commit comments

Comments
 (0)