File tree Expand file tree Collapse file tree 3 files changed +27
-5
lines changed Expand file tree Collapse file tree 3 files changed +27
-5
lines changed Original file line number Diff line number Diff line change 1717 os : [ubuntu-latest, windows-latest, macos-latest]
1818 cxx_standard : [11, 17, 20]
1919 build : [static, shared]
20+ googletest : [build, system]
2021 generator : ["Default Generator", "MinGW Makefiles"]
2122 exclude :
2223 - os : macos-latest
@@ -25,14 +26,26 @@ jobs:
2526 generator : " MinGW Makefiles"
2627 - os : ubuntu-latest
2728 generator : " MinGW Makefiles"
29+ - os : macos-latest
30+ googletest : system
31+ - os : windows-latest
32+ googletest : system
2833 env :
2934 YAML_BUILD_SHARED_LIBS : ${{ matrix.build == 'shared' && 'ON' || 'OFF' }}
35+ YAML_USE_SYSTEM_GTEST : ${{ matrix.googletest == 'system' && 'ON' || 'OFF' }}
3036 CMAKE_GENERATOR : >-
3137 ${{format(matrix.generator != 'Default Generator' && '-G "{0}"' || '', matrix.generator)}}
3238 CMAKE_INSTALL_PREFIX : " ${{ github.workspace }}/install-prefix"
3339 CMAKE_BUILD_TYPE : Debug
3440 runs-on : ${{ matrix.os }}
3541 steps :
42+
43+ - uses : awalsh128/cache-apt-pkgs-action@latest
44+ if : matrix.os == 'ubuntu-latest'
45+ with :
46+ packages : googletest libgmock-dev libgtest-dev
47+ version : 1.0
48+
3649 - uses : actions/checkout@v3
3750
3851 - name : Configure
4558 -D CMAKE_INSTALL_PREFIX="${{ env.CMAKE_INSTALL_PREFIX }}" \
4659 -D CMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} \
4760 -D YAML_BUILD_SHARED_LIBS=${{ env.YAML_BUILD_SHARED_LIBS }} \
61+ -D YAML_USE_SYSTEM_GTEST=${{ env.YAML_USE_SYSTEM_GTEST }} \
4862 -D YAML_CPP_BUILD_TESTS=ON
4963
5064 - name : Build
Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ option(YAML_BUILD_SHARED_LIBS "Build yaml-cpp shared library" ${BUILD_SHARED_LIB
2727option (YAML_CPP_INSTALL "Enable generation of yaml-cpp install targets" ${YAML_CPP_MAIN_PROJECT} )
2828option (YAML_CPP_FORMAT_SOURCE "Format source" ${YAML_CPP_MAIN_PROJECT} )
2929option (YAML_CPP_DISABLE_UNINSTALL "Disable uninstallation of yaml-cpp" OFF )
30+ option (YAML_USE_SYSTEM_GTEST "Use system googletest if found" OFF )
3031
3132cmake_dependent_option(YAML_CPP_BUILD_TESTS
3233 "Enable yaml-cpp tests" OFF
Original file line number Diff line number Diff line change @@ -4,11 +4,17 @@ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
44set (BUILD_MOCK ON CACHE BOOL "" FORCE)
55set (CMAKE_POLICY_DEFAULT_CMP0048 NEW)
66
7- add_subdirectory (
8- "${CMAKE_CURRENT_SOURCE_DIR} /gtest-1.11.0"
9- "${CMAKE_CURRENT_BINARY_DIR} /prefix" )
10-
11- include_directories (SYSTEM "${CMAKE_CURRENT_SOURCE_DIR} /gtest-1.11.0/googletest/include" )
7+ if (YAML_USE_SYSTEM_GTEST)
8+ find_package (GTest)
9+ if (NOT GTEST_FOUND)
10+ message (FATAL_ERROR "system googletest was requested but not found" )
11+ endif ()
12+ else ()
13+ add_subdirectory (
14+ "${CMAKE_CURRENT_SOURCE_DIR} /gtest-1.11.0"
15+ "${CMAKE_CURRENT_BINARY_DIR} /prefix" )
16+ include_directories (SYSTEM "${CMAKE_CURRENT_SOURCE_DIR} /gtest-1.11.0/googletest/include" )
17+ endif ()
1218
1319set (test -new-api-pattern "new-api/*.cpp" )
1420set (test -source -pattern "*.cpp" "integration/*.cpp" "node/*.cpp" )
@@ -38,6 +44,7 @@ target_link_libraries(yaml-cpp-tests
3844 PRIVATE
3945 Threads::Threads
4046 yaml-cpp
47+ gtest
4148 gmock)
4249
4350set_property (TARGET yaml-cpp-tests PROPERTY CXX_STANDARD_REQUIRED ON )
You can’t perform that action at this time.
0 commit comments