diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index c5b5d2ec..d7f372c5 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -3,7 +3,6 @@ on: push: branches: - main - - v* pull_request: concurrency: diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml new file mode 100644 index 00000000..b2abaf8e --- /dev/null +++ b/.github/workflows/freebsd.yml @@ -0,0 +1,30 @@ +name: freebsd + +on: + push: + branches: + - main + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + name: run test on FreeBSD + steps: + - uses: actions/checkout@v4 + - name: Test in FreeBSD + id: test + uses: vmactions/freebsd-vm@v1 + with: + usesh: true + prepare: | + pkg install -y devel/googletest cmake pkgconf + + run: | + cmake -S . -B build \ + -DCMAKE_CXX_STANDARD=17 \ + -DUNITS_ENABLE_TESTS=ON \ + -DUNITS_USE_EXTERNAL_GTEST=ON + cmake --build build -j4 + cd build + ctest --output-on-failure \ No newline at end of file diff --git a/config/AddGoogletest.cmake b/config/AddGoogletest.cmake index 05a276fe..47794760 100644 --- a/config/AddGoogletest.cmake +++ b/config/AddGoogletest.cmake @@ -97,14 +97,16 @@ endif() function(add_unit_test test_source_file) get_filename_component(test_name "${test_source_file}" NAME_WE) add_executable("${test_name}" "${test_source_file}") - target_link_libraries("${test_name}" gtest gmock gtest_main) + target_link_libraries("${test_name}" GTest::gtest GTest::gmock GTest::gtest_main) add_test(NAME ${test_name} COMMAND $) set_target_properties(${test_name} PROPERTIES FOLDER "Tests") endfunction() # Target must already exist macro(add_gtest TESTNAME) - target_link_libraries(${TESTNAME} PUBLIC gtest gmock gtest_main) + target_link_libraries( + ${TESTNAME} PUBLIC GTest::gtest GTest::gmock GTest::gtest_main + ) if(GOOGLE_TEST_INDIVIDUAL) gtest_discover_tests( diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2152c683..971b5203 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -165,8 +165,8 @@ else() target_compile_options(test_all_unit_base PRIVATE /wd4459) endif() target_link_libraries( - test_all_unit_base gtest gmock gtest_main ${UNITS_LC_PROJECT_NAME}::units - compile_flags_target + test_all_unit_base GTest::gtest GTest::gmock GTest::gtest_main + ${UNITS_LC_PROJECT_NAME}::units compile_flags_target ) set_target_properties(test_all_unit_base PROPERTIES FOLDER "Tests") # test_all_unit_base should not be added to the tests it will take a long time run