Commit Graph

83 Commits

Author SHA1 Message Date
Carson Radtke
8b1634e806 add tests for c++23 2024-10-14 14:20:17 -05:00
Carson Radtke
785f7a140f update matrix in README to correspond to tests 2024-10-14 13:41:23 -05:00
Bruce Mitchener
caae4dd0f8
Fix some typos. (#1146) 2024-02-21 15:06:29 -08:00
Werner Henze
9695da9b38
fix and optimize documentation (#1131)
- Add anchor for `finally` in `headers.md` so that the link in `README.md` can work
- In `README.md` add code formatting for the character types of the `zstring` and `string_span` types
- In `README.md` change code formatting to links for GSL types
- Vertical alignment
2023-09-05 16:08:36 -07:00
Dmitry Kobets
3549e31ba4
Deprecate <gsl/string_span> and replace with <gsl/zstring> (#1125)
With `string_span` having been deprecated (https://github.com/microsoft/GSL/pull/931, https://github.com/microsoft/GSL/pull/945) and removed (https://github.com/microsoft/GSL/pull/1074), the header `<gsl/string_span>` now only contains the definitions for the `zstring` family. Update the name accordingly from `<gsl/string_span>` to `<gsl/zstring>`. The old header is now deprecated and should no longer be used and will be removed in some future release.
2023-06-28 10:48:23 -07:00
jpr42
afaaa71bce
Install GSL.natvis (#1112)
Turns out supporting GSL.natvis perfectly is quite difficult.

There is no universal way to consume .natvis files that would satisfy everyone.

I thought the solution was to use the /NATVIS linker option. But it turns out that actually embeds information into the PDB. So I'm not sure how to properly support the Ninja generator...

That's not even accounting for the fact target_link_options doesn't play nicely with /NATVIS

When you just add the file via target_sources the visual studio solution will just pick it up and recognize it without adding it to the PDB file. Which won't affect the binary and is what most devs want.

This all comes down to the fact that /NATVIS files have native integration with visual studio that makes it difficult to use with non-visual studio solutions. /NATVIS almost works but embeds itself into the PDB which not everyone wants, and not everyone generates PDBs either.

Docs for natvis files and /NATVIS
- https://learn.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2022
- https://learn.microsoft.com/en-us/cpp/build/reference/natvis-add-natvis-to-pdb?view=msvc-170

So my current solution is to just simplify the existing CMake code, and install the natvis so the user can decide.

closes #1084
2023-05-10 17:02:44 -07:00
dmitrykobets-msft
b080081c9c
Add missing link to documentation 2023-02-27 15:49:09 -08:00
Werner Henze
9f85e4e088
minor docs improvements (#1097)
- Capitalize inital letter (make both tables consistent)
- Add links to docs/headers.md
- Latest cmake requirement is 3.14
- Mark text as code
2023-02-23 11:10:19 -08:00
Werner Henze
743939744c
Documentation (#1086)
Add documentation for #1071.
2023-02-17 10:38:34 -08:00
Werner Henze
f94c1f6f2b
use code spans in README.md (#1078) 2022-12-29 10:23:30 -08:00
jpr42
9c4212aca4
Raise CMake min to 3.8 (#1061)
This avoids propagating -std=c++14 as a compile option

Currently if you use less than CMake 3.8 and you install the project
`-std=c++14` gets added to the INTERFACE_COMPILE_OPTIONS. This forces
users to use C++ 14 or remove the property from the imported target.

The solution is to raise the minimum and use `cxx_std_14`
2022-10-29 12:31:23 -07:00
Eli Boyarski
1e0d0446dd
README.md: fixed a typo (#1062) 2022-10-24 13:34:44 -07:00
jpr42
c52bad36aa
CMake cleanup (#1060)
- Move all install logic inside gsl_install.cmake
  - This makes reading the logic easier, and avoids the enable language
    issue with `GNUInstallDirs` by having it included after the project
    call
- Have all functions inside gsl_functions.cmake
- Use CMake idiom PROJECT_IS_TOP_LEVEL
- Update README.md
2022-10-18 11:05:09 -07:00
dmitrykobets-msft
ebf0498363
Update compiler support (#1021)
Bump clang and Xcode supported versions and add support for VS with LLVM
2022-01-06 10:17:21 -08:00
dmitrykobets-msft
c412deb31e
Update compiler support (#1019) 2021-12-10 11:17:47 -08:00
dmitrykobets-msft
bcf008ae55
Fix/implement C++2020 compilation, tests, and CI (#1017)
* Fix C++20 bugs and tests
* Rework CI for C++2020 tests
* Update readme compiler versions
2021-12-09 14:54:06 -08:00
Werner Henze
da80ce15d8
make zstring family don't require empty angle brackets any more (#998)
Co-authored-by: Werner Henze <werner.henze+gitcommits@posteo.de>
2021-10-26 16:50:58 -07:00
Jordan Maples [MSFT]
176c92e802
Branch rename cleanup (#976)
* 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
2021-02-24 11:16:21 -08:00
hdf89shfdfs
3b3478eaf8
Update README.md (#970)
Mention the new FetchContent functionality cmake offers. And provide a usable example.

Co-authored-by: Juan Ramos <juanr0911@gmail.com>
2021-01-07 14:02:47 -08:00
Jordan Maples [MSFT]
0140ab1d73
Change build status badges (#955)
Using Azure Pipelines badge instead of the Travis-ci and Appveyor badges.
2020-11-23 16:11:40 -08:00
Jordan Maples [MSFT]
804a14fe8b
Update README.md
update the supported matrix
2020-11-11 13:52:11 -08:00
Jordan Maples [MSFT]
d74ae54b60
Update README.md
Closes #911
2020-10-28 15:47:06 -07:00
Jordan Maples
1665f07cf6 updating readme to reflect the deprecation of string_span 2020-10-01 14:38:41 -07:00
Jordan Maples [MSFT]
5de956aaf0
Merge pull request #929 from JordanMaples/yml_experiment
split GitHub action into multiple files.
2020-09-23 14:23:52 -07:00
Jordan Maples [MSFT]
21b69e5cce
Updating span section of Supported Features table.
Added a link to the span section to point to the "gsl::span and std::span" page in the wiki.
2020-08-28 10:53:19 -07:00
Esteban Gehring
81957f6f91
fix typo in readme 2020-08-24 15:17:30 +02:00
Jordan Maples
dad3d80c25 Update README.md
Rearranged and updated the table.
Added a second table of concepts that exist in the Microsoft GSL that do not exist in the C++ Core Guidelines
2020-08-13 15:35:46 +02:00
Krystian Kuzniarek
a9ffcf7f65 add a table of features 2020-08-13 15:35:45 +02:00
Jordan Maples
bf0697be71 update readme to have the correct asset badges. This will render correctly when it's merged into the main repo 2020-08-11 16:46:41 -07:00
Jordan Maples
97cb97c685 readme update for the updated badges 2020-08-11 16:30:48 -07:00
Jordan Maples [MSFT]
be3bc0e754
Update README.md
Removed the line saying that specific workarounds exist for MSVC 2015 as they were removed in #886 when support for MSVC 2015 was dropped.
2020-07-06 08:22:35 -07:00
Jordan Maples
34750814fb updating table with compiler versions that are in the test matrix 2020-05-20 16:24:05 -07:00
Jordan Maples
33544a706e revised the readme 2020-05-13 17:05:45 -07:00
Jordan Maples
09caa20d99 changing matrices and removing msc < 1910 work arounds 2020-05-12 16:21:55 -07:00
Bas Hendri
1e4e23738c
updates README.md with iOS & Android support 2020-05-07 15:44:56 -07:00
Alexander Karzhenkov
8b8c25fa66 Fix link to Google Test 2020-04-13 18:19:51 +05:00
Roelf-Jilling
30c068781f Merge branch 'master' into TravisCI 2020-03-26 16:24:19 +01:00
Jordan Maples [MSFT]
4b643918a1
Merge pull request #784 from hanst99/hunterization
Update "Make library importable by CMake using find_package"
2020-02-26 08:48:04 -08:00
Hannes Steffenhagen
849f14083a Add a note on CMake usage of exported target to the README 2020-02-08 13:11:11 +00:00
cbuchart
3f0d733466 Fix incorrect package name for vcpkg 2020-02-07 15:25:58 +01:00
NancyLi1013
c61b1503ad Add vcpkg installation instructions 2020-01-18 23:12:43 -08:00
Roelf-Jilling
8edc449efb CMake 3.2.3 or later to use AppleClang on OSX
GoogleTest uses CMake compile feature detection.
2020-01-16 17:55:58 +01:00
Jordan Maples [MSFT]
4f6f05d463 changing text in notices & readme. adding terminate handler for tests 2019-12-12 10:55:26 -08:00
Jordan Maples [MSFT]
23066c829f
Update README.md 2019-09-04 15:10:14 -07:00
Anna Gringauze
7d78b743e4
added clang7.0 to Travis configuration and README (#763) 2019-01-16 19:58:38 -08:00
Anna Gringauze
6418b5f4de
Clang cl (#762)
* Added c++17 test configurations for clang5.0 and clang6.0

* Fix #739 correct cppcorecheck warnings for clang-cl

* Add clang-cl  configurations

* Corrections Appveyor;
Temporarily disable msvc compilation for faster testing (#741)

* Add path to clang-cl.exe (#741)

* Escape backslash in path (#741)

* Update vcpkg (#741)

* Check vcpkg version; try without building vcpkg; use latest clang-cl from path (#741)

* Fix blocks in ps script (#741)

* Try accessing APPVEYOR_BUILD_FOLDER variable (#471)

* Update span size() bug confirmation test for GCC 6.5 (#741)

* MSVC flags to Clang-cl; disable c++98-compat and undefined macro warnings (#741)

* Suppress clang warning on tests (missing-prototypes) (#741)

* Fix clang warning -Wnewline-eof (#741)

* Fix clang warning -Wdouble-promotion (#741)

* Set linker explicitly

* Clean condition statement

* For Clang, fallback to the AppVeyor installed version of CMake

* Fix clang warning -Wmissing-variable-declarations

* Fallback to the MSVC linker until vcpkg has been updated

* Revert "Fallback to the MSVC linker until vcpkg has been updated"

This reverts commit 7263f3289e.

* Fix clang warning -Wunused-member-function

* Fix clang warning -Wmissing-noreturn

* Fix clang warning -Winvalid-noreturn on Windows

* Add macro block end comment on large #if blocks

* Workaround: fallback to mscv link.exe

* Workaround: get msvc paths into PowerShell through intermediate file

* Workaround: fix, remove "PATH=" from text

* Workaround: try with full-path; and return user PATH

* Workaround: fix, escape backslashes

* Revert all since "Workaround: fallback to mscv link.exe" did not work on AppVeyor

This reverts the commits:
bda3d6a428
97062933ac
0f4fb04bac
1b0c19afd1
a5739ea5f0

* Suppress output of git pull; remove vcpkg from cache

* Re-enable AppVeyor builds for all platforms

* Correct typo

Co-Authored-By: Farwaykorse <Farwaykorse@users.noreply.github.com>

* Add Clang-cl 7.0.0 to the supported platforms

* Revert "Fix clang warning -Wunused-member-function"

This reverts commit 6fe1a42035.

* Fix or locally suppress clang warning -Wunused-member-function

* format touched code and correct comment

* git pull --quiet

* fix logic error in workaround

* fix missing bracket

* Suppress output of mkdir

* Replace MSBuild with Ninja

* Suppress output of 7z

* Add architecture flags for Clang

* Drop workaround for lld-link

* 7-zip Overwrite and Alternative output suppression without suppressing errors

Replaces 3c1c0794dd

* AppVeyor setup and CMake before build

* reorder compiler configuration

* remove unnecessary

* remove -fno-strict-aliasing

* remove -Wsign-conversion, since before v4.0 part of -Wconversion

* -Wctor-dtor-privacy is GCC only

* remove -Woverloaded-virtual part of -Wmost, part of -Wall

* add -Wmissing-noreturn

* remove the pragmas for -Wunused-member-function

* Re-add MSBuild generator on AppVeyor

* Print CMake commands

* Add MSBuild toolset selection

* Separate Architecture setting

* clang-cl: add -Weverything

* clang-cl -Wno-c++98-compat

* clang-cl -Wno-c++98-compat-pedantic

* clang-cl -Wno-missing-prototypes

* clang-cl C++14 -Wno-unused-member-function

* clang-cl -Wundef __GNUC__

* clang++: add -Weverything

* clang++ -Wno-c++98-compat

* clang++ -Wno-c++98-compat-pedantic

* clang++ -Wno-missing-prototypes

* clang++ -Wno-weak-vtables

* clang++ C++14 -Wno-unused-member-function

* clang++ fix -Wundef _MSC_VER

* clang++ -Wno-padded

* clang++ solve -Wdeprecated

* Add AppleClang compiler target
Since CMake v3.0 use of Clang for both is deprecated

* clang++ v5.0 C++17 -Wno-undefined-func-template

* Add VS2015 + LLVM/clang-cl to AppVeyor

* Do not disable constexpr when compiling with clang-cl on Windows

* Clean-up clang-only warnings (now under -Weverything)

* Revert "Fix clang warning -Winvalid-noreturn on Windows"

This reverts commit 2238c4760e.

* Suppress -Winvalid-noreturn for the MS STL noexception workaround

* CMake: put preprocessor definition in target_compile_definitions

* Solve compiler warning C4668: __GNUC__ not defined
2019-01-15 10:27:34 -08:00
Stefan Dinkelacker
2e4d0d7e22 Fix spelling of library name (#747) 2018-11-28 11:53:38 -08:00
Michal Kaptur
c4c1f6395a Cmake version updated in README (#669) 2018-05-01 12:00:37 -07:00
Neil MacIntosh
d25969dbdf
Updated README to record another platform report.
As per #644.
2018-04-18 21:12:13 -07:00
Neil MacIntosh
64a7dae4c6
Updated README with another build report. 2018-01-23 13:52:05 -08:00