* infra: individual test executables
We used have tests contained in a single executable. This was fine for
testing, but it would be more convient to separate tests into indivudal
modules so targeted changes could have targeted tests.
This change associates each test file with its own executable. We now
have 14 tests for GSL each of which testing a different component.
* revert -Wno-reserved-identifier
* Update tests/span_tests.cpp
thanks copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* be sure to include build type in ctest command
* [VS] make sure we are building the correct configuration
* restore tests/span_tests.cpp
* fix build break after merge conflicts
* fix build break after merge conflicts #2
* another try at fixing a build break
* fix silly typo. build break pt 4
* Use file globbing for test sources instead of manual list (#1227)
* Initial plan
* Use file globbing for test sources instead of manual list
Replace the manually maintained list of test sources with file(GLOB) to
automatically discover all .cpp files in the tests directory, excluding
no_exception_ensure_tests.cpp which needs special compilation flags.
This approach:
- Automatically picks up new test files without CMake updates
- Still correctly excludes no_exception_ensure_tests.cpp
- Maintains the same test build configuration
- Works with both C++14 and C++20
Co-authored-by: carsonRadtke <10507970+carsonRadtke@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: carsonRadtke <10507970+carsonRadtke@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
* use cmake presets instead of cmake settings
This change uses a cmake presets file in an effort allow for agentic AI
to better switch between project settings. It replaces the old
CMakeSettings.json for the more flexible CMakePresets.json.
* Update GitHub Actions workflows to use CMake presets (#1223)
* Initial plan
* Update GitHub Actions to use CMake presets for compilers workflow
Co-authored-by: carsonRadtke <10507970+carsonRadtke@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: carsonRadtke <10507970+carsonRadtke@users.noreply.github.com>
* remove unused cmake options
* address PR feedback from copilot
* fix build break
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
* fix: update conditional static assertion
There is a static assertion that spuriously fails on MSVC that was
version checked. Unfortunately it fires every time there is a new
compiler update, so for now we will remove the version check and add it
back once the compiler bug is fixed.
* fix: ios pipeline failure
Looks like somewhere along the line, the iOS simulator changed the range
of support iOS versions. This changes bumps the version from 9 to 12.0.
Also noticed that the GSL OSX bundle version was quite out of date. I
bumped this from 3.1.0 to 4.2.0 and created an upgrade checklist file in
docs/ so we don't forget these types of tasks in the future.
* bump xcode version from 15.4 to 16.4
* fix compiler warning when building gtest for ios
* allow for missing include dirs on command line
* replace windows-2019 with windows-2025
* update visual studio versions after runner bump
* PR feedback: make sure markdown links are syntactically correct
* fix failing pipeline tests
* upgrade to googletest v1.14.0 so it works with newer cmake versions
* fix android pipeline to permit new cmake versions (short-term fix)
move pipeline testing from AzDO to GitHub Actions.
* update clang versions to 13-15
* update gcc versions to 10-12
* update xcode versions to 14.3.1 and 15.4
* test against C++23 (where supported)
Job has been failing for months and is preventing other PRs from getting
merged. This PR fixes the pipeline - it changed the following:
- runs on macos-latest-large (which is a non-arm image)
- starts the emulator under java8 (see
https://learn.microsoft.com/en-us/java/openjdk/transition-from-java-8-to-java-11)
- runs emulator with -no-audio
The above were requirements to get the pipeline running. Other changes
include the following:
- The job will auto-cancel when a newer commit is pushed to the
PR.
- The 'Wait for emulator ready' step now has a 2 minute timeout. This
is necessary because we get no indication on whether or not the
command that started the emulator suceeded. I believe there is room
for improvement here, but it is outside the scope of the PR.
* Update pipeline build tag
The build status was still looking for a "master" branch, updated it to point to "main"
* Update ios.yml
* Update android.yml
* Update azure-pipelines.yml
* Update CONTRIBUTING.md
Here is the warning currently being produced:
CMake Warning (dev) at C:/Program Files/CMake/share/cmake-3.19/Modules/GNUInstallDirs.cmake:223 (message):
Unable to determine default CMAKE_INSTALL_LIBDIR directory because no
target architecture is known. Please enable at least one language before
including GNUInstallDirs.
Call Stack (most recent call first):
cmake/guidelineSupportLibrary.cmake:20 (include)
CMakeLists.txt:4 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
I noted how I fixed the error. This is caused by GNUInstallDirs automatically executing code just by including it.
I also added -Werror=dev to the CI to ensure this never happens again.
Co-authored-by: Juan Ramos <juanr0911@gmail.com>