Compare commits
9 Commits
master
...
feature/gu
Author | SHA1 | Date | |
---|---|---|---|
![]() |
aec429f18b | ||
![]() |
0444172c71 | ||
![]() |
ed2473492f | ||
![]() |
de1256c3be | ||
![]() |
24e43ff68e | ||
![]() |
05fda5caa4 | ||
![]() |
7261cda9d0 | ||
![]() |
10c50cb64f | ||
![]() |
ab7810aee1 |
@ -6,15 +6,9 @@ root = true
|
||||
|
||||
# Add a blank newline to the end of every file after saving
|
||||
# Trim trailing whitespace
|
||||
# Adjust character set
|
||||
[*]
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
charset = utf-8
|
||||
|
||||
# Use tabs in source
|
||||
[*.{cpp,c,hpp,h}]
|
||||
indent_style = tab
|
||||
|
||||
# YAML does not support hard tabs.
|
||||
[*.{yml,yaml}]
|
||||
|
@ -1,9 +0,0 @@
|
||||
# Massive EOL normalization & 'svn:eol-style native' flag setting for all txt/conf/h/c files.
|
||||
# https://github.com/rathena/rathena/commit/637ae9a4dcde0d5885a18841d2f3875e06893c30
|
||||
637ae9a4dcde0d5885a18841d2f3875e06893c30
|
||||
# Applied AStyle code formating as discussed on tid:74602.
|
||||
# https://github.com/rathena/rathena/commit/a7c32653f70bd420bdf5a621acdf3aea5c6e6002
|
||||
a7c32653f70bd420bdf5a621acdf3aea5c6e6002
|
||||
# Undid r16968: SVN Replaced with source:/trunk/src/@16966 (tid:74924).
|
||||
# https://github.com/rathena/rathena/commit/a2bdc47dafb32f6d18ed350d8bbe79b8f679a049
|
||||
a2bdc47dafb32f6d18ed350d8bbe79b8f679a049
|
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -1,6 +1,6 @@
|
||||
* text=auto
|
||||
*.cpp diff=cpp
|
||||
*.yml diff text eol=lf
|
||||
*.yml diff
|
||||
*.sln merge=union
|
||||
*.vcproj merge=union
|
||||
*.vcxproj merge=union
|
||||
@ -12,4 +12,3 @@ configure.in text eol=lf
|
||||
Makefile text eol=lf
|
||||
Makefile.in text eol=lf
|
||||
*.sh text eol=lf
|
||||
*.sql text eol=lf
|
||||
|
8
.github/CONTRIBUTING.md
vendored
8
.github/CONTRIBUTING.md
vendored
@ -7,7 +7,6 @@ Table of Contents
|
||||
* [Reporting Bugs](#reporting-bugs)
|
||||
* [Suggesting Enhancements](#suggesting-enhancements)
|
||||
* [Issue Labels](#issue-labels)
|
||||
* [Local Development Environment](#local-development-environment)
|
||||
* [Become a Team Member](#become-a-team-member)
|
||||
|
||||
Reporting Bugs
|
||||
@ -162,13 +161,6 @@ For the most part you as a user will have no reason to worry about the **Milesto
|
||||
[search-rathena-label-typemaintenance]: https://github.com/rathena/rathena/issues?q=is%3Aissue+is%3Aopen+label%3Atype%3Amaintenance
|
||||
[search-rathena-label-typequestion]: https://github.com/rathena/rathena/issues?q=is%3Aissue+is%3Aopen+label%3Atype%3Aquestion
|
||||
|
||||
Local Development Environment
|
||||
-----------------------------
|
||||
|
||||
Developers can get up and running quickly with a Dockerized development environment that installs all dependencies needed to run and develop on rAthena.
|
||||
See [Docker documentation](https://github.com/rathena/rathena/blob/master/tools/docker/README.md) for details
|
||||
|
||||
|
||||
Become a Team Member
|
||||
--------------------
|
||||
|
||||
|
29
.github/ISSUE_TEMPLATE.md
vendored
Normal file
29
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
<!-- NOTE: Anything within these brackets will be hidden on the preview of the Issue. -->
|
||||
|
||||
* **rAthena Hash**:
|
||||
|
||||
<!-- Please specify the rAthena [GitHub hash](https://help.github.com/articles/autolinked-references-and-urls/#commit-shas) on which you encountered this issue.
|
||||
How to get your GitHub Hash:
|
||||
1. cd your/rAthena/directory/
|
||||
2. git rev-parse --short HEAD
|
||||
3. Copy the resulting hash.
|
||||
-->
|
||||
|
||||
* **Client Date**:
|
||||
|
||||
<!-- Please specify the client date you used. -->
|
||||
|
||||
* **Server Mode**:
|
||||
|
||||
<!-- Which mode does your server use: Pre-Renewal or Renewal? -->
|
||||
|
||||
* **Description of Issue**:
|
||||
* Result: <!-- Describe the issue that you experienced in detail. -->
|
||||
* Expected Result: <!-- Describe what you would expect to happen in detail. -->
|
||||
* How to Reproduce: <!-- If you have not stated in the description of the result already, please give us a short guide how we can reproduce your issue. -->
|
||||
* Official Information:<!-- If possible, provide information from official servers (kRO or other sources) which prove that the result is wrong. Please take into account that iRO (especially iRO Wiki) is not always the same as kRO. -->
|
||||
<!-- * _NOTE: Make sure you quote ``` `@atcommands` ``` just like this so that you do not tag uninvolved GitHub users!_ -->
|
||||
|
||||
* **Modifications that may affect results**:
|
||||
<!-- * Please provide any information that could influence the expected result. -->
|
||||
<!-- * This can be either configurations you changed, database values you changed, or even external source modifications. -->
|
81
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
81
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -1,81 +0,0 @@
|
||||
name: Bug Report
|
||||
description: Create an Issue that details broken or unexpected behaviour
|
||||
labels: ["type:bug"]
|
||||
body:
|
||||
- type: input
|
||||
id: hash
|
||||
attributes:
|
||||
label: rAthena Hash
|
||||
description: |
|
||||
Please specify the rAthena [GitHub hash](https://help.github.com/articles/autolinked-references-and-urls/#commit-shas) on which you encountered this issue.
|
||||
One way to get your hash is to type `git rev-parse --short HEAD` on your console.
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: date
|
||||
attributes:
|
||||
label: Client Date
|
||||
description: Specify the client date you are using when this Issue occured.
|
||||
placeholder: YYYY-MM-DD
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: mode
|
||||
attributes:
|
||||
label: Server Mode
|
||||
description: Specify the server-mode you are using when this Issue occured.
|
||||
multiple: true
|
||||
options:
|
||||
- Pre-Renewal
|
||||
- Renewal
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: result
|
||||
attributes:
|
||||
label: Result
|
||||
description: Describe the issue that you experienced in detail.
|
||||
placeholder: |
|
||||
1. In this environment...
|
||||
2. With this config...
|
||||
3. Trigger event '...'
|
||||
4. See error...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant Log Output
|
||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||
render: Shell
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: Expected Result
|
||||
description: Describe what you would expect to happen in detail.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: howto
|
||||
attributes:
|
||||
label: How to Reproduce
|
||||
description: If you have not stated in the description of the result already, please give us a short guide how we can reproduce your issue.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: info
|
||||
attributes:
|
||||
label: Official Information
|
||||
description: If possible, provide information from official servers (kRO or other sources) which prove that the result is wrong. Please take into account that iRO (especially iRO Wiki) is not always the same as kRO.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: modifications
|
||||
attributes:
|
||||
label: Modifications that may affect results
|
||||
description: |
|
||||
If you are using any modifications, especially in /src/, you must type them here.
|
||||
Even the smallest changes can cause things to break. We need to know what you have customized.
|
||||
This can be either configurations you changed, database values you changed, or even external source modifications.
|
8
.github/ISSUE_TEMPLATE/config.yml
vendored
8
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,8 +0,0 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: rAthena Community Support
|
||||
url: https://rathena.org/board/forum/3-support-releases/
|
||||
about: Please ask and answer questions here in our forum.
|
||||
- name: rAthena Discord
|
||||
url: https://rathena.org/board/discord/
|
||||
about: Chat with us in the Discord support channel.
|
32
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
32
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -1,32 +0,0 @@
|
||||
name: Feature Request
|
||||
description: Suggest an idea for this project
|
||||
labels: ["type:enhancement"]
|
||||
body:
|
||||
- type: dropdown
|
||||
id: missing
|
||||
attributes:
|
||||
label: Is your request related to a missing official feature?
|
||||
options:
|
||||
- "Yes"
|
||||
- "No"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: Describe the solution you'd like
|
||||
description: Provide a clear and concise description of what you want to happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: Describe alternatives you've considered
|
||||
description: Let us know about other solutions you've tried or researched.
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: |
|
||||
Is there anything else you can add about the proposal?
|
||||
You might want to link to related issues here if you haven't already.
|
92
.github/workflows/analysis_codeql.yml
vendored
92
.github/workflows/analysis_codeql.yml
vendored
@ -1,92 +0,0 @@
|
||||
name: Analyse servers with CodeQL
|
||||
# analysis_codeql.yml
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
# Always trigger all Github Actions if an action or something CI related was changed
|
||||
- '.github/workflows/**'
|
||||
- 'tools/ci/**'
|
||||
# This workflow should run when a file in a source directory has been modified.
|
||||
- 'src/**'
|
||||
- '3rdparty/**'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
|
||||
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
|
||||
if: "!contains(github.event.head_commit.message, 'ci-skip')"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# The ubuntu-latest label currently points to ubuntu-20.04.
|
||||
# Available: ubuntu-22.04, ubuntu-20.04
|
||||
os: [ubuntu-latest]
|
||||
# Older versions of GCC are not available via unaltered aptitude repo lists.
|
||||
gcc: ['10']
|
||||
# We run build checks for both Renewal and PRE-Renewal
|
||||
mode: ['PRE','RE']
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||
languages: cpp
|
||||
# Trigger security and quality findings
|
||||
# https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# TODO: Resolve the issues and then enable it again
|
||||
#queries: +security-and-quality
|
||||
|
||||
# A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
|
||||
- name: Variable Parsing - PRE
|
||||
if: ${{ matrix.mode == 'PRE' }}
|
||||
run: |
|
||||
echo "PRERE=yes" >> $GITHUB_ENV
|
||||
- name: Variable Parsing - RE
|
||||
if: ${{ matrix.mode == 'RE' }}
|
||||
run: |
|
||||
echo "PRERE=no" >> $GITHUB_ENV
|
||||
|
||||
- name: Update & Install packages
|
||||
# Ubuntu runners already have most of the packages rAthena requires to build.
|
||||
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
#- name: Autobuild
|
||||
# uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ?? If the Autobuild fails above, remove it and uncomment the following
|
||||
# three lines and modify them (or add more) to build your code if your
|
||||
# project uses a compiled language
|
||||
- name: Command - configure
|
||||
env:
|
||||
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes'
|
||||
run: ./configure $CONFIGURE_FLAGS
|
||||
|
||||
- name: Command - make clean
|
||||
run: make clean
|
||||
|
||||
- name: Command - make server
|
||||
run: make server
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
54
.github/workflows/build_servers_clang.yml
vendored
54
.github/workflows/build_servers_clang.yml
vendored
@ -1,54 +0,0 @@
|
||||
name: Build servers with Clang
|
||||
# build_servers_clang.yml
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
# Always trigger all Github Actions if an action or something CI related was changed
|
||||
- '.github/workflows/**'
|
||||
- 'tools/ci/**'
|
||||
# This workflow should run when a file in a source directory has been modified.
|
||||
- 'src/**'
|
||||
- '3rdparty/**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
|
||||
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
|
||||
if: "!contains(github.event.head_commit.message, 'ci-skip')"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
# The ubuntu-latest label currently points to ubuntu-22.04.
|
||||
# Available: ubuntu-22.04, ubuntu-20.04
|
||||
os: [ubuntu-20.04]
|
||||
# Version list can be found on https://github.com/marketplace/actions/install-clang
|
||||
clang: ['6.0', '7', '8', '9', '10', '11'] #, '12', '13']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Clang
|
||||
uses: egor-tensin/setup-clang@v1
|
||||
with:
|
||||
version: ${{ matrix.clang }}
|
||||
platform: x64
|
||||
|
||||
- name: Command - configure
|
||||
env:
|
||||
CONFIGURE_FLAGS: 'CC=clang-${{ matrix.clang }} CXX=clang++-${{ matrix.clang }} --enable-buildbot=yes'
|
||||
run: ./configure $CONFIGURE_FLAGS
|
||||
|
||||
- name: Command - make clean
|
||||
run: make clean
|
||||
|
||||
- name: Command - make all
|
||||
run: make all
|
53
.github/workflows/build_servers_cmake.yml
vendored
53
.github/workflows/build_servers_cmake.yml
vendored
@ -1,53 +0,0 @@
|
||||
name: Build servers with CMake
|
||||
# build_servers_cmake.yml
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
# Always trigger all Github Actions if an action or something CI related was changed
|
||||
- '.github/workflows/**'
|
||||
- 'tools/ci/**'
|
||||
# This workflow should run when a file in a source directory has been modified.
|
||||
- 'src/**'
|
||||
- '3rdparty/**'
|
||||
# This workflow should run whenever a CMake related file has been modified
|
||||
- '**/CMakeLists.txt'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
|
||||
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
|
||||
if: "!contains(github.event.head_commit.message, 'ci-skip')"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
# The ubuntu-latest label currently points to ubuntu-22.04.
|
||||
# Available: ubuntu-22.04, ubuntu-20.04
|
||||
os: [ubuntu-latest]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# Install latest CMake.
|
||||
- uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Create build directory
|
||||
run: mkdir cbuild
|
||||
|
||||
- name: Create Unix Makefiles
|
||||
run: |
|
||||
cd cbuild
|
||||
cmake -G "Unix Makefiles" ..
|
||||
|
||||
- name: Command - make
|
||||
run: |
|
||||
cd cbuild
|
||||
make
|
61
.github/workflows/build_servers_gcc.yml
vendored
61
.github/workflows/build_servers_gcc.yml
vendored
@ -1,61 +0,0 @@
|
||||
name: Build servers with GCC
|
||||
# build_servers_gcc.yml
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
# Always trigger all Github Actions if an action or something CI related was changed
|
||||
- '.github/workflows/**'
|
||||
- 'tools/ci/**'
|
||||
# This workflow should run when a file in a source directory has been modified.
|
||||
- 'src/**'
|
||||
- '3rdparty/**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
|
||||
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
|
||||
if: "!contains(github.event.head_commit.message, 'ci-skip')"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
# The ubuntu-latest label currently points to ubuntu-22.04.
|
||||
# Available: ubuntu-22.04, ubuntu-20.04
|
||||
os: [ubuntu-latest]
|
||||
# Older versions of GCC are not available via unaltered aptitude repo lists.
|
||||
gcc: ['9', '10', '11', '12']
|
||||
# GCC 13 was removed from 22.04, include it as a separate job
|
||||
include:
|
||||
- os: ubuntu-24.04
|
||||
gcc: 13
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Update & Install packages
|
||||
# Ubuntu runners already have most of the packages rAthena requires to build.
|
||||
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
|
||||
|
||||
- name: Command - configure
|
||||
env:
|
||||
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }}'
|
||||
# -Werror: to treat all warnings as errors
|
||||
# -Wno-error=builtin-declaration-mismatch: otherwise ./configure checks fail
|
||||
run: ./configure $CONFIGURE_FLAGS --enable-buildbot=yes CXXFLAGS='-Werror -Wno-error=builtin-declaration-mismatch'
|
||||
|
||||
- name: Command - make clean
|
||||
run: make clean
|
||||
|
||||
- name: Command - make all
|
||||
run: make all
|
82
.github/workflows/build_servers_modes.yml
vendored
82
.github/workflows/build_servers_modes.yml
vendored
@ -1,82 +0,0 @@
|
||||
name: Build servers in Pre-Renewal and Renewal
|
||||
# build_servers_modes.yml
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
# Always trigger all Github Actions if an action or something CI related was changed
|
||||
- '.github/workflows/**'
|
||||
- 'tools/ci/**'
|
||||
# This workflow should run when a file in a source directory has been modified.
|
||||
- 'src/**'
|
||||
- '3rdparty/**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
|
||||
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
|
||||
if: "!contains(github.event.head_commit.message, 'ci-skip')"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
# The ubuntu-latest label currently points to ubuntu-22.04.
|
||||
# Available: ubuntu-22.04, ubuntu-20.04
|
||||
os: [ubuntu-latest]
|
||||
# Older versions of GCC are not available via unaltered aptitude repo lists.
|
||||
gcc: ['11']
|
||||
# We run build checks for both Renewal and PRE-Renewal
|
||||
mode: ['PRE','RE']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
|
||||
- name: Variable Parsing - PRE
|
||||
if: ${{ matrix.mode == 'PRE' }}
|
||||
run: |
|
||||
echo "PRERE=yes" >> $GITHUB_ENV
|
||||
- name: Variable Parsing - RE
|
||||
if: ${{ matrix.mode == 'RE' }}
|
||||
run: |
|
||||
echo "PRERE=no" >> $GITHUB_ENV
|
||||
|
||||
- name: Update & Install packages
|
||||
# Ubuntu runners already have most of the packages rAthena requires to build.
|
||||
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
|
||||
|
||||
- name: Start MySQL
|
||||
run: sudo systemctl start mysql.service
|
||||
|
||||
- name: Setup Database and import table data
|
||||
run: ./tools/ci/sql.sh
|
||||
|
||||
- name: Command - configure
|
||||
env:
|
||||
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes'
|
||||
run: ./configure $CONFIGURE_FLAGS
|
||||
|
||||
- name: Command - make clean
|
||||
run: make clean
|
||||
|
||||
- name: Command - make server
|
||||
run: make server
|
||||
|
||||
- name: Run Once - login-server
|
||||
run: ./login-server --run-once
|
||||
|
||||
- name: Run Once - char-server
|
||||
run: ./char-server --run-once
|
||||
|
||||
- name: Run Once - map-server
|
||||
run: ./map-server --run-once
|
48
.github/workflows/build_servers_msbuild.yml
vendored
48
.github/workflows/build_servers_msbuild.yml
vendored
@ -1,48 +0,0 @@
|
||||
name: Build servers with MSVS
|
||||
# build_servers_msbuild.yml
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
# Always trigger all Github Actions if an action or something CI related was changed
|
||||
- '.github/workflows/**'
|
||||
- 'tools/ci/**'
|
||||
# This workflow should run when a file in a source directory has been modified.
|
||||
- 'src/**'
|
||||
- '3rdparty/**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
|
||||
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
|
||||
if: "!contains(github.event.head_commit.message, 'ci-skip')"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
# The windows-latest label currently points to windows-2019.
|
||||
# Available: windows-2016, windows-2019 and windows-2022
|
||||
os: [windows-latest]
|
||||
# We run build checks for both Renewal and PRE-Renewal
|
||||
mode: ['PRE', 'RE']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
|
||||
- name: Build solution in Debug
|
||||
if: ${{ matrix.mode == 'PRE' }}
|
||||
run: msbuild rAthena.sln -t:rebuild -property:Configuration=Debug /p:DefineConstants="BUILDBOT%3BPRERE" /warnaserror
|
||||
|
||||
- name: Build solution in Debug
|
||||
if: ${{ matrix.mode == 'RE' }}
|
||||
run: msbuild rAthena.sln -t:rebuild -property:Configuration=Debug /p:DefineConstants="BUILDBOT" /warnaserror
|
@ -1,75 +0,0 @@
|
||||
name: Build servers with different packet versions
|
||||
# build_servers_packetversions.yml
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
# Always trigger all Github Actions if an action or something CI related was changed
|
||||
- '.github/workflows/**'
|
||||
- 'tools/ci/**'
|
||||
# This workflow should run when a file in a source directory has been modified.
|
||||
- 'src/**'
|
||||
- '3rdparty/**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
|
||||
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
|
||||
if: "!contains(github.event.head_commit.message, 'ci-skip')"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
# The ubuntu-latest label currently points to ubuntu-22.04.
|
||||
# Available: ubuntu-22.04, ubuntu-20.04
|
||||
os: [ubuntu-latest]
|
||||
# Older versions of GCC are not available via unaltered aptitude repo lists.
|
||||
gcc: ['11']
|
||||
# We run build checks for both Renewal and PRE-Renewal
|
||||
mode: ['PRE','RE']
|
||||
# Check build success for different packet-versions
|
||||
packetver: ['20211103', '20200902', '20200401', '20180620', '20151104']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
|
||||
- name: Variable Parsing - PRE
|
||||
if: ${{ matrix.mode == 'PRE' }}
|
||||
run: |
|
||||
echo "PRERE=yes" >> $GITHUB_ENV
|
||||
- name: Variable Parsing - RE
|
||||
if: ${{ matrix.mode == 'RE' }}
|
||||
run: |
|
||||
echo "PRERE=no" >> $GITHUB_ENV
|
||||
|
||||
- name: Update & Install packages
|
||||
# Ubuntu runners already have most of the packages rAthena requires to build.
|
||||
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
|
||||
|
||||
- name: Start MySQL
|
||||
run: sudo systemctl start mysql.service
|
||||
|
||||
- name: Setup Database and import table data
|
||||
run: ./tools/ci/sql.sh
|
||||
|
||||
- name: Command - configure
|
||||
env:
|
||||
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-packetver=${{ matrix.packetver }} --enable-buildbot=yes'
|
||||
run: ./configure $CONFIGURE_FLAGS
|
||||
|
||||
- name: Command - make clean
|
||||
run: make clean
|
||||
|
||||
- name: Command - make all
|
||||
run: make all
|
82
.github/workflows/build_servers_vip.yml
vendored
82
.github/workflows/build_servers_vip.yml
vendored
@ -1,82 +0,0 @@
|
||||
name: Build servers in VIP mode
|
||||
# build_servers_vip.yml
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
# Always trigger all Github Actions if an action or something CI related was changed
|
||||
- '.github/workflows/**'
|
||||
- 'tools/ci/**'
|
||||
# This workflow should run when a file in a source directory has been modified.
|
||||
- 'src/**'
|
||||
- '3rdparty/**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
|
||||
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
|
||||
if: "!contains(github.event.head_commit.message, 'ci-skip')"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
# The ubuntu-latest label currently points to ubuntu-22.04.
|
||||
# Available: ubuntu-22.04, ubuntu-20.04
|
||||
os: [ubuntu-latest]
|
||||
# Older versions of GCC are not available via unaltered aptitude repo lists.
|
||||
gcc: ['11']
|
||||
# We run build checks for both Renewal and PRE-Renewal
|
||||
mode: ['PRE', 'RE']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
|
||||
- name: Variable Parsing - PRE
|
||||
if: ${{ matrix.mode == 'PRE' }}
|
||||
run: |
|
||||
echo "PRERE=yes" >> $GITHUB_ENV
|
||||
- name: Variable Parsing - RE
|
||||
if: ${{ matrix.mode == 'RE' }}
|
||||
run: |
|
||||
echo "PRERE=no" >> $GITHUB_ENV
|
||||
|
||||
- name: Update & Install packages
|
||||
# Ubuntu runners already have most of the packages rAthena requires to build.
|
||||
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
|
||||
|
||||
- name: Start MySQL
|
||||
run: sudo systemctl start mysql.service
|
||||
|
||||
- name: Setup Database and import table data
|
||||
run: ./tools/ci/sql.sh
|
||||
|
||||
- name: Command - configure
|
||||
env:
|
||||
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes --enable-vip=yes'
|
||||
run: ./configure $CONFIGURE_FLAGS
|
||||
|
||||
- name: Command - make clean
|
||||
run: make clean
|
||||
|
||||
- name: Command - make server
|
||||
run: make server
|
||||
|
||||
- name: Run Once - login-server
|
||||
run: ./login-server --run-once
|
||||
|
||||
- name: Run Once - char-server
|
||||
run: ./char-server --run-once
|
||||
|
||||
- name: Run Once - map-server
|
||||
run: ./map-server --run-once
|
87
.github/workflows/npc_db_validation.yml
vendored
87
.github/workflows/npc_db_validation.yml
vendored
@ -1,87 +0,0 @@
|
||||
name: Validate NPC Scripts and DB Changes
|
||||
# npc_db_validation.yml
|
||||
|
||||
# For NPC and DB validation we only need two builds: one of Renewal and one for Pre-Renewal checks.
|
||||
# NPC scripts and database files are not platform dependent, so we can achieve this validation using only a simple linux setup.
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
# Always trigger all Github Actions if an action or something CI related was changed
|
||||
- '.github/workflows/**'
|
||||
- 'tools/ci/**'
|
||||
# This workflow should run when a file in either the db/ or npc/ directory has been modified.
|
||||
- 'db/**'
|
||||
- 'npc/**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Github Actions checks for '[ci skip]', '[skip ci]', '[no ci]', '[skip actions]', or '[actions skip]' but not a hyphenated version.
|
||||
# It's a catch-all incase a Pull Request has been opened and someone is on auto-pilot.
|
||||
if: "!contains(github.event.head_commit.message, 'ci-skip')"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
# The ubuntu-latest label currently points to ubuntu-22.04.
|
||||
# Available: ubuntu-22.04, ubuntu-20.04
|
||||
os: [ubuntu-latest]
|
||||
# Only a single version of GCC is required for validating NPC scripts and database changes.
|
||||
gcc: ['11']
|
||||
# We run build checks for both Renewal and PRE-Renewal
|
||||
mode: ['PRE', 'RE']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
|
||||
- name: Variable Parsing - PRE
|
||||
if: ${{ matrix.mode == 'PRE' }}
|
||||
run: |
|
||||
echo "PRERE=yes" >> $GITHUB_ENV
|
||||
- name: Variable Parsing - RE
|
||||
if: ${{ matrix.mode == 'RE' }}
|
||||
run: |
|
||||
echo "PRERE=no" >> $GITHUB_ENV
|
||||
|
||||
- name: Update & Install packages
|
||||
# Ubuntu runners already have most of the packages rAthena requires to build.
|
||||
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
|
||||
|
||||
- name: Start MySQL
|
||||
run: sudo systemctl start mysql.service
|
||||
|
||||
- name: Setup Database and import table data
|
||||
run: ./tools/ci/sql.sh
|
||||
|
||||
- name: Command - configure
|
||||
env:
|
||||
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes'
|
||||
run: ./configure $CONFIGURE_FLAGS
|
||||
|
||||
# npc.sh enables all NPC scripts in the custom and test folders.
|
||||
- name: Enable All NPCs for Testing
|
||||
run: ./tools/ci/npc.sh
|
||||
|
||||
- name: Command - make clean
|
||||
run: make clean
|
||||
|
||||
# Create import directories
|
||||
- name: Command - make import
|
||||
run: make import
|
||||
|
||||
- name: Command - make map
|
||||
run: make map
|
||||
|
||||
- name: Run Once - map-server
|
||||
run: ./map-server --run-once
|
31
.gitignore
vendored
31
.gitignore
vendored
@ -1,7 +1,7 @@
|
||||
autom4te.cache/
|
||||
|
||||
/autom4te.cache/output.0
|
||||
/autom4te.cache/requests
|
||||
/autom4te.cache/traces.0
|
||||
#Global
|
||||
.vscode
|
||||
.Apple*
|
||||
.DS_Store
|
||||
.clang_complete
|
||||
@ -39,28 +39,17 @@ Thumbs.db
|
||||
/Makefile
|
||||
/Makefile.cache
|
||||
/map-server
|
||||
/map-server-generator
|
||||
/mapcache
|
||||
/nbproject
|
||||
/web-server
|
||||
/yaml2sql
|
||||
/yamlupgrade
|
||||
|
||||
# /3rdparty/libconfig/
|
||||
/3rdparty/libconfig/Makefile
|
||||
/3rdparty/libconfig/*.o
|
||||
/3rdparty/libconfig/obj
|
||||
|
||||
# /3rdparty/rapidyaml/
|
||||
/3rdparty/rapidyaml/Makefile
|
||||
|
||||
# /3rdparty/yaml-cpp/
|
||||
/3rdparty/yaml-cpp/Makefile
|
||||
|
||||
# /3rdparty/httplib/
|
||||
/3rdparty/httplib/Makefile
|
||||
/3rdparty/httplib/obj
|
||||
|
||||
# /db/
|
||||
/db/import
|
||||
|
||||
@ -97,10 +86,6 @@ Thumbs.db
|
||||
/src/map/obj_sql
|
||||
/src/map/pcre.hpp
|
||||
|
||||
# /src/web
|
||||
/src/web/Makefile
|
||||
/src/web/obj
|
||||
|
||||
# /src/tool/
|
||||
/src/tool/Makefile
|
||||
/src/tool/obj_all
|
||||
@ -134,18 +119,8 @@ Thumbs.db
|
||||
/mapserv.bat
|
||||
/runserver.bat
|
||||
/serv.bat
|
||||
/webserv.bat
|
||||
/yaml2sql.bat
|
||||
/yamlupgrade.bat
|
||||
/navigenerator.bat
|
||||
|
||||
# dlls
|
||||
/libmysql.dll
|
||||
/pcre8.dll
|
||||
/zlib.dll
|
||||
|
||||
# CMakeFiles
|
||||
/CMakeFiles/
|
||||
|
||||
# generated files
|
||||
generated
|
||||
|
198
.travis.yml
Normal file
198
.travis.yml
Normal file
@ -0,0 +1,198 @@
|
||||
language: cpp
|
||||
dist: trusty
|
||||
sudo: false
|
||||
|
||||
matrix:
|
||||
include:
|
||||
# First check if all our options are good
|
||||
# Renewal without VIP
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-5
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
|
||||
- CONFIGURE_FLAGS="--enable-prere=no --enable-vip=no --enable-buildbot=yes"
|
||||
# Renewal with VIP
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-5
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
|
||||
- CONFIGURE_FLAGS="--enable-prere=yes --enable-vip=no --enable-buildbot=yes"
|
||||
# Pre-Renewal without VIP
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-5
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
|
||||
- CONFIGURE_FLAGS="--enable-prere=no --enable-vip=yes --enable-buildbot=yes"
|
||||
# Pre-Renewal with VIP
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-5
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
|
||||
- CONFIGURE_FLAGS="--enable-prere=yes --enable-vip=yes --enable-buildbot=yes"
|
||||
# After that check all different compilers and compiler versions
|
||||
# GCC
|
||||
# Version 6
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-6
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
|
||||
- CONFIGURE_FLAGS="--enable-prere=no --enable-vip=no --enable-buildbot=yes"
|
||||
# Version 7
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-7
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
|
||||
- CONFIGURE_FLAGS="--enable-prere=no --enable-vip=no --enable-buildbot=yes"
|
||||
# Version 8
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-8
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-8 && CXX=g++-8"
|
||||
- CONFIGURE_FLAGS="--enable-prere=no --enable-vip=no --enable-buildbot=yes"
|
||||
# Clang
|
||||
# Version 3.9
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-3.9
|
||||
packages:
|
||||
- clang-3.9
|
||||
env:
|
||||
- MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
|
||||
- CONFIGURE_FLAGS="--enable-prere=no --enable-vip=no --enable-buildbot=yes"
|
||||
# Version 4
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-4.0
|
||||
packages:
|
||||
- clang-4.0
|
||||
env:
|
||||
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
|
||||
- CONFIGURE_FLAGS="--enable-prere=no --enable-vip=no --enable-buildbot=yes"
|
||||
# Version 5
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-5.0
|
||||
packages:
|
||||
- clang-5.0
|
||||
env:
|
||||
- MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
|
||||
- CONFIGURE_FLAGS="--enable-prere=no --enable-vip=no --enable-buildbot=yes"
|
||||
# LLVM on OSX
|
||||
# - os: osx
|
||||
# osx_image: xcode9.2
|
||||
# install:
|
||||
# - brew update
|
||||
# - brew install mysql
|
||||
# - brew tap homebrew/services
|
||||
# - brew services start mysql
|
||||
## MySQL takes a while to start...
|
||||
# - brew services list
|
||||
# - launchctl list | grep mysql
|
||||
# before_install: false
|
||||
# env:
|
||||
# - CONFIGURE_FLAGS="--enable-prere=no --enable-vip=no --enable-buildbot=yes --enable-lto=no"
|
||||
# script:
|
||||
# - ./configure $CONFIGURE_FLAGS
|
||||
## MacOS default MySQL configuration does not like our card seller(only full group by)
|
||||
# - ./tools/ci/npc.sh
|
||||
# - make clean
|
||||
# - make all
|
||||
# - ./login-server --run-once
|
||||
# - ./char-server --run-once
|
||||
# - ./map-server --run-once
|
||||
# CMake
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-5
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
|
||||
script:
|
||||
- mkdir cbuild
|
||||
- cd cbuild
|
||||
- cmake -G "Unix Makefiles" ..
|
||||
- make || travis_terminate 1
|
||||
# MariaDB
|
||||
- os: linux
|
||||
addons:
|
||||
mariadb: '10.0'
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-5
|
||||
- libmariadbclient-dev
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
|
||||
- CONFIGURE_FLAGS="--enable-prere=no --enable-vip=no --enable-buildbot=yes"
|
||||
|
||||
before_install:
|
||||
- eval "${MATRIX_EVAL}"
|
||||
|
||||
before_script:
|
||||
- uname -a
|
||||
- ./tools/ci/sql.sh
|
||||
|
||||
script:
|
||||
- ./configure $CONFIGURE_FLAGS || travis_terminate 1
|
||||
- ./tools/ci/npc.sh
|
||||
- make clean || travis_terminate 1
|
||||
- make all || travis_terminate 1
|
||||
- ./login-server --run-once
|
||||
- ./char-server --run-once
|
||||
- ./map-server --run-once
|
||||
|
||||
env:
|
||||
global:
|
||||
- DB_ROOT="root"
|
||||
- DB_HOST="127.0.0.1"
|
||||
- DB_NAME="ragnarok"
|
||||
- DB_USER="ragnarok"
|
||||
- DB_PASS="ragnarok"
|
||||
|
||||
notifications:
|
||||
email: false
|
5
3rdparty/CMakeLists.txt
vendored
5
3rdparty/CMakeLists.txt
vendored
@ -47,11 +47,8 @@ macro( CONFIGURE_WITH_LOCAL_OR_SYSTEM name )
|
||||
endmacro( CONFIGURE_WITH_LOCAL_OR_SYSTEM )
|
||||
|
||||
|
||||
add_subdirectory( httplib )
|
||||
add_subdirectory( json )
|
||||
add_subdirectory( libconfig )
|
||||
add_subdirectory( mysql )
|
||||
add_subdirectory( pcre )
|
||||
add_subdirectory( rapidyaml )
|
||||
add_subdirectory( yaml-cpp )
|
||||
add_subdirectory( zlib )
|
||||
add_subdirectory( yaml-cpp )
|
||||
|
3
3rdparty/README.txt
vendored
3
3rdparty/README.txt
vendored
@ -1,10 +1,7 @@
|
||||
This folder contains everything related to 3rdparty code or tools.
|
||||
|
||||
cmake - scripts for the cmake build system (http://www.cmake.org)
|
||||
httplib - library for http web service (https://github.com/yhirose/cpp-httplib/commit/a9cf09795170a72372cbeb3feef3851b859c0e33)
|
||||
libconfig - library for processing structured configuration files (http://www.hyperrealm.com/libconfig/)
|
||||
mysql - library for MySQL Community Server (http://www.mysql.com)
|
||||
pcre - library for Perl Compatible Regular Expressions (http://www.pcre.org)
|
||||
zlib - library for DEFLATE lossless compression algorithm (http://www.zlib.net)
|
||||
json - library for nlohmann json (https://github.com/nlohmann/json/tree/4b2c8ce6bcfe7f39f2bb9e680c1e7a4d67c2dd48)
|
||||
yaml-cpp - library for yaml (https://github.com/jbeder/yaml-cpp/tree/0e6e28d1a38224fc8172fae0109ea7f673c096db)
|
||||
|
38
3rdparty/httplib/CMakeLists.txt
vendored
38
3rdparty/httplib/CMakeLists.txt
vendored
@ -1,38 +0,0 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
if ( NOT ENABLE_WEB_SERVER )
|
||||
return()
|
||||
endif( NOT ENABLE_WEB_SERVER )
|
||||
|
||||
SET (this_target httplib)
|
||||
PROJECT(${this_target})
|
||||
|
||||
find_path ( HTTPLIB_INCLUDE_DIRS "httplib.h"
|
||||
PATHS "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
NO_DEFAULT_PATH )
|
||||
|
||||
find_path ( HTTPLIB_SOURCE_DIR "httplib.cc"
|
||||
PATHS "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
NO_DEFAULT_PATH )
|
||||
|
||||
mark_as_advanced( HTTPLIB_INCLUDE_DIRS )
|
||||
mark_as_advanced( HTTPLIB_SOURCE_DIR )
|
||||
|
||||
set ( HTTPLIB_HEADERS
|
||||
"${HTTPLIB_INCLUDE_DIRS}/httplib.h"
|
||||
CACHE INTERNAL "httplib headers" )
|
||||
|
||||
set ( HTTPLIB_SOURCES
|
||||
"${HTTPLIB_SOURCE_DIR}/httplib.cc"
|
||||
CACHE INTERNAL "httplib sources" )
|
||||
|
||||
set ( HTTPLIB_DEFINITIONS
|
||||
"-std=c++11"
|
||||
CACHE INTERNAL "http definitions" )
|
||||
include_directories( ${HTTPLIB_INCLUDE_DIRS} ${HTTPLIB_SOURCE_DIR} )
|
||||
|
||||
ADD_LIBRARY( ${this_target} STATIC ${HTTPLIB_SOURCES} )
|
||||
|
||||
if (NOT WIN32)
|
||||
target_compile_definitions(${this_target} PUBLIC "CPPHTTPLIB_SEND_FLAGS=MSG_NOSIGNAL")
|
||||
endif()
|
43
3rdparty/httplib/Makefile.in
vendored
43
3rdparty/httplib/Makefile.in
vendored
@ -1,43 +0,0 @@
|
||||
|
||||
HTTPLIB_OBJ = $(shell find * -type f -name "*.cc" | sed -e "s/\.cc/\.o/g")
|
||||
HTTPLIB_DIR_OBJ = $(HTTPLIB_OBJ:%=obj/%)
|
||||
HTTPLIB_H = $(shell find * -type f -name "*.h")
|
||||
HTTPLIB_AR = obj/httplib.a
|
||||
|
||||
CXXFLAG =-std=c++11
|
||||
|
||||
HTTPLIB_DEPENDS=httplib
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
#####################################################################
|
||||
.PHONY : all clean help httplib
|
||||
|
||||
all: $(HTTPLIB_DEPENDS)
|
||||
|
||||
clean:
|
||||
@echo " CLEAN httplib"
|
||||
@rm -rf obj *.o
|
||||
|
||||
help:
|
||||
@echo "possible targets are 'all' 'clean' 'help'"
|
||||
@echo "'httplib' - build $(HTTPLIB_AR)
|
||||
@echo "'all' - builds $(HTTPLIB_DIR_OBJ)"
|
||||
@echo "'clean' - deletes $(HTTPLIB_DIR_OBJ)"
|
||||
@echo "'help' - outputs this message"
|
||||
|
||||
#####################################################################
|
||||
|
||||
obj:
|
||||
@echo " MKDIR obj"
|
||||
@mkdir -p obj
|
||||
|
||||
obj/%.o: %.cc $(HTTPLIB_H)
|
||||
@echo " CXX $<"
|
||||
@@CXX@ $(CXXFLAG) @CFLAGS_AR@ @CPPFLAGS@ -DCPPHTTPLIB_SEND_FLAGS=MSG_NOSIGNAL -g -c $(OUTPUT_OPTION) $<
|
||||
|
||||
httplib: obj $(HTTPLIB_DIR_OBJ) $(HTTPLIB_AR)
|
||||
|
||||
$(HTTPLIB_AR): $(HTTPLIB_DIR_OBJ)
|
||||
@echo " AR $@"
|
||||
@@AR@ rcs obj/httplib.a $(HTTPLIB_DIR_OBJ)
|
6482
3rdparty/httplib/httplib.cc
vendored
6482
3rdparty/httplib/httplib.cc
vendored
File diff suppressed because it is too large
Load Diff
1904
3rdparty/httplib/httplib.h
vendored
1904
3rdparty/httplib/httplib.h
vendored
File diff suppressed because it is too large
Load Diff
164
3rdparty/httplib/httplib.vcxproj
vendored
164
3rdparty/httplib/httplib.vcxproj
vendored
@ -1,164 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="httplib.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="httplib.cc" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>libconfig</RootNamespace>
|
||||
<ProjectGuid>{7A1A25BC-2CF7-44B2-8CAF-B4273B510FC6}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(SolutionDir).vs\build\</OutDir>
|
||||
<IntDir>$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(SolutionDir).vs\build\</OutDir>
|
||||
<IntDir>$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(SolutionDir).vs\build\</OutDir>
|
||||
<IntDir>$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(SolutionDir).vs\build\</OutDir>
|
||||
<IntDir>$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
21
3rdparty/httplib/httplib.vcxproj.filters
vendored
21
3rdparty/httplib/httplib.vcxproj.filters
vendored
@ -1,21 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="httplib.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="httplib.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
7
3rdparty/json/CMakeLists.txt
vendored
7
3rdparty/json/CMakeLists.txt
vendored
@ -1,7 +0,0 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set (JSON_INCLUDE_DIRS
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/include"
|
||||
CACHE INTERNAL "json include dir" )
|
||||
|
||||
mark_as_advanced( JSON_INCLUDE_DIRS )
|
21
3rdparty/json/LICENSE.MIT
vendored
21
3rdparty/json/LICENSE.MIT
vendored
@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2013-2022 Niels Lohmann
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
24641
3rdparty/json/include/nlohmann/json.hpp
vendored
24641
3rdparty/json/include/nlohmann/json.hpp
vendored
File diff suppressed because it is too large
Load Diff
177
3rdparty/json/include/nlohmann/json_fwd.hpp
vendored
177
3rdparty/json/include/nlohmann/json_fwd.hpp
vendored
@ -1,177 +0,0 @@
|
||||
// __ _____ _____ _____
|
||||
// __| | __| | | | JSON for Modern C++
|
||||
// | | |__ | | | | | | version 3.11.2
|
||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||
//
|
||||
// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
||||
#define INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
||||
|
||||
#include <cstdint> // int64_t, uint64_t
|
||||
#include <map> // map
|
||||
#include <memory> // allocator
|
||||
#include <string> // string
|
||||
#include <vector> // vector
|
||||
|
||||
// #include <nlohmann/detail/abi_macros.hpp>
|
||||
// __ _____ _____ _____
|
||||
// __| | __| | | | JSON for Modern C++
|
||||
// | | |__ | | | | | | version 3.11.2
|
||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||
//
|
||||
// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
|
||||
|
||||
// This file contains all macro definitions affecting or depending on the ABI
|
||||
|
||||
#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
|
||||
#if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
|
||||
#if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 2
|
||||
#warning "Already included a different version of the library!"
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)
|
||||
#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum)
|
||||
#define NLOHMANN_JSON_VERSION_PATCH 2 // NOLINT(modernize-macro-to-enum)
|
||||
|
||||
#ifndef JSON_DIAGNOSTICS
|
||||
#define JSON_DIAGNOSTICS 0
|
||||
#endif
|
||||
|
||||
#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
|
||||
#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
|
||||
#endif
|
||||
|
||||
#if JSON_DIAGNOSTICS
|
||||
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
|
||||
#else
|
||||
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
|
||||
#endif
|
||||
|
||||
#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
|
||||
#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
|
||||
#else
|
||||
#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
|
||||
#endif
|
||||
|
||||
#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
|
||||
#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
|
||||
#endif
|
||||
|
||||
// Construct the namespace ABI tags component
|
||||
#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b
|
||||
#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \
|
||||
NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
|
||||
|
||||
#define NLOHMANN_JSON_ABI_TAGS \
|
||||
NLOHMANN_JSON_ABI_TAGS_CONCAT( \
|
||||
NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
|
||||
NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)
|
||||
|
||||
// Construct the namespace version component
|
||||
#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
|
||||
_v ## major ## _ ## minor ## _ ## patch
|
||||
#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
|
||||
NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
|
||||
|
||||
#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
|
||||
#define NLOHMANN_JSON_NAMESPACE_VERSION
|
||||
#else
|
||||
#define NLOHMANN_JSON_NAMESPACE_VERSION \
|
||||
NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
|
||||
NLOHMANN_JSON_VERSION_MINOR, \
|
||||
NLOHMANN_JSON_VERSION_PATCH)
|
||||
#endif
|
||||
|
||||
// Combine namespace components
|
||||
#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
|
||||
#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
|
||||
NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
|
||||
|
||||
#ifndef NLOHMANN_JSON_NAMESPACE
|
||||
#define NLOHMANN_JSON_NAMESPACE \
|
||||
nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
|
||||
NLOHMANN_JSON_ABI_TAGS, \
|
||||
NLOHMANN_JSON_NAMESPACE_VERSION)
|
||||
#endif
|
||||
|
||||
#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
|
||||
#define NLOHMANN_JSON_NAMESPACE_BEGIN \
|
||||
namespace nlohmann \
|
||||
{ \
|
||||
inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
|
||||
NLOHMANN_JSON_ABI_TAGS, \
|
||||
NLOHMANN_JSON_NAMESPACE_VERSION) \
|
||||
{
|
||||
#endif
|
||||
|
||||
#ifndef NLOHMANN_JSON_NAMESPACE_END
|
||||
#define NLOHMANN_JSON_NAMESPACE_END \
|
||||
} /* namespace (inline namespace) NOLINT(readability/namespace) */ \
|
||||
} // namespace nlohmann
|
||||
#endif
|
||||
|
||||
|
||||
/*!
|
||||
@brief namespace for Niels Lohmann
|
||||
@see https://github.com/nlohmann
|
||||
@since version 1.0.0
|
||||
*/
|
||||
NLOHMANN_JSON_NAMESPACE_BEGIN
|
||||
|
||||
/*!
|
||||
@brief default JSONSerializer template argument
|
||||
|
||||
This serializer ignores the template arguments and uses ADL
|
||||
([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))
|
||||
for serialization.
|
||||
*/
|
||||
template<typename T = void, typename SFINAE = void>
|
||||
struct adl_serializer;
|
||||
|
||||
/// a class to store JSON values
|
||||
/// @sa https://json.nlohmann.me/api/basic_json/
|
||||
template<template<typename U, typename V, typename... Args> class ObjectType =
|
||||
std::map,
|
||||
template<typename U, typename... Args> class ArrayType = std::vector,
|
||||
class StringType = std::string, class BooleanType = bool,
|
||||
class NumberIntegerType = std::int64_t,
|
||||
class NumberUnsignedType = std::uint64_t,
|
||||
class NumberFloatType = double,
|
||||
template<typename U> class AllocatorType = std::allocator,
|
||||
template<typename T, typename SFINAE = void> class JSONSerializer =
|
||||
adl_serializer,
|
||||
class BinaryType = std::vector<std::uint8_t>, // cppcheck-suppress syntaxError
|
||||
class CustomBaseClass = void>
|
||||
class basic_json;
|
||||
|
||||
/// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document
|
||||
/// @sa https://json.nlohmann.me/api/json_pointer/
|
||||
template<typename RefStringType>
|
||||
class json_pointer;
|
||||
|
||||
/*!
|
||||
@brief default specialization
|
||||
@sa https://json.nlohmann.me/api/json/
|
||||
*/
|
||||
using json = basic_json<>;
|
||||
|
||||
/// @brief a minimal map-like container that preserves insertion order
|
||||
/// @sa https://json.nlohmann.me/api/ordered_map/
|
||||
template<class Key, class T, class IgnoredLess, class Allocator>
|
||||
struct ordered_map;
|
||||
|
||||
/// @brief specialization that maintains the insertion order of object keys
|
||||
/// @sa https://json.nlohmann.me/api/ordered_json/
|
||||
using ordered_json = basic_json<nlohmann::ordered_map>;
|
||||
|
||||
NLOHMANN_JSON_NAMESPACE_END
|
||||
|
||||
#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
||||
|
4
3rdparty/libconfig/libconfig.vcxproj
vendored
4
3rdparty/libconfig/libconfig.vcxproj
vendored
@ -108,7 +108,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -123,7 +122,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -140,7 +138,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -159,7 +156,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
|
9
3rdparty/libconfig/scanner.c
vendored
9
3rdparty/libconfig/scanner.c
vendored
@ -2,11 +2,6 @@
|
||||
|
||||
#line 4 "scanner.c"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable : 4267 )
|
||||
#endif
|
||||
|
||||
#define YY_INT_ALIGNED short int
|
||||
|
||||
/* A lexical scanner generated by flex */
|
||||
@ -2370,7 +2365,3 @@ void libconfig_yyfree (void * ptr , yyscan_t yyscanner)
|
||||
#define YYTABLES_NAME "yytables"
|
||||
|
||||
#line 192 "scanner.l"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
291
3rdparty/rapidyaml/.gitchangelog.rc
vendored
291
3rdparty/rapidyaml/.gitchangelog.rc
vendored
@ -1,291 +0,0 @@
|
||||
# -*- coding: utf-8; mode: python -*-
|
||||
##
|
||||
## https://pypi.org/project/gitchangelog/
|
||||
##
|
||||
## Format
|
||||
##
|
||||
## ACTION: [AUDIENCE:] COMMIT_MSG [!TAG ...]
|
||||
##
|
||||
## Description
|
||||
##
|
||||
## ACTION is one of 'chg', 'fix', 'new'
|
||||
##
|
||||
## Is WHAT the change is about.
|
||||
##
|
||||
## 'chg' is for refactor, small improvement, cosmetic changes...
|
||||
## 'fix' is for bug fixes
|
||||
## 'new' is for new features, big improvement
|
||||
##
|
||||
## AUDIENCE is optional and one of 'dev', 'usr', 'pkg', 'test', 'doc'
|
||||
##
|
||||
## Is WHO is concerned by the change.
|
||||
##
|
||||
## 'dev' is for developpers (API changes, refactors...)
|
||||
## 'usr' is for final users (UI changes)
|
||||
## 'pkg' is for packagers (packaging changes)
|
||||
## 'test' is for testers (test only related changes)
|
||||
## 'doc' is for doc guys (doc only changes)
|
||||
##
|
||||
## COMMIT_MSG is ... well ... the commit message itself.
|
||||
##
|
||||
## TAGs are additionnal adjective as 'refactor' 'minor' 'cosmetic'
|
||||
##
|
||||
## They are preceded with a '!' or a '@' (prefer the former, as the
|
||||
## latter is wrongly interpreted in github.) Commonly used tags are:
|
||||
##
|
||||
## 'refactor' is obviously for refactoring code only
|
||||
## 'minor' is for a very meaningless change (a typo, adding a comment)
|
||||
## 'cosmetic' is for cosmetic driven change (re-indentation, 80-col...)
|
||||
## 'wip' is for partial functionality but complete subfunctionality.
|
||||
##
|
||||
## Example:
|
||||
##
|
||||
## new: usr: support of bazaar implemented
|
||||
## chg: re-indentend some lines !cosmetic
|
||||
## new: dev: updated code to be compatible with last version of killer lib.
|
||||
## fix: pkg: updated year of licence coverage.
|
||||
## new: test: added a bunch of test around user usability of feature X.
|
||||
## fix: typo in spelling my name in comment. !minor
|
||||
##
|
||||
## Please note that multi-line commit message are supported, and only the
|
||||
## first line will be considered as the "summary" of the commit message. So
|
||||
## tags, and other rules only applies to the summary. The body of the commit
|
||||
## message will be displayed in the changelog without reformatting.
|
||||
|
||||
|
||||
##
|
||||
## ``ignore_regexps`` is a line of regexps
|
||||
##
|
||||
## Any commit having its full commit message matching any regexp listed here
|
||||
## will be ignored and won't be reported in the changelog.
|
||||
##
|
||||
ignore_regexps = [
|
||||
r'@minor', r'!minor',
|
||||
r'@cosmetic', r'!cosmetic',
|
||||
r'@refactor', r'!refactor',
|
||||
r'@wip', r'!wip',
|
||||
r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[p|P]kg:',
|
||||
r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[d|D]ev:',
|
||||
r'^(.{3,3}\s*:)?\s*[fF]irst commit.?\s*$',
|
||||
r'^$', ## ignore commits with empty messages
|
||||
]
|
||||
|
||||
|
||||
## ``section_regexps`` is a list of 2-tuples associating a string label and a
|
||||
## list of regexp
|
||||
##
|
||||
## Commit messages will be classified in sections thanks to this. Section
|
||||
## titles are the label, and a commit is classified under this section if any
|
||||
## of the regexps associated is matching.
|
||||
##
|
||||
## Please note that ``section_regexps`` will only classify commits and won't
|
||||
## make any changes to the contents. So you'll probably want to go check
|
||||
## ``subject_process`` (or ``body_process``) to do some changes to the subject,
|
||||
## whenever you are tweaking this variable.
|
||||
##
|
||||
section_regexps = [
|
||||
('New', [
|
||||
r'^[nN]ew\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
|
||||
]),
|
||||
('Changes', [
|
||||
r'^[cC]hg\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
|
||||
]),
|
||||
('Fix', [
|
||||
r'^[fF]ix\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
|
||||
]),
|
||||
|
||||
('Other', None ## Match all lines
|
||||
),
|
||||
|
||||
]
|
||||
|
||||
|
||||
## ``body_process`` is a callable
|
||||
##
|
||||
## This callable will be given the original body and result will
|
||||
## be used in the changelog.
|
||||
##
|
||||
## Available constructs are:
|
||||
##
|
||||
## - any python callable that take one txt argument and return txt argument.
|
||||
##
|
||||
## - ReSub(pattern, replacement): will apply regexp substitution.
|
||||
##
|
||||
## - Indent(chars=" "): will indent the text with the prefix
|
||||
## Please remember that template engines gets also to modify the text and
|
||||
## will usually indent themselves the text if needed.
|
||||
##
|
||||
## - Wrap(regexp=r"\n\n"): re-wrap text in separate paragraph to fill 80-Columns
|
||||
##
|
||||
## - noop: do nothing
|
||||
##
|
||||
## - ucfirst: ensure the first letter is uppercase.
|
||||
## (usually used in the ``subject_process`` pipeline)
|
||||
##
|
||||
## - final_dot: ensure text finishes with a dot
|
||||
## (usually used in the ``subject_process`` pipeline)
|
||||
##
|
||||
## - strip: remove any spaces before or after the content of the string
|
||||
##
|
||||
## - SetIfEmpty(msg="No commit message."): will set the text to
|
||||
## whatever given ``msg`` if the current text is empty.
|
||||
##
|
||||
## Additionally, you can `pipe` the provided filters, for instance:
|
||||
#body_process = Wrap(regexp=r'\n(?=\w+\s*:)') | Indent(chars=" ")
|
||||
#body_process = Wrap(regexp=r'\n(?=\w+\s*:)')
|
||||
#body_process = noop
|
||||
body_process = ReSub(r'((^|\n)[A-Z]\w+(-\w+)*: .*(\n\s+.*)*)+$', r'') | strip
|
||||
|
||||
|
||||
## ``subject_process`` is a callable
|
||||
##
|
||||
## This callable will be given the original subject and result will
|
||||
## be used in the changelog.
|
||||
##
|
||||
## Available constructs are those listed in ``body_process`` doc.
|
||||
subject_process = (strip |
|
||||
ReSub(r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n@]*)(@[a-z]+\s+)*$', r'\4') |
|
||||
SetIfEmpty("No commit message.") | ucfirst | final_dot)
|
||||
|
||||
|
||||
## ``tag_filter_regexp`` is a regexp
|
||||
##
|
||||
## Tags that will be used for the changelog must match this regexp.
|
||||
##
|
||||
tag_filter_regexp = r'^[0-9]+\.[0-9]+(\.[0-9]+)?$'
|
||||
|
||||
|
||||
## ``unreleased_version_label`` is a string or a callable that outputs a string
|
||||
##
|
||||
## This label will be used as the changelog Title of the last set of changes
|
||||
## between last valid tag and HEAD if any.
|
||||
unreleased_version_label = "(unreleased)"
|
||||
|
||||
|
||||
## ``output_engine`` is a callable
|
||||
##
|
||||
## This will change the output format of the generated changelog file
|
||||
##
|
||||
## Available choices are:
|
||||
##
|
||||
## - rest_py
|
||||
##
|
||||
## Legacy pure python engine, outputs ReSTructured text.
|
||||
## This is the default.
|
||||
##
|
||||
## - mustache(<template_name>)
|
||||
##
|
||||
## Template name could be any of the available templates in
|
||||
## ``templates/mustache/*.tpl``.
|
||||
## Requires python package ``pystache``.
|
||||
## Examples:
|
||||
## - mustache("markdown")
|
||||
## - mustache("restructuredtext")
|
||||
##
|
||||
## - makotemplate(<template_name>)
|
||||
##
|
||||
## Template name could be any of the available templates in
|
||||
## ``templates/mako/*.tpl``.
|
||||
## Requires python package ``mako``.
|
||||
## Examples:
|
||||
## - makotemplate("restructuredtext")
|
||||
##
|
||||
#output_engine = rest_py
|
||||
#output_engine = mustache("restructuredtext")
|
||||
output_engine = mustache("markdown")
|
||||
#output_engine = makotemplate("restructuredtext")
|
||||
|
||||
|
||||
## ``include_merge`` is a boolean
|
||||
##
|
||||
## This option tells git-log whether to include merge commits in the log.
|
||||
## The default is to include them.
|
||||
include_merge = True
|
||||
|
||||
|
||||
## ``log_encoding`` is a string identifier
|
||||
##
|
||||
## This option tells gitchangelog what encoding is outputed by ``git log``.
|
||||
## The default is to be clever about it: it checks ``git config`` for
|
||||
## ``i18n.logOutputEncoding``, and if not found will default to git's own
|
||||
## default: ``utf-8``.
|
||||
#log_encoding = 'utf-8'
|
||||
|
||||
|
||||
## ``publish`` is a callable
|
||||
##
|
||||
## Sets what ``gitchangelog`` should do with the output generated by
|
||||
## the output engine. ``publish`` is a callable taking one argument
|
||||
## that is an interator on lines from the output engine.
|
||||
##
|
||||
## Some helper callable are provided:
|
||||
##
|
||||
## Available choices are:
|
||||
##
|
||||
## - stdout
|
||||
##
|
||||
## Outputs directly to standard output
|
||||
## (This is the default)
|
||||
##
|
||||
## - FileInsertAtFirstRegexMatch(file, pattern, idx=lamda m: m.start())
|
||||
##
|
||||
## Creates a callable that will parse given file for the given
|
||||
## regex pattern and will insert the output in the file.
|
||||
## ``idx`` is a callable that receive the matching object and
|
||||
## must return a integer index point where to insert the
|
||||
## the output in the file. Default is to return the position of
|
||||
## the start of the matched string.
|
||||
##
|
||||
## - FileRegexSubst(file, pattern, replace, flags)
|
||||
##
|
||||
## Apply a replace inplace in the given file. Your regex pattern must
|
||||
## take care of everything and might be more complex. Check the README
|
||||
## for a complete copy-pastable example.
|
||||
##
|
||||
# publish = FileInsertIntoFirstRegexMatch(
|
||||
# "CHANGELOG.rst",
|
||||
# r'/(?P<rev>[0-9]+\.[0-9]+(\.[0-9]+)?)\s+\([0-9]+-[0-9]{2}-[0-9]{2}\)\n--+\n/',
|
||||
# idx=lambda m: m.start(1)
|
||||
# )
|
||||
#publish = stdout
|
||||
|
||||
|
||||
## ``revs`` is a list of callable or a list of string
|
||||
##
|
||||
## callable will be called to resolve as strings and allow dynamical
|
||||
## computation of these. The result will be used as revisions for
|
||||
## gitchangelog (as if directly stated on the command line). This allows
|
||||
## to filter exaclty which commits will be read by gitchangelog.
|
||||
##
|
||||
## To get a full documentation on the format of these strings, please
|
||||
## refer to the ``git rev-list`` arguments. There are many examples.
|
||||
##
|
||||
## Using callables is especially useful, for instance, if you
|
||||
## are using gitchangelog to generate incrementally your changelog.
|
||||
##
|
||||
## Some helpers are provided, you can use them::
|
||||
##
|
||||
## - FileFirstRegexMatch(file, pattern): will return a callable that will
|
||||
## return the first string match for the given pattern in the given file.
|
||||
## If you use named sub-patterns in your regex pattern, it'll output only
|
||||
## the string matching the regex pattern named "rev".
|
||||
##
|
||||
## - Caret(rev): will return the rev prefixed by a "^", which is a
|
||||
## way to remove the given revision and all its ancestor.
|
||||
##
|
||||
## Please note that if you provide a rev-list on the command line, it'll
|
||||
## replace this value (which will then be ignored).
|
||||
##
|
||||
## If empty, then ``gitchangelog`` will act as it had to generate a full
|
||||
## changelog.
|
||||
##
|
||||
## The default is to use all commits to make the changelog.
|
||||
#revs = ["^1.0.3", ]
|
||||
#revs = [
|
||||
# Caret(
|
||||
# FileFirstRegexMatch(
|
||||
# "CHANGELOG.rst",
|
||||
# r"(?P<rev>[0-9]+\.[0-9]+(\.[0-9]+)?)\s+\([0-9]+-[0-9]{2}-[0-9]{2}\)\n--+\n")),
|
||||
# "HEAD"
|
||||
#]
|
||||
revs = []
|
50
3rdparty/rapidyaml/.gitignore
vendored
50
3rdparty/rapidyaml/.gitignore
vendored
@ -1,50 +0,0 @@
|
||||
# text editor files
|
||||
*.bck
|
||||
\#*
|
||||
*~
|
||||
.cquery_cached_index/
|
||||
.clangd/
|
||||
.ccls-cache/
|
||||
.cache/
|
||||
__pycache__/
|
||||
|
||||
# gdb files
|
||||
.gdbinit
|
||||
setup.gdb
|
||||
|
||||
# valgrind files
|
||||
callgrind*
|
||||
vgcore*
|
||||
|
||||
# Visual Studio files
|
||||
.vs/
|
||||
.vscode/
|
||||
# QtCreator files
|
||||
CMakeLists.txt.user*
|
||||
# Eclipse
|
||||
.project
|
||||
.cproject
|
||||
/.settings/
|
||||
# KDevelop files
|
||||
*.kdev4
|
||||
|
||||
# build files
|
||||
build/
|
||||
install/
|
||||
.python-version
|
||||
compile_commands.json
|
||||
|
||||
# test files
|
||||
/Testing/
|
||||
|
||||
# python packaging
|
||||
.eggs/
|
||||
dist/
|
||||
rapidyaml.egg-info/
|
||||
|
||||
# continuous integration files
|
||||
.ci/.vagrant
|
||||
|
||||
# amalgamation files
|
||||
src/c4/c4core_all.hpp
|
||||
src_singleheader/
|
3
3rdparty/rapidyaml/.gitmodules
vendored
3
3rdparty/rapidyaml/.gitmodules
vendored
@ -1,3 +0,0 @@
|
||||
[submodule "extern/c4core"]
|
||||
path = ext/c4core
|
||||
url = https://github.com/biojppm/c4core
|
2
3rdparty/rapidyaml/.lgtm.yml
vendored
2
3rdparty/rapidyaml/.lgtm.yml
vendored
@ -1,2 +0,0 @@
|
||||
queries:
|
||||
- exclude: cpp/unsigned-comparison-zero
|
100
3rdparty/rapidyaml/CMakeLists.txt
vendored
100
3rdparty/rapidyaml/CMakeLists.txt
vendored
@ -1,100 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
include(./ext/c4core/cmake/c4Project.cmake)
|
||||
project(ryml
|
||||
DESCRIPTION "Rapid YAML parsing and emitting"
|
||||
HOMEPAGE_URL "https://github.com/biojppm/rapidyaml"
|
||||
LANGUAGES CXX)
|
||||
include(./compat.cmake)
|
||||
|
||||
c4_project(VERSION 0.4.0 STANDALONE
|
||||
AUTHOR "Joao Paulo Magalhaes <dev@jpmag.me>")
|
||||
|
||||
|
||||
#-------------------------------------------------------
|
||||
|
||||
option(RYML_WITH_TAB_TOKENS "Enable parsing of tabs after ':' and '-'. This is costly and disabled by default." OFF)
|
||||
option(RYML_DEFAULT_CALLBACKS "Enable ryml's default implementation of callbacks: allocate(), free(), error()" ON)
|
||||
option(RYML_BUILD_TOOLS "build tools" OFF)
|
||||
option(RYML_BUILD_API "Enable API generation (python, etc)" OFF)
|
||||
option(RYML_DBG "Enable (very verbose) ryml debug prints." OFF)
|
||||
|
||||
|
||||
#-------------------------------------------------------
|
||||
|
||||
c4_require_subproject(c4core INCORPORATE
|
||||
SUBDIRECTORY ${RYML_EXT_DIR}/c4core)
|
||||
|
||||
c4_add_library(ryml
|
||||
SOURCES
|
||||
ryml.hpp
|
||||
ryml_std.hpp
|
||||
c4/yml/detail/checks.hpp
|
||||
c4/yml/detail/parser_dbg.hpp
|
||||
c4/yml/detail/print.hpp
|
||||
c4/yml/detail/stack.hpp
|
||||
c4/yml/common.hpp
|
||||
c4/yml/common.cpp
|
||||
c4/yml/emit.def.hpp
|
||||
c4/yml/emit.hpp
|
||||
c4/yml/export.hpp
|
||||
c4/yml/node.hpp
|
||||
c4/yml/node.cpp
|
||||
c4/yml/parse.hpp
|
||||
c4/yml/parse.cpp
|
||||
c4/yml/preprocess.hpp
|
||||
c4/yml/preprocess.cpp
|
||||
c4/yml/std/map.hpp
|
||||
c4/yml/std/std.hpp
|
||||
c4/yml/std/string.hpp
|
||||
c4/yml/std/vector.hpp
|
||||
c4/yml/tree.hpp
|
||||
c4/yml/tree.cpp
|
||||
c4/yml/writer.hpp
|
||||
c4/yml/yml.hpp
|
||||
ryml.natvis
|
||||
SOURCE_ROOT ${RYML_SRC_DIR}
|
||||
INC_DIRS
|
||||
$<BUILD_INTERFACE:${RYML_SRC_DIR}>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
LIBS c4core
|
||||
INCORPORATE c4core
|
||||
)
|
||||
|
||||
if(RYML_WITH_TAB_TOKENS)
|
||||
target_compile_definitions(ryml PUBLIC RYML_WITH_TAB_TOKENS)
|
||||
endif()
|
||||
|
||||
if(NOT RYML_DEFAULT_CALLBACKS)
|
||||
target_compile_definitions(ryml PRIVATE RYML_NO_DEFAULT_CALLBACKS)
|
||||
endif()
|
||||
|
||||
if(RYML_DBG)
|
||||
target_compile_definitions(ryml PRIVATE RYML_DBG)
|
||||
endif()
|
||||
|
||||
|
||||
#-------------------------------------------------------
|
||||
|
||||
c4_install_target(ryml)
|
||||
c4_install_exports(DEPENDENCIES c4core)
|
||||
c4_pack_project()
|
||||
|
||||
|
||||
#-------------------------------------------------------
|
||||
# developer targets
|
||||
|
||||
|
||||
# extern libraries, used only for testing/benchmarking
|
||||
if(RYML_BUILD_TESTS OR RYML_BUILD_BENCHMARKS OR RYML_BUILD_TOOLS)
|
||||
include(ext/testbm.cmake)
|
||||
endif()
|
||||
|
||||
if(RYML_BUILD_TOOLS)
|
||||
add_subdirectory(tools)
|
||||
endif()
|
||||
|
||||
c4_add_dev_targets()
|
||||
|
||||
add_custom_target(ryml-uninstall
|
||||
"${CMAKE_COMMAND}" -P "${PROJECT_SOURCE_DIR}/cmake/uninstall.cmake"
|
||||
)
|
18
3rdparty/rapidyaml/CONTRIBUTING.md
vendored
18
3rdparty/rapidyaml/CONTRIBUTING.md
vendored
@ -1,18 +0,0 @@
|
||||
# Contributing
|
||||
|
||||
Thanks for your contribution!
|
||||
|
||||
* Make sure to clone the project with `git clone --recursive` so that
|
||||
the submodules are initialized correctly.
|
||||
* To enable both tests and benchmarks, configure ryml with `-DRYML_DEV=ON`
|
||||
when calling cmake. To enable only tests, use `-DRYML_BUILD_TESTS=ON`; to
|
||||
enable only benchmarks use `-DRYML_BUILD_BENCHMARKS=ON`. All these flags
|
||||
are disabled by default.
|
||||
* Code style for pull requests should respect the existing code style:
|
||||
```c++
|
||||
if(foo) // no space before parens
|
||||
{ // curly brackets on next line
|
||||
// no tabs; indent with 4 spaces
|
||||
bar();
|
||||
}
|
||||
```
|
20
3rdparty/rapidyaml/LICENSE.txt
vendored
20
3rdparty/rapidyaml/LICENSE.txt
vendored
@ -1,20 +0,0 @@
|
||||
Copyright (c) 2018, Joao Paulo Magalhaes <dev@jpmag.me>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
3
3rdparty/rapidyaml/MANIFEST.in
vendored
3
3rdparty/rapidyaml/MANIFEST.in
vendored
@ -1,3 +0,0 @@
|
||||
# MANIFEST.in must be in root directory.
|
||||
# See https://github.com/pypa/setuptools/issues/2615
|
||||
graft ext
|
44
3rdparty/rapidyaml/Makefile.in
vendored
44
3rdparty/rapidyaml/Makefile.in
vendored
@ -1,44 +0,0 @@
|
||||
|
||||
RAPIDYAML_OBJ = $(shell find * -type f -name "*.cpp" | sed -e "s/\.cpp/\.o/g")
|
||||
RAPIDYAML_DIR_OBJ = $(RAPIDYAML_OBJ:%=obj/%)
|
||||
RAPIDYAML_H = $(shell find * -type f -name "*.h*")
|
||||
RAPIDYAML_AR = obj/ryml.a
|
||||
|
||||
CXXFLAG =-std=c++11
|
||||
INC=-Isrc -Iext/c4core/src
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
#####################################################################
|
||||
.PHONY : all clean help rapidyaml
|
||||
|
||||
all: rapidyaml
|
||||
|
||||
clean:
|
||||
@echo " CLEAN rapidyaml"
|
||||
@rm -rf obj *.o
|
||||
|
||||
help:
|
||||
@echo "possible targets are 'all' 'clean' 'help'"
|
||||
@echo "'rapidyaml' - build $(RAPIDYAML_AR)
|
||||
@echo "'all' - builds $(RAPIDYAML_DIR_OBJ)"
|
||||
@echo "'clean' - deletes $(RAPIDYAML_DIR_OBJ)"
|
||||
@echo "'help' - outputs this message"
|
||||
|
||||
#####################################################################
|
||||
|
||||
obj:
|
||||
@echo " MKDIR obj/src/c4/yml"
|
||||
@echo " MKDIR obj/ext/c4core/src/c4"
|
||||
@mkdir -p obj/src/c4/yml
|
||||
@mkdir -p obj/ext/c4core/src/c4
|
||||
|
||||
obj/%.o: %.cpp $(RAPIDYAML_H)
|
||||
@echo " CXX $<"
|
||||
@@CXX@ $(CXXFLAG) @CFLAGS_AR@ @CPPFLAGS@ -g $(INC) -c $(OUTPUT_OPTION) $<
|
||||
|
||||
rapidyaml: obj $(RAPIDYAML_DIR_OBJ) $(RAPIDYAML_AR)
|
||||
|
||||
$(RAPIDYAML_AR): $(RAPIDYAML_DIR_OBJ)
|
||||
@echo " AR $@"
|
||||
@@AR@ rcs obj/ryml.a $(RAPIDYAML_DIR_OBJ)
|
1049
3rdparty/rapidyaml/README.md
vendored
1049
3rdparty/rapidyaml/README.md
vendored
File diff suppressed because it is too large
Load Diff
18
3rdparty/rapidyaml/ROADMAP.md
vendored
18
3rdparty/rapidyaml/ROADMAP.md
vendored
@ -1,18 +0,0 @@
|
||||
# Roadmap
|
||||
|
||||
Roughly in order of priority:
|
||||
|
||||
* Cleanup:
|
||||
* Review & cleanup API surface.
|
||||
* Turn calls to `C4_ASSERT()` into calls to `RYML_ASSERT()`
|
||||
* Add emit formatting controls:
|
||||
* add single-line flow formatter
|
||||
* add multi-line flow formatters
|
||||
* indenting
|
||||
* non indenting
|
||||
* keep current block formatter
|
||||
* add customizable linebreak limits (number of columns) to every formatter
|
||||
* add per node format flags
|
||||
* (lesser priority) add auto formatter using reasonable heuristics to
|
||||
switch between other existing formatters
|
||||
* Investigate possibility of comment-preserving roundtrips
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project>
|
||||
<ProjectOutputs />
|
||||
<ContentFiles />
|
||||
<SatelliteDlls />
|
||||
<NonRecipeFileRefs />
|
||||
</Project>
|
294
3rdparty/rapidyaml/c4core.vcxproj
vendored
294
3rdparty/rapidyaml/c4core.vcxproj
vendored
@ -1,294 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{B795DCB1-2FEA-3BDC-A05C-33F5BF08CF31}</ProjectGuid>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>c4core</ProjectName>
|
||||
<VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir).vs\build\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>
|
||||
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.lib</TargetExt>
|
||||
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.lib</TargetExt>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir).vs\build\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir).vs\build\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>
|
||||
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.lib</TargetExt>
|
||||
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(SolutionDir).vs\build\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(SolutionDir).vs\build\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Vcpkg">
|
||||
<VcpkgEnabled>false</VcpkgEnabled>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<UseFullPaths>false</UseFullPaths>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
<Midl>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
|
||||
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||
</Midl>
|
||||
<Lib>
|
||||
<AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<UseFullPaths>false</UseFullPaths>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
<Midl>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
|
||||
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||
</Midl>
|
||||
<Lib>
|
||||
<AdditionalOptions>%(AdditionalOptions) /machine:x86</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<UseFullPaths>false</UseFullPaths>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
<Midl>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
|
||||
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||
</Midl>
|
||||
<Lib>
|
||||
<AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<UseFullPaths>false</UseFullPaths>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
<Midl>
|
||||
<AdditionalIncludeDirectories>ext\c4core\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
|
||||
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||
</Midl>
|
||||
<Lib>
|
||||
<AdditionalOptions>%(AdditionalOptions) /machine:x86</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="ext\c4core\src\c4\allocator.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\base64.hpp" />
|
||||
<ClCompile Include="ext\c4core\src\c4\base64.cpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\blob.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\bitmask.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\charconv.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\c4_pop.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\c4_push.hpp" />
|
||||
<ClCompile Include="ext\c4core\src\c4\char_traits.cpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\char_traits.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\common.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\compiler.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\config.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\cpu.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ctor_dtor.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\dump.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\enum.hpp" />
|
||||
<ClCompile Include="ext\c4core\src\c4\error.cpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\error.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\export.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\format.hpp" />
|
||||
<ClCompile Include="ext\c4core\src\c4\format.cpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\hash.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\language.hpp" />
|
||||
<ClCompile Include="ext\c4core\src\c4\language.cpp" />
|
||||
<ClCompile Include="ext\c4core\src\c4\memory_resource.cpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\memory_resource.hpp" />
|
||||
<ClCompile Include="ext\c4core\src\c4\memory_util.cpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\memory_util.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\platform.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\preprocessor.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\restrict.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\span.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\std\std.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\std\std_fwd.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\std\string.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\std\string_fwd.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\std\tuple.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\std\vector.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\std\vector_fwd.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\substr.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\substr_fwd.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\szconv.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\time.hpp" />
|
||||
<ClCompile Include="ext\c4core\src\c4\time.cpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\type_name.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\types.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\unrestrict.hpp" />
|
||||
<ClCompile Include="ext\c4core\src\c4\utf.cpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\utf.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\windows.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\windows_pop.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\windows_push.hpp" />
|
||||
<Natvis Include="ext\c4core\src\c4\c4core.natvis" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\debugbreak\debugbreak.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\rng\rng.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\sg14\inplace_function.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float.hpp" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\ascii_number.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\bigint.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\decimal_to_binary.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\digit_comparison.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\fast_float.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\fast_table.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\float_common.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\parse_number.h" />
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\simple_decimal_conversion.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
239
3rdparty/rapidyaml/c4core.vcxproj.filters
vendored
239
3rdparty/rapidyaml/c4core.vcxproj.filters
vendored
@ -1,239 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="ext\c4core\src\c4\base64.cpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ext\c4core\src\c4\char_traits.cpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ext\c4core\src\c4\error.cpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ext\c4core\src\c4\format.cpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ext\c4core\src\c4\language.cpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ext\c4core\src\c4\memory_resource.cpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ext\c4core\src\c4\memory_util.cpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ext\c4core\src\c4\time.cpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ext\c4core\src\c4\utf.cpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="ext\c4core\src\c4\allocator.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\base64.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\blob.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\bitmask.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\charconv.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\c4_pop.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\c4_push.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\char_traits.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\common.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\compiler.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\config.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\cpu.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ctor_dtor.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\dump.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\enum.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\error.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\export.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\format.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\hash.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\language.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\memory_resource.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\memory_util.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\platform.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\preprocessor.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\restrict.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\span.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\std\std.hpp">
|
||||
<Filter>c4\std</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\std\std_fwd.hpp">
|
||||
<Filter>c4\std</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\std\string.hpp">
|
||||
<Filter>c4\std</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\std\string_fwd.hpp">
|
||||
<Filter>c4\std</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\std\tuple.hpp">
|
||||
<Filter>c4\std</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\std\vector.hpp">
|
||||
<Filter>c4\std</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\std\vector_fwd.hpp">
|
||||
<Filter>c4\std</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\substr.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\substr_fwd.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\szconv.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\time.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\type_name.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\types.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\unrestrict.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\utf.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\windows.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\windows_pop.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\windows_push.hpp">
|
||||
<Filter>c4</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\debugbreak\debugbreak.h">
|
||||
<Filter>c4\ext\debugbreak</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\rng\rng.hpp">
|
||||
<Filter>c4\ext\rng</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\sg14\inplace_function.h">
|
||||
<Filter>c4\ext\sg14</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float.hpp">
|
||||
<Filter>c4\ext</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\ascii_number.h">
|
||||
<Filter>c4\ext\fast_float\include\fast_float</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\bigint.h">
|
||||
<Filter>c4\ext\fast_float\include\fast_float</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\decimal_to_binary.h">
|
||||
<Filter>c4\ext\fast_float\include\fast_float</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\digit_comparison.h">
|
||||
<Filter>c4\ext\fast_float\include\fast_float</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\fast_float.h">
|
||||
<Filter>c4\ext\fast_float\include\fast_float</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\fast_table.h">
|
||||
<Filter>c4\ext\fast_float\include\fast_float</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\float_common.h">
|
||||
<Filter>c4\ext\fast_float\include\fast_float</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\parse_number.h">
|
||||
<Filter>c4\ext\fast_float\include\fast_float</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ext\c4core\src\c4\ext\fast_float\include\fast_float\simple_decimal_conversion.h">
|
||||
<Filter>c4\ext\fast_float\include\fast_float</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Natvis Include="ext\c4core\src\c4\c4core.natvis">
|
||||
<Filter>c4</Filter>
|
||||
</Natvis>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="c4">
|
||||
<UniqueIdentifier>{D96EB7E9-E07F-31EF-8A8C-CDA60AEE417F}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="c4\ext">
|
||||
<UniqueIdentifier>{0C8CED5D-8C03-3DC1-88A0-4532154293B9}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="c4\ext\debugbreak">
|
||||
<UniqueIdentifier>{518E0C6D-105B-39F9-8193-356D9B7641CB}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="c4\ext\fast_float">
|
||||
<UniqueIdentifier>{73394C47-97A1-34EE-A081-D6003F63E488}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="c4\ext\fast_float\include">
|
||||
<UniqueIdentifier>{1B43ABC9-6254-3DF0-A9A5-86BCF6FEA126}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="c4\ext\fast_float\include\fast_float">
|
||||
<UniqueIdentifier>{6328648E-A574-3A0D-8E0E-A2AA13716FDA}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="c4\ext\rng">
|
||||
<UniqueIdentifier>{2A97DBBA-1057-3E33-AE1C-C4CF7DBD4D89}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="c4\ext\sg14">
|
||||
<UniqueIdentifier>{4104B22C-27F9-38F8-9E20-00B05D09BD39}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="c4\std">
|
||||
<UniqueIdentifier>{599BE36A-381B-3D35-9752-B177B3AA1E4D}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
44
3rdparty/rapidyaml/changelog/0.1.0.md
vendored
44
3rdparty/rapidyaml/changelog/0.1.0.md
vendored
@ -1,44 +0,0 @@
|
||||
This is the first ryml release. Future releases will have a more organized changelog; for now, only recent major changes are listed.
|
||||
|
||||
Please be aware that there are still some anticipated breaking changes in the API before releasing the 1.0 major version. These are highlighted in [the repo ROADMAP](https://github.com/biojppm/rapidyaml/blob/v0.1.0/ROADMAP.md).
|
||||
|
||||
* 2020/October
|
||||
* [MR#89](https://github.com/biojppm/rapidyaml/pull/89):
|
||||
* fix python API generation in windows
|
||||
* use github actions for testing and releasing
|
||||
* [MR#88](https://github.com/biojppm/rapidyaml/pull/88): [fix MacOS compilation and installs](https://github.com/biojppm/rapidyaml/issues/75). This is a fix from [c4core](https://github.com/biojppm/cmake/issues/1).
|
||||
* [MR#88](https://github.com/biojppm/rapidyaml/pull/88): [fix boolean handling](https://github.com/biojppm/rapidyaml/issues/74). This is a fix from [c4core](https://github.com/biojppm/c4core/pull/18/). `true` and `false` are now parsed correctly into `bool` variables:
|
||||
```c++
|
||||
auto tree = parse("{foo: true, bar: false}");
|
||||
```
|
||||
Emitting `bool` variables still defaults to `0`/`1`, like the default behaviour in the STL. To explicitly request `true`/`false` use `c4::fmt::boolalpha()`:
|
||||
```c++
|
||||
node << var; // "1" or "0"
|
||||
node << c4::fmt::boolalpha(var); // "true" or "false"
|
||||
```
|
||||
* 2020/September
|
||||
* [***Breaking change***] [MR#85](https://github.com/biojppm/rapidyaml/pull/85) null values in YAML are now parsed to null strings instead of YAML null token "~":
|
||||
```c++
|
||||
auto tree = parse("{foo: , bar: ''}");
|
||||
// previous:
|
||||
assert(tree["foo"].val() == "~");
|
||||
assert(tree["bar"].val() == "");
|
||||
// now:
|
||||
assert(tree["foo"].val() == nullptr); // notice that this is now null
|
||||
assert(tree["bar"].val() == "");
|
||||
```
|
||||
* [MR#85](https://github.com/biojppm/rapidyaml/pull/85) Commas after tags are now allowed:
|
||||
```yaml
|
||||
{foo: !!str, bar: ''} # now the comma does not cause an error
|
||||
```
|
||||
* [MR#81](https://github.com/biojppm/rapidyaml/pull/81): Always compile with extra pedantic warnings.
|
||||
* 2020/May
|
||||
* [***Breaking change***] the error callback now receives a source location object:
|
||||
```c++
|
||||
// previous
|
||||
using pfn_error = void (*)(const char* msg, size_t msg_len, void *user_data);
|
||||
// now:
|
||||
using pfn_error = void (*)(const char* msg, size_t msg_len, Location location, void *user_data);
|
||||
```
|
||||
* Parser fixes to improve test suite success: [MR#73](https://github.com/biojppm/rapidyaml/pull/73), [MR#71](https://github.com/biojppm/rapidyaml/pull/71), [MR#68](https://github.com/biojppm/rapidyaml/pull/68), [MR#67](https://github.com/biojppm/rapidyaml/pull/67), [MR#66](https://github.com/biojppm/rapidyaml/pull/66)
|
||||
* Fix compilation as DLL on windows [MR#69](https://github.com/biojppm/rapidyaml/pull/69)
|
29
3rdparty/rapidyaml/changelog/0.2.0.md
vendored
29
3rdparty/rapidyaml/changelog/0.2.0.md
vendored
@ -1,29 +0,0 @@
|
||||
### New features & improvements
|
||||
- Enable parsing into nested nodes ([87f4184](https://github.com/biojppm/rapidyaml/commit/87f4184))
|
||||
- `as_json()` can now be called with tree and node id ([4c23041](https://github.com/biojppm/rapidyaml/commit/4c23041))
|
||||
- Add `Parser::reserve_stack()` ([f31fb9f](https://github.com/biojppm/rapidyaml/commit/f31fb9f))
|
||||
- Add uninstall target ([PR #122](https://github.com/biojppm/rapidyaml/pull/122))
|
||||
- Update [c4core](https://github.com/biojppm/c4core) to v0.1.1
|
||||
- Add a [quickstart sample](samples/quickstart.cpp) with build examples.
|
||||
- Update [README.md](README.md) to refer to the quickstart
|
||||
- Add [gdb visualizers](src/ryml-gdbtypes.py)
|
||||
- Add `SO_VERSION` to shared builds
|
||||
|
||||
### Fixes
|
||||
- Fix [#139](https://github.com/biojppm/rapidyaml/issues/139): substr and csubstr not found in ryml namespace
|
||||
- Fix [#131](https://github.com/biojppm/rapidyaml/issues/131): resolve references to map keys
|
||||
- Fix [#129](https://github.com/biojppm/rapidyaml/issues/129): quoted strings starting with * parsed as references
|
||||
- Fix [#128](https://github.com/biojppm/rapidyaml/issues/128): segfault on nonexistent anchor
|
||||
- Fix [#124](https://github.com/biojppm/rapidyaml/issues/124): parse failure in comments with trailing colon
|
||||
- Fix [#121](https://github.com/biojppm/rapidyaml/issues/121): preserve quotes when emitting scalars
|
||||
- Fix [#103](https://github.com/biojppm/rapidyaml/issues/103): ambiguous parsing of null/empty scalars
|
||||
- Fix [#90](https://github.com/biojppm/rapidyaml/issues/90): CMAKE_CXX_STANDARD ignored
|
||||
- Fix [#40](https://github.com/biojppm/rapidyaml/issues/40): quadratic complexity from use of `sscanf(%f)`
|
||||
- Fix emitting json to streams ([dc6af83](https://github.com/biojppm/rapidyaml/commit/dc6af83))
|
||||
- Set the global memory resource when setting global callbacks ([511cba0](https://github.com/biojppm/rapidyaml/commit/511cba0))
|
||||
- Fix python packaging ([PR #102](https://github.com/biojppm/rapidyaml/pull/102))
|
||||
|
||||
### Special thanks
|
||||
- @Gei0r
|
||||
- @litghost
|
||||
- @costashatz
|
235
3rdparty/rapidyaml/changelog/0.2.1.md
vendored
235
3rdparty/rapidyaml/changelog/0.2.1.md
vendored
@ -1,235 +0,0 @@
|
||||
This release is focused on bug fixes and compliance with the [YAML test suite](https://github.com/yaml/yaml-test-suite).
|
||||
|
||||
### Breaking changes
|
||||
|
||||
- Fix parsing behavior of root-level scalars: now these are parsed into a DOCVAL, not SEQ->VAL ([5ba0d56](https://github.com/biojppm/rapidyaml/pull/144/commits/5ba0d56904daef1509f0073695145c4835ab1b30), from [PR #144](https://github.com/biojppm/rapidyaml/pull/144)). Eg,
|
||||
```yaml
|
||||
---
|
||||
this is a scalar
|
||||
--- # previously this was parsed as
|
||||
- this is a scalar
|
||||
```
|
||||
- Cleanup type predicate API ([PR #155](https://github.com/biojppm/rapidyaml/pull/155))):
|
||||
- ensure all type predicates from `Tree` and `NodeRef` forward to the corresponding predicate in `NodeType`
|
||||
- remove all type predicates and methods from `NodeData`; use the equivalent call from `Tree` or `NodeRef`. For example, for `is_map()`:
|
||||
```c++
|
||||
Tree t = parse("{foo: bar}");
|
||||
size_t map_id = t.root_id();
|
||||
NodeRef map = t.rootref();
|
||||
t.get(map_id)->is_map(); // compile error: no longer exists
|
||||
assert(t.is_map(map_id)); // OK
|
||||
assert(map.is_map()); // OK
|
||||
```
|
||||
- Further cleanup to the type predicate API will be done in the future, especially around the `.has_*()` vs corresponding `.is_*()` naming scheme.
|
||||
|
||||
|
||||
### New features & improvements
|
||||
|
||||
- `Tree::lookup_path_or_modify()`: add overload to graft existing branches ([PR #141](https://github.com/biojppm/rapidyaml/pull/141))
|
||||
- Callbacks: improve test coverage ([PR #141](https://github.com/biojppm/rapidyaml/pull/141))
|
||||
- [YAML test suite](https://github.com/yaml/yaml-test-suite) ([PR #144](https://github.com/biojppm/rapidyaml/pull/144), [PR #145](https://github.com/biojppm/rapidyaml/pull/145)): big progress towards compliance with the suite. There are still a number of existing problems, which are the subject of ongoing work. See the [list of current known failures](../test/test_suite/test_suite_parts.cpp) in the test suite file.
|
||||
- Python wheels and source package are now [uploaded to PyPI](https://pypi.org/project/rapidyaml/) as part of the release process.
|
||||
|
||||
|
||||
### Fixes
|
||||
|
||||
#### Anchors and references
|
||||
- Fix resolving of nodes with keyref+valref ([PR #144](https://github.com/biojppm/rapidyaml/pull/144)): `{&a a: &b b, *b: *a}`
|
||||
- Fix parsing of implicit scalars when tags are present ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
- &a # test case PW8X
|
||||
- a
|
||||
- &a : a
|
||||
b: &b
|
||||
- &c : &a
|
||||
- ? &d
|
||||
- ? &e
|
||||
: &a
|
||||
```
|
||||
- Fix [#151](https://github.com/biojppm/rapidyaml/issues/151): scalars beginning with `*` or `&` or `<<` are now correctly quoted when emitting ([PR #156](https://github.com/biojppm/rapidyaml/pull/156)).
|
||||
- Also from [PR #156](https://github.com/biojppm/rapidyaml/pull/156), map inheritance nodes like `<<: *anchor` or `<<: [*anchor1, *anchor2]` now have a `KEYREF` flag in their type (until a call to `Tree::resolve()`):
|
||||
```c++
|
||||
Tree tree = parse("{map: &anchor {foo: bar}, copy: {<<: *anchor}}");
|
||||
assert(tree["copy"]["<<"].is_key_ref()); // previously this did not hold
|
||||
assert(tree["copy"]["<<"].is_val_ref()); // ... but this did
|
||||
```
|
||||
|
||||
#### Tags
|
||||
- Fix parsing of tag dense maps and seqs ([PR #144](https://github.com/biojppm/rapidyaml/pull/144)):
|
||||
```yaml
|
||||
--- !!map {
|
||||
k: !!seq [ a, !!str b],
|
||||
j: !!seq
|
||||
[ a, !!str b]
|
||||
--- !!seq [
|
||||
!!map { !!str k: v},
|
||||
!!map { !!str ? k: v}
|
||||
]
|
||||
--- !!map
|
||||
!!str foo: !!map # there was a parse error with the multiple tags
|
||||
!!int 1: !!float 20.0
|
||||
!!int 3: !!float 40.0
|
||||
--- !!seq
|
||||
- !!map
|
||||
!!str k1: v1
|
||||
!!str k2: v2
|
||||
!!str k3: v3
|
||||
```
|
||||
|
||||
#### Whitespace
|
||||
- Fix parsing of double-quoted scalars with tabs ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
"This has a\ttab"
|
||||
# is now correctly parsed as "This has a<TAB>tab"
|
||||
```
|
||||
- Fix filtering of leading and trailing whitespace within double-quoted scalars ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
# test case 4ZYM, 7A4E, TL85
|
||||
"
|
||||
<SPC><SPC>foo<SPC>
|
||||
<SPC>
|
||||
<SPC><TAB><SPC>bar
|
||||
<SPC><SPC>baz
|
||||
"
|
||||
# is now correctly parsed as " foo\nbar\nbaz "
|
||||
```
|
||||
- Fix parsing of tabs within YAML tokens ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
---<TAB>scalar # test case K54U
|
||||
---<TAB>{} # test case Q5MG
|
||||
--- # test case DC7X
|
||||
a: b<TAB>
|
||||
seq:<TAB>
|
||||
- a<TAB>
|
||||
c: d<TAB>#X
|
||||
```
|
||||
- Fix parsing of flow-style maps with ommitted values without any space ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
# test case 4ABK
|
||||
- {foo: , bar: , baz: } # this was parsed correctly as {foo: ~, bar: ~, baz: ~}
|
||||
- {foo:, bar:, baz:} # ... but this was parsed as {'foo:': , 'bar:': ~, 'baz:': ~}
|
||||
```
|
||||
|
||||
#### Scalars
|
||||
- Unescape forward slashes in double quoted string ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
--- escaped slash: "a\/b" # test case 3UYS
|
||||
# is now parsed as:
|
||||
--- escaped slash: "a/b"
|
||||
```
|
||||
- Fix filtering of indented regions in folded scalars ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
# test case 7T8X
|
||||
- >
|
||||
|
||||
folded
|
||||
line
|
||||
|
||||
next
|
||||
line
|
||||
* bullet
|
||||
|
||||
* list
|
||||
* lines
|
||||
|
||||
last
|
||||
line
|
||||
```
|
||||
is now correctly parsed as `\nfolded line\nnext line\n * bullet\n\n * list\n * lines\n\nlast line\n`.
|
||||
- Fix parsing of special characters within plain scalars ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
# test case 3MYT
|
||||
k:#foo
|
||||
&a !t s
|
||||
!t s
|
||||
# now correctly parsed as "k:#foo &a !t s !t s"
|
||||
```
|
||||
- Fix parsing of comments after complex keys ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
# test case X8DW
|
||||
? key
|
||||
# comment
|
||||
: value
|
||||
# now correctly parsed as {key: value}
|
||||
```
|
||||
- Fix parsing of consecutive complex keys within maps ([PR #145](https://github.com/biojppm/rapidyaml/pull/145))
|
||||
```yaml
|
||||
# test case 7W2P, ZWK4
|
||||
? a
|
||||
? b
|
||||
c:
|
||||
? d
|
||||
e:
|
||||
# now correctly parsed as {a: ~, b: ~, c: ~, d: ~, e: ~}
|
||||
```
|
||||
- Fix [#152](https://github.com/biojppm/rapidyaml/issues/152): parse error with folded scalars that are the last in a container ([PR #157](https://github.com/biojppm/rapidyaml/pull/157)):
|
||||
```yaml
|
||||
exec:
|
||||
command:
|
||||
# before the fix, this folded scalar failed to parse
|
||||
- |
|
||||
exec pg_isready -U "dog" -d "dbname=dog" -h 127.0.0.1 -p 5432
|
||||
parses: no
|
||||
```
|
||||
- Fix: documents consisting of a quoted scalar now retain the VALQUO flag ([PR #156](https://github.com/biojppm/rapidyaml/pull/156))
|
||||
```c++
|
||||
Tree tree = parse("'this is a quoted scalar'");
|
||||
assert(tree.rootref().is_doc());
|
||||
assert(tree.rootref().is_val());
|
||||
assert(tree.rootref().is_val_quoted());
|
||||
```
|
||||
|
||||
|
||||
#### Document structure
|
||||
- Empty docs are now parsed as a docval with a null node:
|
||||
```yaml
|
||||
--- # test cases 6XDY, 6ZKB, 9BXL, PUW8
|
||||
---
|
||||
---
|
||||
```
|
||||
is now parsed as
|
||||
```yaml
|
||||
--- ~
|
||||
--- ~
|
||||
--- ~
|
||||
```
|
||||
- Prevent creation of DOC nodes from stream-level comments or tags ([PR #145](https://github.com/biojppm/rapidyaml/pull/145)):
|
||||
```yaml
|
||||
!foo "bar"
|
||||
...
|
||||
# Global
|
||||
%TAG ! tag:example.com,2000:app/
|
||||
---
|
||||
!foo "bar"
|
||||
```
|
||||
was parsed as
|
||||
```yaml
|
||||
---
|
||||
!foo "bar"
|
||||
---
|
||||
# notice the empty doc in here
|
||||
---
|
||||
!foo "bar"
|
||||
```
|
||||
and it is now correctly parsed as
|
||||
```yaml
|
||||
---
|
||||
!foo "bar"
|
||||
---
|
||||
!foo "bar"
|
||||
```
|
||||
(other than the known limitation that ryml does not do tag lookup).
|
||||
|
||||
|
||||
#### General
|
||||
|
||||
- Fix [#147](https://github.com/biojppm/rapidyaml/issues/147): serialize/deserialize special float values `.nan`, `.inf`, `-.inf` ([PR #149](https://github.com/biojppm/rapidyaml/pull/149))
|
||||
- Fix [#142](https://github.com/biojppm/rapidyaml/issues/142): `preprocess_json()`: ensure quoted ranges are skipped when slurping containers
|
||||
- Ensure error macros expand to a single statement ([PR #141](https://github.com/biojppm/rapidyaml/pull/141))
|
||||
- Update c4core to [0.1.4](https://github.com/biojppm/c4core/releases/tag/v0.1.4)
|
||||
|
||||
|
||||
### Special thanks
|
||||
|
||||
- @Gei0r
|
||||
|
1
3rdparty/rapidyaml/changelog/0.2.2.md
vendored
1
3rdparty/rapidyaml/changelog/0.2.2.md
vendored
@ -1 +0,0 @@
|
||||
Yank python package 0.2.1, was accidentally created while iterating the PyPI submission from the Github action. This release does not add any change, and is functionally the same as [0.2.1](https://github.com/biojppm/rapidyaml/releases/tag/v0.2.1).
|
285
3rdparty/rapidyaml/changelog/0.2.3.md
vendored
285
3rdparty/rapidyaml/changelog/0.2.3.md
vendored
@ -1,285 +0,0 @@
|
||||
This release is focused on bug fixes and compliance with the [YAML test suite](https://github.com/yaml/yaml-test-suite).
|
||||
|
||||
### New features
|
||||
- Add support for CPU architectures aarch64, ppc64le, s390x.
|
||||
- Update c4core to [0.1.7](https://github.com/biojppm/c4core/releases/tag/v0.1.7)
|
||||
- `Tree` and `NodeRef`: add document getter `doc()` and `docref()`
|
||||
```c++
|
||||
Tree tree = parse(R"(---
|
||||
doc0
|
||||
---
|
||||
doc1
|
||||
)");
|
||||
NodeRef stream = t.rootref();
|
||||
assert(stream.is_stream());
|
||||
// tree.doc(i): get the index of the i-th doc node.
|
||||
// Equivalent to tree.child(tree.root_id(), i)
|
||||
assert(tree.doc(0) == 1u);
|
||||
assert(tree.doc(1) == 2u);
|
||||
// tree.docref(i), same as above, return NodeRef
|
||||
assert(tree.docref(0).val() == "doc0");
|
||||
assert(tree.docref(1).val() == "doc1");
|
||||
// stream.doc(i), same as above, given NodeRef
|
||||
assert(stream.doc(0).val() == "doc0");
|
||||
assert(stream.doc(1).val() == "doc1");
|
||||
```
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fix compilation with `C4CORE_NO_FAST_FLOAT` ([PR #163](https://github.com/biojppm/rapidyaml/pull/163))
|
||||
|
||||
#### Flow maps
|
||||
|
||||
- Fix parse of multiline plain scalars inside flow maps ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
# test case UT92
|
||||
# all parsed as "matches %": 20
|
||||
- { matches
|
||||
% : 20 }
|
||||
- { matches
|
||||
%: 20 }
|
||||
- { matches
|
||||
%:
|
||||
20 }
|
||||
```
|
||||
|
||||
|
||||
#### Tags
|
||||
|
||||
- Fix parsing of tags followed by comments in sequences ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
# test case 735Y
|
||||
- !!map # Block collection
|
||||
foo : bar
|
||||
```
|
||||
|
||||
#### Quoted scalars
|
||||
- Fix filtering of tab characters in quoted scalars ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
---
|
||||
# test case 5GBF
|
||||
"Empty line
|
||||
<TAB>
|
||||
as a line feed"
|
||||
# now correctly parsed as "Empty line\nas a line feed"
|
||||
---
|
||||
# test case PRH3
|
||||
' 1st non-empty
|
||||
|
||||
<SPC>2nd non-empty<SPC>
|
||||
<TAB>3rd non-empty '
|
||||
# now correctly parsed as " 1st non-empty\n2nd non-empty 3rd non-empty "
|
||||
```
|
||||
- Fix filtering of backslash characters in double-quoted scalars ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
# test cases NP9H, Q8AD
|
||||
"folded<SPC>
|
||||
to a space,<TAB>
|
||||
<SPC>
|
||||
to a line feed, or <TAB>\
|
||||
\ <TAB>non-content"
|
||||
# now correctly parsed as "folded to a space,\nto a line feed, or \t \tnon-content"
|
||||
```
|
||||
- Ensure filtering of multiline quoted scalars ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
# all scalars now correctly parsed as "quoted string",
|
||||
# both for double and single quotes
|
||||
---
|
||||
"quoted
|
||||
string"
|
||||
--- "quoted
|
||||
string"
|
||||
---
|
||||
- "quoted
|
||||
string"
|
||||
---
|
||||
- "quoted
|
||||
string"
|
||||
---
|
||||
"quoted
|
||||
string": "quoted
|
||||
string"
|
||||
---
|
||||
"quoted
|
||||
string": "quoted
|
||||
string"
|
||||
```
|
||||
|
||||
|
||||
#### Block scalars
|
||||
- Ensure no newlines are added when emitting block scalars ([PR #161](https://github.com/biojppm/rapidyaml/pull/161))
|
||||
- Fix parsing of block spec with both chomping and indentation: chomping may come before or after the indentation ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
# the block scalar specs below now have the same effect.
|
||||
# test cases: D83L, P2AD
|
||||
- |2-
|
||||
explicit indent and chomp
|
||||
- |-2
|
||||
chomp and explicit indent
|
||||
```
|
||||
- Fix [inference of block indentation](https://yaml.org/spec/1.2.2/#8111-block-indentation-indicator) with leading blank lines ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
# test cases: 4QFQ, 7T8X
|
||||
- >
|
||||
|
||||
|
||||
# child1
|
||||
# parsed as "\n\n child1"
|
||||
--- # test case DWX9
|
||||
|
|
||||
|
||||
|
||||
literal
|
||||
|
||||
|
||||
text
|
||||
|
||||
# Comment
|
||||
# parsed as "\n\nliteral\n \n\ntext\n"
|
||||
```
|
||||
- Fix parsing of same-indentation block scalars ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
# test case W4TN
|
||||
# all docs have the same value: "%!PS-Adobe-2.0"
|
||||
--- |
|
||||
%!PS-Adobe-2.0
|
||||
...
|
||||
--- >
|
||||
%!PS-Adobe-2.0
|
||||
...
|
||||
--- |
|
||||
%!PS-Adobe-2.0
|
||||
...
|
||||
--- >
|
||||
%!PS-Adobe-2.0
|
||||
...
|
||||
--- |
|
||||
%!PS-Adobe-2.0
|
||||
--- >
|
||||
%!PS-Adobe-2.0
|
||||
--- |
|
||||
%!PS-Adobe-2.0
|
||||
--- >
|
||||
%!PS-Adobe-2.0
|
||||
```
|
||||
- Folded block scalars: fix folding of newlines at the border of indented parts ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
# test case 6VJK
|
||||
# now correctly parsed as "Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n"
|
||||
>
|
||||
Sammy Sosa completed another
|
||||
fine season with great stats.
|
||||
|
||||
63 Home Runs
|
||||
0.288 Batting Average
|
||||
|
||||
What a year!
|
||||
---
|
||||
# test case MJS9
|
||||
# now correctly parsed as "foo \n\n \t bar\n\nbaz\n"
|
||||
>
|
||||
foo<SPC>
|
||||
<SPC>
|
||||
<SPC><TAB><SPC>bar
|
||||
|
||||
baz
|
||||
```
|
||||
- Folded block scalars: fix folding of newlines when the indented part is at the begining of the scalar ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
# test case F6MC
|
||||
a: >2
|
||||
more indented
|
||||
regular
|
||||
# parsed as a: " more indented\nregular\n"
|
||||
b: >2
|
||||
|
||||
|
||||
more indented
|
||||
regular
|
||||
# parsed as b: "\n\n more indented\nregular\n"
|
||||
```
|
||||
|
||||
#### Plain scalars
|
||||
- Fix parsing of whitespace within plain scalars ([PR #161](https://github.com/biojppm/rapidyaml/pull/161)):
|
||||
```yaml
|
||||
---
|
||||
# test case NB6Z
|
||||
key:
|
||||
value
|
||||
with
|
||||
|
||||
tabs
|
||||
tabs
|
||||
|
||||
foo
|
||||
|
||||
bar
|
||||
baz
|
||||
|
||||
# is now correctly parsed as "value with\ntabs tabs\nfoo\nbar baz"
|
||||
---
|
||||
# test case 9YRD, EX5H (trailing whitespace)
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
|
||||
e
|
||||
# is now correctly parsed as "a b c d\ne"
|
||||
```
|
||||
- Fix parsing of unindented plain scalars at the root level scope ([PR #161](https://github.com/biojppm/rapidyaml/pull/161))
|
||||
```yaml
|
||||
--- # this parsed
|
||||
Bare
|
||||
scalar
|
||||
is indented
|
||||
# was correctly parsed as "Bare scalar is indented"
|
||||
--- # but this failed to parse successfully:
|
||||
Bare
|
||||
scalar
|
||||
is not indented
|
||||
# is now correctly parsed as "Bare scalar is not indented"
|
||||
--- # test case NB6Z
|
||||
value
|
||||
with
|
||||
|
||||
tabs
|
||||
tabs
|
||||
|
||||
foo
|
||||
|
||||
bar
|
||||
baz
|
||||
|
||||
# now correctly parsed as "value with\ntabs tabs\nfoo\nbar baz"
|
||||
---
|
||||
--- # test cases EXG3, 82AN
|
||||
---word1
|
||||
word2
|
||||
# now correctly parsed as "---word1 word2"
|
||||
```
|
||||
- Fix parsing of comments within plain scalars
|
||||
```yaml
|
||||
# test case 7TMG
|
||||
--- # now correctly parsed as "word1"
|
||||
word1
|
||||
# comment
|
||||
--- # now correctly parsed as [word1, word2]
|
||||
[ word1
|
||||
# comment
|
||||
, word2]
|
||||
```
|
||||
|
||||
#### Python API
|
||||
- Add missing node predicates in SWIG API definition ([PR #166](https://github.com/biojppm/rapidyaml/pull/166)):
|
||||
- `is_anchor_or_ref()`
|
||||
- `is_key_quoted()`
|
||||
- `is_val_quoted()`
|
||||
- `is_quoted()`
|
||||
|
||||
|
||||
### Thanks
|
||||
|
||||
--- @mbs-c
|
||||
--- @simu
|
||||
--- @QuellaZhang
|
104
3rdparty/rapidyaml/changelog/0.3.0.md
vendored
104
3rdparty/rapidyaml/changelog/0.3.0.md
vendored
@ -1,104 +0,0 @@
|
||||
### Breaking changes
|
||||
|
||||
Despite ryml being still in a non-stable 0.x.y version, considerable effort goes into trying to avoid breaking changes. However, this release has to collect on the [semantic versioning](https://semver.org/) prerogative for breaking changes. This is a needed improvement, so sorry for any nuisance!
|
||||
|
||||
**The allocation and error callback logic was revamped** on the [amalgamation PR](https://github.com/biojppm/rapidyaml/pull/172). Now trees and parsers receive (and store) a full `ryml::Callbacks` object instead of the (now removed) `ryml::Allocator` which had a pointer to a (now removed) `ryml::MemoryResourceCallbacks`, which was a (now removed) `ryml::MemoryResource`. To be clear, the `Callbacks` class is unchanged, other than removing some unneeded helper methods.
|
||||
|
||||
These changes were motivated by unfortunate name clashes between `c4::Allocator/ryml::Allocator` and `c4::MemoryResource/ryml::MemoryResource`, occurring if `<c4/allocator.hpp>` or `<c4/memory_resource.hpp>` were included before `<c4/yml/common.hpp>`. They also significantly simplify this part of the API, making it really easier to understand.
|
||||
|
||||
As a consequence of the above changes, the global memory resource getters and setters for ryml were also removed: `ryml::get_memory_resource()/ryml::set_memory_resource()`.
|
||||
|
||||
Here's an example of the required changes in client code. First the old client code (from the quickstart):
|
||||
|
||||
```c++
|
||||
struct PerTreeMemoryExample : public ryml::MemoryResource
|
||||
{
|
||||
void *allocate(size_t len, void * hint) override;
|
||||
void free(void *mem, size_t len) override;
|
||||
};
|
||||
|
||||
PerTreeMemoryExample mrp;
|
||||
PerTreeMemoryExample mr1;
|
||||
PerTreeMemoryExample mr2;
|
||||
|
||||
ryml::Parser parser = {ryml::Allocator(&mrp)};
|
||||
ryml::Tree tree1 = {ryml::Allocator(&mr1)};
|
||||
ryml::Tree tree2 = {ryml::Allocator(&mr2)};
|
||||
```
|
||||
|
||||
Should now be rewritten to:
|
||||
|
||||
```c++
|
||||
struct PerTreeMemoryExample
|
||||
{
|
||||
ryml::Callbacks callbacks() const; // helper to create the callbacks
|
||||
};
|
||||
|
||||
PerTreeMemoryExample mrp;
|
||||
PerTreeMemoryExample mr1;
|
||||
PerTreeMemoryExample mr2;
|
||||
|
||||
ryml::Parser parser = {mrp.callbacks()};
|
||||
ryml::Tree tree1 = {mr1.callbacks()};
|
||||
ryml::Tree tree2 = {mr2.callbacks()};
|
||||
```
|
||||
|
||||
|
||||
### New features
|
||||
- Add amalgamation into a single header file ([PR #172](https://github.com/biojppm/rapidyaml/pull/172)):
|
||||
- The amalgamated header will be available together with the deliverables from each release.
|
||||
- To generate the amalgamated header:
|
||||
```console
|
||||
$ python tools/amalgamate.py ryml_all.hpp
|
||||
```
|
||||
- To use the amalgamated header:
|
||||
- Include at will in any header of your project.
|
||||
- In one - and only one - of your project source files, `#define RYML_SINGLE_HDR_DEFINE_NOW` and then `#include <ryml_all.hpp>`. This will enable the function and class definitions in the header file. For example, here's a sample program:
|
||||
```c++
|
||||
#include <iostream>
|
||||
#define RYML_SINGLE_HDR_DEFINE_NOW // do this before the include
|
||||
#include <ryml_all.hpp>
|
||||
int main()
|
||||
{
|
||||
auto tree = ryml::parse("{foo: bar}");
|
||||
std::cout << tree["foo"].val() << "\n";
|
||||
}
|
||||
```
|
||||
- Add `Tree::change_type()` and `NodeRef::change_type()` ([PR #171](https://github.com/biojppm/rapidyaml/pull/171)):
|
||||
```c++
|
||||
// clears a node and sets its type to a different type (one of `VAL`, `SEQ`, `MAP`):
|
||||
Tree t = parse("{keyval0: val0, keyval1: val1, keyval2: val2}");
|
||||
t[0].change_type(VAL);
|
||||
t[1].change_type(MAP);
|
||||
t[2].change_type(SEQ);
|
||||
Tree expected = parse("{keyval0: val0, keyval1: {}, keyval2: []}");
|
||||
assert(emitrs<std::string>(t) == emitrs<std::string>(expected));
|
||||
```
|
||||
- Add support for compilation with emscripten (WebAssembly+javascript) ([PR #176](https://github.com/biojppm/rapidyaml/pull/176)).
|
||||
|
||||
### Fixes
|
||||
|
||||
- Take block literal indentation as relative to current indentation level, rather than as an absolute indentation level ([PR #178](https://github.com/biojppm/rapidyaml/pull/178)):
|
||||
```yaml
|
||||
foo:
|
||||
- |
|
||||
child0
|
||||
- |2
|
||||
child2 # indentation is 4, not 2
|
||||
```
|
||||
- Fix parsing when seq member maps start without a key ([PR #178](https://github.com/biojppm/rapidyaml/pull/178)):
|
||||
```yaml
|
||||
# previously this resulted in a parse error
|
||||
- - : empty key
|
||||
- - : another empty key
|
||||
```
|
||||
- Prefer passing `substr` and `csubstr` by value instead of const reference ([PR #171](https://github.com/biojppm/rapidyaml/pull/171))
|
||||
- Fix [#173](https://github.com/biojppm/rapidyaml/issues/173): add alias target `ryml::ryml` ([PR #174](https://github.com/biojppm/rapidyaml/pull/174))
|
||||
- Speedup compilation of tests by removing linking with yaml-cpp and libyaml. ([PR #177](https://github.com/biojppm/rapidyaml/pull/177))
|
||||
- Fix [c4core#53](https://github.com/biojppm/c4core/issues/53): cmake install targets were missing call to `export()` ([PR #179](https://github.com/biojppm/c4core/pull/179)).
|
||||
- Add missing export to `Tree` ([PR #181](https://github.com/biojppm/c4core/pull/181)).
|
||||
|
||||
|
||||
### Thanks
|
||||
|
||||
- @aviktorov
|
229
3rdparty/rapidyaml/changelog/0.4.0.md
vendored
229
3rdparty/rapidyaml/changelog/0.4.0.md
vendored
@ -1,229 +0,0 @@
|
||||
This release improves compliance with the [YAML test suite](https://github.com/yaml/yaml-test-suite/) (thanks @ingydotnet and @perlpunk for extensive and helpful cooperation), and adds node location tracking using the parser.
|
||||
|
||||
|
||||
### Breaking changes
|
||||
|
||||
As part of the [new feature to track source locations](https://github.com/biojppm/rapidyaml/pull/168), opportunity was taken to address a number of pre-existing API issues. These changes consisted of:
|
||||
|
||||
- Deprecate `c4::yml::parse()` and `c4::yml::Parser::parse()` overloads; all these functions will be removed in short order. Until removal, any call from client code will trigger a compiler warning.
|
||||
- Add `parse()` alternatives, either `parse_in_place()` or `parse_in_arena()`:
|
||||
- `parse_in_place()` receives only `substr` buffers, ie mutable YAML source buffers. Trying to pass a `csubstr` buffer to `parse_in_place()` will cause a compile error:
|
||||
```c++
|
||||
substr readwrite = /*...*/;
|
||||
Tree tree = parse_in_place(readwrite); // OK
|
||||
|
||||
csubstr readonly = /*...*/;
|
||||
Tree tree = parse_in_place(readonly); // compile error
|
||||
```
|
||||
- `parse_in_arena()` receives only `csubstr` buffers, ie immutable YAML source buffers. Prior to parsing, the buffer is copied to the tree's arena, then the copy is parsed in place. Because `parse_in_arena()` is meant for immutable buffers, overloads receiving a `substr` YAML buffer are now declared but marked deprecated, and intentionally left undefined, such that calling `parse_in_arena()` with a `substr` will cause a linker error as well as a compiler warning.
|
||||
```c++
|
||||
substr readwrite = /*...*/;
|
||||
Tree tree = parse_in_arena(readwrite); // compile warning+linker error
|
||||
```
|
||||
This is to prevent an accidental extra copy of the mutable source buffer to the tree's arena: `substr` is implicitly convertible to `csubstr`. If you really intend to parse an originally mutable buffer in the tree's arena, convert it first explicitly to immutable by assigning the `substr` to a `csubstr` prior to calling `parse_in_arena()`:
|
||||
```c++
|
||||
substr readwrite = /*...*/;
|
||||
csubstr readonly = readwrite; // ok
|
||||
Tree tree = parse_in_arena(readonly); // ok
|
||||
```
|
||||
This problem does not occur with `parse_in_place()` because `csubstr` is not implicitly convertible to `substr`.
|
||||
- In the python API, `ryml.parse()` was removed and not just deprecated; the `parse_in_arena()` and `parse_in_place()` now replace this.
|
||||
- `Callbacks`: changed behavior in `Parser` and `Tree`:
|
||||
- When a tree is copy-constructed or move-constructed to another, the receiving tree will start with the callbacks of the original.
|
||||
- When a tree is copy-assigned or move-assigned to another, the receiving tree will now change its callbacks to the original.
|
||||
- When a parser creates a new tree, the tree will now use a copy of the parser's callbacks object.
|
||||
- When an existing tree is given directly to the parser, both the tree and the parser now retain their own callback objects; any allocation or error during parsing will go through the respective callback object.
|
||||
|
||||
|
||||
### New features
|
||||
|
||||
- Add tracking of source code locations. This is useful for reporting semantic errors after the parsing phase (ie where the YAML is syntatically valid and parsing is successful, but the tree contents are semantically invalid). The locations can be obtained lazily from the parser when the first location is queried:
|
||||
```c++
|
||||
// To obtain locations, use of the parser is needed:
|
||||
ryml::Parser parser;
|
||||
ryml::Tree tree = parser.parse_in_arena("source.yml", R"({
|
||||
aa: contents,
|
||||
foo: [one, [two, three]]
|
||||
})");
|
||||
// After parsing, on the first call to obtain a location,
|
||||
// the parser will cache a lookup structure to accelerate
|
||||
// tracking the location of a node, with complexity
|
||||
// O(numchars(srcbuffer)). Then it will do the lookup, with
|
||||
// complexity O(log(numlines(srcbuffer))).
|
||||
ryml::Location loc = parser.location(tree.rootref());
|
||||
assert(parser.location_contents(loc).begins_with("{"));
|
||||
// note the location members are zero-based:
|
||||
assert(loc.offset == 0u);
|
||||
assert(loc.line == 0u);
|
||||
assert(loc.col == 0u);
|
||||
// On the next call to location(), the accelerator is reused
|
||||
// and only the lookup is done.
|
||||
loc = parser.location(tree["aa"]);
|
||||
assert(parser.location_contents(loc).begins_with("aa"));
|
||||
assert(loc.offset == 2u);
|
||||
assert(loc.line == 1u);
|
||||
assert(loc.col == 0u);
|
||||
// KEYSEQ in flow style: points at the key
|
||||
loc = parser.location(tree["foo"]);
|
||||
assert(parser.location_contents(loc).begins_with("foo"));
|
||||
assert(loc.offset == 16u);
|
||||
assert(loc.line == 2u);
|
||||
assert(loc.col == 0u);
|
||||
loc = parser.location(tree["foo"][0]);
|
||||
assert(parser.location_contents(loc).begins_with("one"));
|
||||
assert(loc.line == 2u);
|
||||
assert(loc.col == 6u);
|
||||
// SEQ in flow style: location points at the opening '[' (there's no key)
|
||||
loc = parser.location(tree["foo"][1]);
|
||||
assert(parser.location_contents(loc).begins_with("["));
|
||||
assert(loc.line == 2u);
|
||||
assert(loc.col == 11u);
|
||||
loc = parser.location(tree["foo"][1][0]);
|
||||
assert(parser.location_contents(loc).begins_with("two"));
|
||||
assert(loc.line == 2u);
|
||||
assert(loc.col == 12u);
|
||||
loc = parser.location(tree["foo"][1][1]);
|
||||
assert(parser.location_contents(loc).begins_with("three"));
|
||||
assert(loc.line == 2u);
|
||||
assert(loc.col == 17u);
|
||||
// NOTE: reusing the parser with a new YAML source buffer
|
||||
// will invalidate the accelerator.
|
||||
```
|
||||
See more details in the [quickstart sample](https://github.com/biojppm/rapidyaml/blob/bfb073265abf8c58bbeeeed7fb43270e9205c71c/samples/quickstart.cpp#L3759). Thanks to @cschreib for submitting a working example proving how simple it could be to achieve this.
|
||||
- `Parser`:
|
||||
- add `source()` and `filename()` to get the latest buffer and filename to be parsed
|
||||
- add `callbacks()` to get the parser's callbacks
|
||||
- Add `from_tag_long()` and `normalize_tag_long()`:
|
||||
```c++
|
||||
assert(from_tag_long(TAG_MAP) == "<tag:yaml.org,2002:map>");
|
||||
assert(normalize_tag_long("!!map") == "<tag:yaml.org,2002:map>");
|
||||
```
|
||||
- Add an experimental API to resolve tags based on the tree's tag directives. This API is still imature and will likely be subject to changes, so we won't document it yet.
|
||||
- Regarding emit styles (see issue [#37](https://github.com/biojppm/rapidyaml/issues/37)): add an experimental API to force flow/block style on container nodes, as well as block-literal/block-folded/double-quoted/single-quoted/plain styles on scalar nodes. This API is also immature and will likely be subject to changes, so we won't document it yet. But if you are desperate for this functionality, the new facilities will let you go further.
|
||||
- Add preliminary support for bare-metal ARM architectures, with CI tests pending implementation of QEMU action. ([#193](https://github.com/biojppm/rapidyaml/issues/193), [c4core#63](https://github.com/biojppm/c4core/issues/63)).
|
||||
- Add preliminary support for RISC-V architectures, with CI tests pending availability of RISC-V based github actions. ([c4core#69](https://github.com/biojppm/c4core/pulls/69)).
|
||||
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fix edge cases of parsing of explicit keys (ie keys after `?`) ([PR#212](https://github.com/biojppm/rapidyaml/pulls/212)):
|
||||
```yaml
|
||||
# all these were fixed:
|
||||
? : # empty
|
||||
? explicit key # this comment was not parsed correctly
|
||||
? # trailing empty key was not added to the map
|
||||
```
|
||||
- Fixed parsing of tabs used as whitespace tokens after `:` or `-`. This feature [is costly (see some benchmark results here)](https://github.com/biojppm/rapidyaml/pull/211#issuecomment-1030688035) and thus it is disabled by default, and requires defining a macro or cmake option `RYML_WITH_TAB_TOKENS` to enable ([PR#211](https://github.com/biojppm/rapidyaml/pulls/211)).
|
||||
- Allow tab indentation in flow seqs ([PR#215](https://github.com/biojppm/rapidyaml/pulls/215)) (6CA3).
|
||||
- ryml now parses successfully compact JSON code `{"like":"this"}` without any need for preprocessing. This code was not valid YAML 1.1, but was made valid in YAML 1.2. So the `preprocess_json()` functions, used to insert spaces after `:` are no longer necessary and have been removed. If you were using these functions, remove the calls and just pass the original source directly to ryml's parser ([PR#210](https://github.com/biojppm/rapidyaml/pulls/210)).
|
||||
- Fix handling of indentation when parsing block scalars ([PR#210](https://github.com/biojppm/rapidyaml/pulls/210)):
|
||||
```yaml
|
||||
---
|
||||
|
|
||||
hello
|
||||
there
|
||||
---
|
||||
|
|
||||
ciao
|
||||
qua
|
||||
---
|
||||
- |
|
||||
hello
|
||||
there
|
||||
- |
|
||||
ciao
|
||||
qua
|
||||
---
|
||||
foo: |
|
||||
hello
|
||||
there
|
||||
bar: |
|
||||
ciao
|
||||
qua
|
||||
```
|
||||
- Fix parsing of maps when opening a scope with whitespace before the colon ([PR#210](https://github.com/biojppm/rapidyaml/pulls/210)):
|
||||
```yaml
|
||||
foo0 : bar
|
||||
---
|
||||
foo1 : bar # the " :" was causing an assert
|
||||
---
|
||||
foo2 : bar
|
||||
---
|
||||
foo3 : bar
|
||||
---
|
||||
foo4 : bar
|
||||
```
|
||||
- Ensure container keys preserve quote flags when the key is quoted ([PR#210](https://github.com/biojppm/rapidyaml/pulls/210)).
|
||||
- Ensure scalars beginning with `%` are emitted with quotes (([PR#216](https://github.com/biojppm/rapidyaml/pulls/216)).
|
||||
- Fix [#203](https://github.com/biojppm/rapidyaml/issues/203): when parsing, do not convert `null` or `~` to null scalar strings. Now the scalar strings contain the verbatim contents of the original scalar; to query whether a scalar value is null, use `Tree::key_is_null()/val_is_null()` and `NodeRef::key_is_null()/val_is_null()` which return true if it is empty or any of the unquoted strings `~`, `null`, `Null`, or `NULL`. ([PR#207](https://github.com/biojppm/rapidyaml/pulls/207)):
|
||||
- Fix [#205](https://github.com/biojppm/rapidyaml/issues/205): fix parsing of escaped characters in double-quoted strings: `"\\\"\n\r\t\<TAB>\/\<SPC>\0\b\f\a\v\e\_\N\L\P"` ([PR#207](https://github.com/biojppm/rapidyaml/pulls/207)).
|
||||
- Fix [#204](https://github.com/biojppm/rapidyaml/issues/204): add decoding of unicode codepoints `\x` `\u` `\U` in double-quoted scalars:
|
||||
```c++
|
||||
Tree tree = parse_in_arena(R"(["\u263A \xE2\x98\xBA \u2705 \U0001D11E"])");
|
||||
assert(tree[0].val() == "☺ ☺ ✅ 𝄞");
|
||||
```
|
||||
This is mandated by the YAML standard and was missing from ryml ([PR#207](https://github.com/biojppm/rapidyaml/pulls/207)).
|
||||
- Fix emission of nested nodes which are sequences: when these are given as the emit root, the `- ` from the parent node was added ([PR#210](https://github.com/biojppm/rapidyaml/pulls/210)):
|
||||
```c++
|
||||
const ryml::Tree tree = ryml::parse_in_arena(R"(
|
||||
- - Rochefort 10
|
||||
- Busch
|
||||
- Leffe Rituel
|
||||
- - and so
|
||||
- many other
|
||||
- wonderful beers
|
||||
)");
|
||||
// before (error), YAML valid but not expected
|
||||
//assert(ryml::emitrs<std::string>(tree[0][3]) == R"(- - and so
|
||||
// - many other
|
||||
// - wonderful beers
|
||||
//)");
|
||||
// now: YAML valid and expected
|
||||
assert(ryml::emitrs<std::string>(tree[0][3]) == R"(- and so
|
||||
- many other
|
||||
- wonderful beers
|
||||
)");
|
||||
```
|
||||
- Fix parsing of isolated `!`: should be an empty val tagged with `!` (UKK06-02) ([PR#215](https://github.com/biojppm/rapidyaml/pulls/215)).
|
||||
- Fix [#193](https://github.com/biojppm/rapidyaml/issues/193): amalgamated header missing `#include <stdarg.h>` which prevented compilation in bare-metal `arm-none-eabi` ([PR #195](https://github.com/biojppm/rapidyaml/pull/195), requiring also [c4core #64](https://github.com/biojppm/c4core/pull/64)).
|
||||
- Accept `infinity`,`inf` and `nan` as special float values (but not mixed case: eg `InFiNiTy` or `Inf` or `NaN` are not accepted) ([PR #186](https://github.com/biojppm/rapidyaml/pull/186)).
|
||||
- Accept special float values with upper or mixed case: `.Inf`, `.INF`, `.NaN`, `.NAN`. Previously, only low-case `.inf` and `.nan` were accepted ([PR #186](https://github.com/biojppm/rapidyaml/pull/186)).
|
||||
- Accept `null` with upper or mixed case: `Null` or `NULL`. Previously, only low-case `null` was accepted ([PR #186](https://github.com/biojppm/rapidyaml/pull/186)).
|
||||
- Fix [#182](https://github.com/biojppm/rapidyaml/issues/182): add missing export of DLL symbols, and document requirements for compiling shared library from the amalgamated header. [PR #183](https://github.com/biojppm/rapidyaml/pull/183), also [PR c4core#56](https://github.com/biojppm/c4core/pull/56) and [PR c4core#57](https://github.com/biojppm/c4core/pull/57).
|
||||
- Fix [#185](https://github.com/biojppm/rapidyaml/issues/185): compilation failures in earlier Xcode versions ([PR #187](https://github.com/biojppm/rapidyaml/pull/187) and [PR c4core#61](https://github.com/biojppm/c4core/pull/61)):
|
||||
- `c4/substr_fwd.hpp`: (failure in Xcode 12 and earlier) forward declaration for `std::allocator` is inside the `inline namespace __1`, unlike later versions.
|
||||
- `c4/error.hpp`: (failure in debug mode in Xcode 11 and earlier) `__clang_major__` does not mean the same as in the common clang, and as a result the warning `-Wgnu-inline-cpp-without-extern` does not exist there.
|
||||
- Ensure error messages do not wrap around the buffer when the YAML source line is too long ([PR#210](https://github.com/biojppm/rapidyaml/pulls/210)).
|
||||
- Ensure error is emitted on unclosed flow sequence characters eg `[[[` ([PR#210](https://github.com/biojppm/rapidyaml/pulls/210)). Same thing for `[]]`.
|
||||
- Refactor error message building and parser debug logging to use the new dump facilities in c4core ([PR#212](https://github.com/biojppm/rapidyaml/pulls/212)).
|
||||
- Parse: fix read-after-free when duplicating a parser state node, when pushing to the stack requires a stack buffer resize ([PR#210](https://github.com/biojppm/rapidyaml/pulls/210)).
|
||||
- Add support for legacy gcc 4.8 ([PR#217](https://github.com/biojppm/rapidyaml/pulls/217)).
|
||||
|
||||
|
||||
### Improvements
|
||||
|
||||
- Rewrite filtering of scalars to improve parsing performance ([PR #188](https://github.com/biojppm/rapidyaml/pull/188)). Previously the scalar strings were filtered in place, which resulted in quadratic complexity in terms of scalar length. This did not matter for small scalars fitting the cache (which is the more frequent case), but grew in cost as the scalars grew larger. To achieve linearity, the code was changed so that the strings are now filtered to a temporary scratch space in the parser, and copied back to the output buffer after filtering, if any change occurred. The improvements were large for the folded scalars; the table below shows the benchmark results of throughput (MB/s) for several files containing large scalars of a single type:
|
||||
| scalar type | before | after | improvement |
|
||||
|:------------|-------:|-------:|---------:|
|
||||
| block folded | 276 | 561 | 103% |
|
||||
| block literal | 331 | 611 | 85% |
|
||||
| single quoted | 247 | 267 | 8% |
|
||||
| double quoted | 212 | 230 | 8% |
|
||||
| plain (unquoted) | 173 | 186 | 8% |
|
||||
|
||||
The cost for small scalars is negligible, with benchmark improvement in the interval of -2% to 5%, so well within the margin of benchmark variability in a regular OS. In the future, this will be optimized again by copying each character in place, thus completely avoiding the staging arena.
|
||||
- `Callbacks`: add `operator==()` and `operator!=()` ([PR #168](https://github.com/biojppm/rapidyaml/pull/168)).
|
||||
- `Tree`: on error or assert prefer the error callback stored into the tree's current `Callbacks`, rather than the global `Callbacks` ([PR #168](https://github.com/biojppm/rapidyaml/pull/168)).
|
||||
- `detail::stack<>`: improve behavior when assigning from objects `Callbacks`, test all rule-of-5 scenarios ([PR #168](https://github.com/biojppm/rapidyaml/pull/168)).
|
||||
- Improve formatting of error messages.
|
||||
|
||||
|
||||
### Thanks
|
||||
|
||||
- @ingydotnet
|
||||
- @perlpunk
|
||||
- @cschreib
|
||||
- @fargies
|
||||
- @Xeonacid
|
||||
- @aviktorov
|
||||
- @xTVaser
|
11
3rdparty/rapidyaml/compat.cmake
vendored
11
3rdparty/rapidyaml/compat.cmake
vendored
@ -1,11 +0,0 @@
|
||||
|
||||
# old gcc-4.8 support
|
||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND
|
||||
(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 4.8) AND
|
||||
(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0))
|
||||
|
||||
# c++17 compiler required
|
||||
set(C4RYML_BUILD_BENCHMARKS OFF CACHE BOOL "" FORCE)
|
||||
# LLVM required
|
||||
set(C4RYML_SANITIZE OFF CACHE BOOL "" FORCE)
|
||||
endif()
|
@ -1,9 +0,0 @@
|
||||
#ifndef _C4_LOG_HPP_
|
||||
#define _C4_LOG_HPP_
|
||||
|
||||
// FIXME - these are just dumb placeholders
|
||||
#define C4_LOGF_ERR(...) fprintf(stderr, __VA_ARGS__)
|
||||
#define C4_LOGF_WARN(...) fprintf(stderr, __VA_ARGS__)
|
||||
#define C4_LOGP(msg, ...) printf(msg)
|
||||
|
||||
#endif /* _C4_LOG_HPP_ */
|
4091
3rdparty/rapidyaml/ext/c4core/.github/.old/util.hpp
vendored
4091
3rdparty/rapidyaml/ext/c4core/.github/.old/util.hpp
vendored
File diff suppressed because it is too large
Load Diff
@ -1,108 +0,0 @@
|
||||
sudo: required
|
||||
dist: bionic
|
||||
language: cpp
|
||||
env:
|
||||
global:
|
||||
# cmake is installed into /usr/bin
|
||||
- PATH=/usr/bin:/usr/local/bin:$PATH
|
||||
|
||||
# we're not using combination parameters here to ensure that the builds
|
||||
# run in the order we want. (We want to perform the fastest tests first so
|
||||
# failed tests appear as early as possible).
|
||||
|
||||
# NOTE: The compiler setting is unused. It simply makes the display on
|
||||
# travis-ci.org more readable.
|
||||
# WARNING: do not use the name CXX. Travis will ignore the value here.
|
||||
matrix:
|
||||
|
||||
include:
|
||||
# every entry does both 64 and 32 bit
|
||||
# SAN := sanitizers
|
||||
# VG := valgrind
|
||||
|
||||
# coverage: in bionic, lcov is incompatible with g++8 and later
|
||||
- env: CXX_=g++-7 BT=Coverage STD=11
|
||||
- env: CXX_=g++-7 BT=Coverage STD=14
|
||||
- env: CXX_=g++-7 BT=Coverage STD=17
|
||||
|
||||
- env: CXX_=g++-10 BT=Debug STD=11 VG=ON
|
||||
- env: CXX_=g++-10 BT=Release STD=11 VG=ON
|
||||
- env: CXX_=g++-10 BT=Debug STD=14 VG=ON
|
||||
- env: CXX_=g++-10 BT=Release STD=14 VG=ON
|
||||
- env: CXX_=g++-10 BT=Debug STD=17 VG=ON
|
||||
- env: CXX_=g++-10 BT=Release STD=17 VG=ON
|
||||
- env: CXX_=g++-10 BT=Debug STD=20 VG=ON
|
||||
- env: CXX_=g++-10 BT=Release STD=20 VG=ON
|
||||
|
||||
- env: CXX_=clang++-10 BT=Debug STD=11 SAN=ALL VG=ON
|
||||
- env: CXX_=clang++-10 BT=Release STD=11 SAN=ALL VG=ON
|
||||
- env: CXX_=clang++-10 BT=Debug STD=14 SAN=ALL VG=ON
|
||||
- env: CXX_=clang++-10 BT=Release STD=14 SAN=ALL VG=ON
|
||||
- env: CXX_=clang++-10 BT=Debug STD=17 SAN=ALL VG=ON
|
||||
- env: CXX_=clang++-10 BT=Release STD=17 SAN=ALL VG=ON
|
||||
- env: CXX_=clang++-10 BT=Debug STD=20 SAN=ALL VG=ON
|
||||
- env: CXX_=clang++-10 BT=Release STD=20 SAN=ALL VG=ON
|
||||
|
||||
- env: CXX_=g++-9 BT=Debug
|
||||
- env: CXX_=g++-9 BT=Release
|
||||
- env: CXX_=clang++-9 BT=Debug
|
||||
- env: CXX_=clang++-9 BT=Release
|
||||
|
||||
- env: CXX_=g++-8 BT=Debug
|
||||
- env: CXX_=g++-8 BT=Release
|
||||
- env: CXX_=clang++-8 BT=Debug
|
||||
- env: CXX_=clang++-8 BT=Release
|
||||
|
||||
- env: CXX_=g++-7 BT=Debug
|
||||
- env: CXX_=g++-7 BT=Release
|
||||
- env: CXX_=clang++-7 BT=Debug
|
||||
- env: CXX_=clang++-7 BT=Release
|
||||
|
||||
- env: CXX_=g++-6 BT=Debug
|
||||
- env: CXX_=g++-6 BT=Release
|
||||
- env: CXX_=clang++-6.0 BT=Debug
|
||||
- env: CXX_=clang++-6.0 BT=Release
|
||||
|
||||
- env: CXX_=g++-5 BT=Debug
|
||||
- env: CXX_=g++-5 BT=Release
|
||||
- env: CXX_=clang++-5.0 BT=Debug
|
||||
- env: CXX_=clang++-5.0 BT=Release
|
||||
|
||||
# gcc 4.9 is not available in 18.04 -- https://stackoverflow.com/questions/48398475/
|
||||
#- env: CXX_=g++-4.9 BT=Debug
|
||||
#- env: CXX_=g++-4.9 BT=Release
|
||||
- env: CXX_=clang++-4.0 BT=Debug
|
||||
- env: CXX_=clang++-4.0 BT=Release
|
||||
|
||||
- env: CXX_=clang++-3.9 BT=Debug
|
||||
- env: CXX_=clang++-3.9 BT=Release
|
||||
|
||||
# ----------- clang-tidy
|
||||
#
|
||||
- env: CXX_=clang++-9 BT=Debug LINT=clang-tidy
|
||||
- env: CXX_=clang++-9 BT=Release LINT=clang-tidy
|
||||
|
||||
install:
|
||||
- bash -x .ci/travis-install.sh
|
||||
|
||||
script:
|
||||
- source .ci/travis-setenv.sh
|
||||
|
||||
- c4core_cfg_test 64 dynamic
|
||||
- c4core_run_test 64 dynamic
|
||||
|
||||
- c4core_cfg_test 64 static
|
||||
- c4core_run_test 64 static
|
||||
|
||||
- c4core_cfg_test 32 static
|
||||
- c4core_run_test 32 static
|
||||
|
||||
- echo "Success!"
|
||||
|
||||
after_success:
|
||||
- source .ci/travis-setenv.sh
|
||||
# coveralls only accepts one submission per job
|
||||
#- c4core_submit_coverage 32 static coveralls
|
||||
- c4core_submit_coverage 64 static coveralls
|
||||
- c4core_submit_coverage 32 static codecov
|
||||
- c4core_submit_coverage 64 static codecov
|
@ -1,82 +0,0 @@
|
||||
version: '{build}'
|
||||
|
||||
image: Visual Studio 2019
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
|
||||
- {GEN: Visual Studio 16 2019, ARCH: -A x64, CFG: Debug, compiler: msvc-16-seh}
|
||||
- {GEN: Visual Studio 16 2019, ARCH: -A Win32, CFG: Debug, compiler: msvc-16-seh}
|
||||
- {GEN: Visual Studio 16 2019, ARCH: -A x64, CFG: Release, compiler: msvc-16-seh}
|
||||
- {GEN: Visual Studio 16 2019, ARCH: -A Win32, CFG: Release, compiler: msvc-16-seh}
|
||||
- {GEN: Visual Studio 16 2019, ARCH: -A x64, STD: -D C4_CXX_STANDARD=20, CFG: Debug, compiler: msvc-16-seh}
|
||||
- {GEN: Visual Studio 16 2019, ARCH: -A x64, STD: -D C4_CXX_STANDARD=17, CFG: Debug, compiler: msvc-16-seh}
|
||||
- {GEN: Visual Studio 16 2019, ARCH: -A x64, STD: -D C4_CXX_STANDARD=14, CFG: Debug, compiler: msvc-16-seh}
|
||||
|
||||
- {GEN: Visual Studio 15 2017 Win64, CFG: Debug, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017, compiler: msvc-15-seh}
|
||||
- {GEN: Visual Studio 15 2017, CFG: Debug, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017, compiler: msvc-15-seh}
|
||||
- {GEN: Visual Studio 15 2017 Win64, CFG: Release, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017, compiler: msvc-15-seh}
|
||||
- {GEN: Visual Studio 15 2017, CFG: Release, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017, compiler: msvc-15-seh}
|
||||
|
||||
#- compiler: gcc-5.3.0-posix
|
||||
# GEN: "MinGW Makefiles"
|
||||
# cxx_path: 'C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin'
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
# CFG: Quicktest
|
||||
# externconfig: Debug
|
||||
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
install:
|
||||
- git submodule update --init --recursive
|
||||
# git bash conflicts with MinGW makefiles
|
||||
- set "PATH=%PATH:C:\Program Files\Git\usr\bin;=%"
|
||||
- if not "%cxx_path%"=="" (set "PATH=%PATH%;%cxx_path%")
|
||||
- cmake --version
|
||||
|
||||
build_script:
|
||||
- echo %GEN%
|
||||
- echo %ARCH%
|
||||
- echo %CFG%
|
||||
- echo %STD%
|
||||
- set NUM_JOBS=3
|
||||
- set PROJ_DIR=%cd%
|
||||
- set BUILD_DIR=%PROJ_DIR%\build
|
||||
- set INSTALL_DIR=%PROJ_DIR%\install
|
||||
- set C4_EXTERN_DIR=%BUILD_DIR%\extern
|
||||
- md %BUILD_DIR%
|
||||
- md %BUILD_DIR%\static %BUILD_DIR%\shared %BUILD_DIR%\extern
|
||||
- cmake -S %PROJ_DIR% -B %BUILD_DIR%\static %STD% -DC4CORE_DEV=ON -G "%GEN%" %ARCH% "-DCMAKE_BUILD_TYPE=%CFG%" "-DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\static" -DBUILD_SHARED_LIBS=OFF
|
||||
- cmake -S %PROJ_DIR% -B %BUILD_DIR%\shared %STD% -DC4CORE_DEV=ON -G "%GEN%" %ARCH% "-DCMAKE_BUILD_TYPE=%CFG%" "-DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\shared" -DBUILD_SHARED_LIBS=ON
|
||||
- cmake --build %BUILD_DIR%\static --config %configuration% --target test-build --parallel %NUM_JOBS%
|
||||
- cmake --build %BUILD_DIR%\shared --config %configuration% --target test-build --parallel %NUM_JOBS%
|
||||
|
||||
test_script:
|
||||
- cmake --build %BUILD_DIR%\static --config %configuration% --target test
|
||||
- cmake --build %BUILD_DIR%\shared --config %configuration% --target test
|
||||
|
||||
#artifacts:
|
||||
# - path: '_build/CMakeFiles/*.log'
|
||||
# name: logs
|
||||
# - path: '_build/Testing/**/*.xml'
|
||||
# name: test_results
|
||||
|
||||
skip_commits:
|
||||
files:
|
||||
- .gitignore
|
||||
- .travis*
|
||||
- .ci/travis*
|
||||
- .ci/dev_*
|
||||
- .ci/show_*
|
||||
- .ci/vagrant*
|
||||
- .ci/Vagrant*
|
||||
- bm/html/*
|
||||
- doc/*
|
||||
- img/*
|
||||
- CHANGELOG.md
|
||||
- CONTRIBUTING.md
|
||||
- LICENSE.txt
|
||||
- README.*
|
||||
- ROADMAP.*
|
129
3rdparty/rapidyaml/ext/c4core/.github/release.sh
vendored
129
3rdparty/rapidyaml/ext/c4core/.github/release.sh
vendored
@ -1,129 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
# useful to iterate when fixing the release:
|
||||
# ver=0.2.1 ; ( set -x ; git tag -d v$ver ; git push origin :v$ver ) ; (set -x ; set -e ; tbump --only-patch --non-interactive $ver ; git add -u ; git commit --amend --no-edit ; git tag --annotate --message "v$ver" "v$ver" ; git push -f --tags origin )
|
||||
|
||||
|
||||
function c4_release_create()
|
||||
{
|
||||
( \
|
||||
set -euxo pipefail ; \
|
||||
ver=$(_c4_validate_ver $1) ; \
|
||||
branch=$(_c4_validate_branch) ; \
|
||||
c4_release_bump $ver ; \
|
||||
c4_release_commit $ver $branch \
|
||||
)
|
||||
}
|
||||
|
||||
function c4_release_redo()
|
||||
{
|
||||
( \
|
||||
set -euxo pipefail ; \
|
||||
ver=$(_c4_validate_ver $1) ; \
|
||||
branch=$(_c4_validate_branch) ; \
|
||||
c4_release_delete $ver ; \
|
||||
c4_release_bump $ver ; \
|
||||
c4_release_amend $ver $branch \
|
||||
)
|
||||
}
|
||||
|
||||
function c4_release_bump()
|
||||
{
|
||||
( \
|
||||
set -euxo pipefail ; \
|
||||
ver=$(_c4_validate_ver $1) ; \
|
||||
tbump --non-interactive --only-patch $ver \
|
||||
)
|
||||
}
|
||||
|
||||
function c4_release_commit()
|
||||
{
|
||||
( \
|
||||
set -euxo pipefail ; \
|
||||
ver=$(_c4_validate_ver $1) ; \
|
||||
branch=$(_c4_validate_branch) ; \
|
||||
tag=v$ver ; \
|
||||
git add -u ; \
|
||||
git commit -m $tag ; \
|
||||
git tag --annotate --message $tag $tag ; \
|
||||
)
|
||||
}
|
||||
|
||||
function c4_release_amend()
|
||||
{
|
||||
( \
|
||||
set -euxo pipefail ; \
|
||||
ver=$(_c4_validate_ver $1) ; \
|
||||
branch=$(_c4_validate_branch) ; \
|
||||
tag=v$ver ; \
|
||||
git add -u ; \
|
||||
git commit --amend -m $tag ; \
|
||||
git tag --annotate --message $tag $tag ; \
|
||||
)
|
||||
}
|
||||
|
||||
function c4_release_delete()
|
||||
{
|
||||
( \
|
||||
set -euxo pipefail ; \
|
||||
ver=$(_c4_validate_ver $1) ; \
|
||||
git tag -d v$ver ; \
|
||||
git push origin :v$ver \
|
||||
)
|
||||
}
|
||||
|
||||
function c4_release_push()
|
||||
{
|
||||
( \
|
||||
set -euxo pipefail ; \
|
||||
ver=$(_c4_validate_ver $1) ; \
|
||||
branch=$(_c4_validate_branch) ; \
|
||||
tag=v$ver ; \
|
||||
git push origin $branch ; \
|
||||
git push --tags origin $tag \
|
||||
)
|
||||
}
|
||||
|
||||
function c4_release_force_push()
|
||||
{
|
||||
( \
|
||||
set -euxo pipefail ; \
|
||||
ver=$(_c4_validate_ver $1) ; \
|
||||
branch=$(_c4_validate_branch) ; \
|
||||
tag=v$ver ; \
|
||||
git push -f origin $branch ; \
|
||||
git push -f --tags origin $tag \
|
||||
)
|
||||
}
|
||||
|
||||
function _c4_validate_ver()
|
||||
{
|
||||
ver=$1
|
||||
if [ -z "$ver" ] ; then \
|
||||
exit 1
|
||||
fi
|
||||
ver=$(echo $ver | sed "s:v\(.*\):\1:")
|
||||
#sver=$(echo $ver | sed "s:\([0-9]*\.[0-9]*\..[0-9]*\).*:\1:")
|
||||
if [ ! -f changelog/$ver.md ] ; then \
|
||||
if [ -f changelog/current.md ] ; then
|
||||
git mv changelog/current.md changelog/$ver.md
|
||||
touch changelog/current.md
|
||||
git add changelog/current.md
|
||||
else
|
||||
echo "ERROR: could not find changelog/$ver.md or changelog/current.md"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo $ver
|
||||
}
|
||||
|
||||
function _c4_validate_branch()
|
||||
{
|
||||
branch=$(git rev-parse --abbrev-ref HEAD)
|
||||
if [ "$branch" != "master" ] ; then
|
||||
echo "ERROR: release branch must be master"
|
||||
exit 1
|
||||
fi
|
||||
echo $branch
|
||||
}
|
306
3rdparty/rapidyaml/ext/c4core/.github/reqs.sh
vendored
306
3rdparty/rapidyaml/ext/c4core/.github/reqs.sh
vendored
@ -1,306 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -x
|
||||
|
||||
# input environment variables:
|
||||
# OS: the operating system
|
||||
# CXX_: the compiler version. eg, g++-9 or clang++-6.0
|
||||
# BT: the build type
|
||||
# VG: whether to install valgrind
|
||||
# ARM: whether to arm cross-compiler and emulator
|
||||
# GITHUB_WORKFLOW: when run from github
|
||||
# API: whether to install swig
|
||||
# CMANY: whether to install cmany
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
function c4_install_test_requirements()
|
||||
{
|
||||
os=$1
|
||||
case "$os" in
|
||||
ubuntu*)
|
||||
c4_install_test_requirements_ubuntu
|
||||
return 0
|
||||
;;
|
||||
macos*)
|
||||
c4_install_test_requirements_macos
|
||||
return 0
|
||||
;;
|
||||
win*)
|
||||
c4_install_test_requirements_windows
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function c4_install_test_requirements_windows()
|
||||
{
|
||||
if [ "$CMANY" == "ON" ] ; then
|
||||
pip install cmany
|
||||
fi
|
||||
if [ "$API" == "ON" ] ; then
|
||||
choco install swig
|
||||
which swig
|
||||
fi
|
||||
# ensure chocolatey does not override cmake's cpack
|
||||
which cpack
|
||||
choco_cpack="/c/ProgramData/Chocolatey/bin/cpack.exe"
|
||||
if [ -f $choco_cpack ] ; then
|
||||
newname=$(echo $choco_cpack | sed 's:cpack:choco-cpack:')
|
||||
mv -vf $choco_cpack $newname
|
||||
fi
|
||||
which cpack
|
||||
}
|
||||
|
||||
function c4_install_test_requirements_macos()
|
||||
{
|
||||
if [ "$CMANY" == "ON" ] ; then
|
||||
sudo pip3 install cmany
|
||||
fi
|
||||
}
|
||||
|
||||
function c4_install_test_requirements_ubuntu()
|
||||
{
|
||||
APT_PKG="" # all
|
||||
PIP_PKG=""
|
||||
c4_gather_test_requirements_ubuntu
|
||||
echo "apt packages: $APT_PKG"
|
||||
echo "pip packages: $PIP_PKG"
|
||||
c4_install_test_requirements_ubuntu_impl
|
||||
echo 'INSTALL COMPLETE!'
|
||||
}
|
||||
|
||||
|
||||
function c4_install_all_possible_requirements_ubuntu()
|
||||
{
|
||||
export CXX_=all
|
||||
export BT=Coverage
|
||||
APT_PKG="" # all
|
||||
PIP_PKG=""
|
||||
sudo dpkg --add-architecture i386
|
||||
c4_gather_test_requirements_ubuntu
|
||||
_c4_add_arm_compilers
|
||||
echo "apt packages: $APT_PKG"
|
||||
echo "pip packages: $PIP_PKG"
|
||||
c4_install_test_requirements_ubuntu_impl
|
||||
echo 'INSTALL COMPLETE!'
|
||||
}
|
||||
|
||||
|
||||
function c4_gather_test_requirements_ubuntu()
|
||||
{
|
||||
if [ "$GITHUB_WORKFLOW" != "" ] ; then
|
||||
sudo dpkg --add-architecture i386
|
||||
else
|
||||
_add_apt build-essential
|
||||
_add_apt cmake
|
||||
fi
|
||||
|
||||
_add_apt linux-libc-dev:i386
|
||||
_add_apt libc6:i386
|
||||
_add_apt libc6-dev:i386
|
||||
_add_apt libc6-dbg:i386
|
||||
_c4_addlibcxx
|
||||
|
||||
_c4_gather_compilers "$CXX_"
|
||||
|
||||
_add_apt python3-setuptools
|
||||
_add_apt python3-pip
|
||||
|
||||
#_add_apt iwyu
|
||||
#_add_apt cppcheck
|
||||
#_add_pip cpplint
|
||||
# oclint?
|
||||
if [ "$VG" == "ON" ] ; then
|
||||
_add_apt valgrind
|
||||
fi
|
||||
|
||||
if [ "$BT" == "Coverage" ]; then
|
||||
_add_apt lcov
|
||||
_add_apt libffi-dev
|
||||
_add_apt libssl-dev
|
||||
_add_pip requests[security]
|
||||
_add_pip pyopenssl
|
||||
_add_pip ndg-httpsclient
|
||||
_add_pip pyasn1
|
||||
_add_pip cpp-coveralls
|
||||
fi
|
||||
|
||||
if [ "$CMANY" != "" ] ; then
|
||||
_add_pip cmany
|
||||
fi
|
||||
|
||||
case "$CXX_" in
|
||||
arm*)
|
||||
_c4_add_arm_compilers
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
function c4_install_test_requirements_ubuntu_impl()
|
||||
{
|
||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key 2>/dev/null | sudo apt-key add -
|
||||
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
|
||||
sudo -E apt-add-repository --yes 'deb https://apt.kitware.com/ubuntu/ bionic main'
|
||||
sudo -E add-apt-repository --yes ppa:ubuntu-toolchain-r/test
|
||||
|
||||
if [ "$APT_PKG" != "" ] ; then
|
||||
#sudo -E apt-get clean
|
||||
sudo -E apt-get update
|
||||
sudo -E apt-get install -y --force-yes $APT_PKG
|
||||
fi
|
||||
|
||||
if [ "$PIP_PKG" != "" ]; then
|
||||
sudo pip3 install $PIP_PKG
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
function _c4_add_arm_compilers()
|
||||
{
|
||||
# this is going to be deprecated:
|
||||
# https://askubuntu.com/questions/1243252/how-to-install-arm-none-eabi-gdb-on-ubuntu-20-04-lts-focal-fossa
|
||||
sudo -E add-apt-repository --yes ppa:team-gcc-arm-embedded/ppa
|
||||
|
||||
_add_apt gcc-arm-embedded
|
||||
_add_apt g++-arm-linux-gnueabihf
|
||||
_add_apt g++-multilib-arm-linux-gnueabihf
|
||||
_add_apt qemu
|
||||
}
|
||||
|
||||
|
||||
function _c4_gather_compilers()
|
||||
{
|
||||
cxx=$1
|
||||
case $cxx in
|
||||
g++-11 ) _c4_addgcc 11 ;;
|
||||
g++-10 ) _c4_addgcc 10 ;;
|
||||
g++-9 ) _c4_addgcc 9 ;;
|
||||
g++-8 ) _c4_addgcc 8 ;;
|
||||
g++-7 ) _c4_addgcc 7 ;;
|
||||
g++-6 ) _c4_addgcc 6 ;;
|
||||
g++-5 ) _c4_addgcc 5 ;;
|
||||
#g++-4.9 ) _c4_addgcc 4.9 ;; # https://askubuntu.com/questions/1036108/install-gcc-4-9-at-ubuntu-18-04
|
||||
g++-4.8 ) _c4_addgcc 4.8 ;;
|
||||
clang++-12 ) _c4_addclang 12 ;;
|
||||
clang++-11 ) _c4_addclang 11 ;;
|
||||
clang++-10 ) _c4_addclang 10 ;;
|
||||
clang++-9 ) _c4_addclang 9 ;;
|
||||
clang++-8 ) _c4_addclang 8 ;;
|
||||
clang++-7 ) _c4_addclang 7 ;;
|
||||
clang++-6.0) _c4_addclang 6.0 ;;
|
||||
clang++-5.0) _c4_addclang 5.0 ;;
|
||||
clang++-4.0) _c4_addclang 4.0 ;;
|
||||
clang++-3.9) _c4_addclang 3.9 ;;
|
||||
all)
|
||||
all="g++-11 g++-10 g++-9 g++-8 g++-7 g++-6 g++-5 clang++-12 clang++-11 clang++-10 clang++-9 clang++-8 clang++-7 clang++-6.0 clang++-5.0 clang++-4.0 clang++-3.9"
|
||||
echo "installing all compilers: $all"
|
||||
for cxx in $all ; do
|
||||
_c4_gather_compilers $cxx
|
||||
done
|
||||
;;
|
||||
"")
|
||||
# use default compiler
|
||||
;;
|
||||
arm*)
|
||||
;;
|
||||
*)
|
||||
echo "unknown compiler: $cxx"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# add a gcc compiler
|
||||
function _c4_addgcc()
|
||||
{
|
||||
gccversion=$1
|
||||
case $gccversion in
|
||||
5 )
|
||||
_add_apt gcc-5 "deb http://dk.archive.ubuntu.com/ubuntu/ xenial main"
|
||||
_add_apt gcc-5 "deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
_add_apt g++-$gccversion
|
||||
_add_apt g++-$gccversion-multilib
|
||||
_add_apt libstdc++-$gccversion-dev
|
||||
_add_apt lib32stdc++-$gccversion-dev
|
||||
}
|
||||
|
||||
# add a clang compiler
|
||||
function _c4_addclang()
|
||||
{
|
||||
clversion=$1
|
||||
case $clversion in
|
||||
# in 18.04, clang9 and later require PPAs
|
||||
9 | 10 | 11 | 12 )
|
||||
_add_apt clang-$clversion "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-$clversion main"
|
||||
# libstdc++ is required
|
||||
_c4_addgcc 11
|
||||
_c4_addgcc 10
|
||||
_c4_addgcc 9
|
||||
;;
|
||||
*)
|
||||
_add_apt clang-$clversion
|
||||
;;
|
||||
esac
|
||||
_add_apt g++-multilib # this is required for 32 bit https://askubuntu.com/questions/1057341/unable-to-find-stl-headers-in-ubuntu-18-04
|
||||
_add_apt clang-tidy-$clversion
|
||||
}
|
||||
|
||||
# add libc++
|
||||
function _c4_addlibcxx()
|
||||
{
|
||||
_add_apt libc++1
|
||||
_add_apt libc++abi-dev
|
||||
_add_apt libc++-dev
|
||||
_add_apt libc++1:i386
|
||||
_add_apt libc++abi-dev:i386
|
||||
_add_apt libc++-dev:i386
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# add a pip package to the list
|
||||
function _add_pip()
|
||||
{
|
||||
pkgs=$*
|
||||
PIP_PKG="$PIP_PKG $pkgs"
|
||||
echo "adding to pip packages: $pkgs"
|
||||
}
|
||||
|
||||
# add a debian package to the list
|
||||
function _add_apt()
|
||||
{
|
||||
pkgs=$1
|
||||
sourceslist=$2
|
||||
APT_PKG="$APT_PKG $pkgs"
|
||||
echo "adding to apt packages: $pkgs"
|
||||
_add_src "$sourceslist" "# for packages: $pkgs"
|
||||
}
|
||||
|
||||
# add an apt source
|
||||
function _add_src()
|
||||
{
|
||||
sourceslist=$1
|
||||
comment=$2
|
||||
if [ ! -z "$sourceslist" ] ; then
|
||||
echo "adding apt source: $sourceslist"
|
||||
sudo bash -c "cat >> /etc/apt/sources.list <<EOF
|
||||
$comment
|
||||
$sourceslist
|
||||
EOF"
|
||||
#cat /etc/apt/sources.list
|
||||
fi
|
||||
}
|
410
3rdparty/rapidyaml/ext/c4core/.github/setenv.sh
vendored
410
3rdparty/rapidyaml/ext/c4core/.github/setenv.sh
vendored
@ -1,410 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
PROJ_DIR=$(pwd)
|
||||
|
||||
function c4_show_info()
|
||||
{
|
||||
set +x
|
||||
env | sort
|
||||
echo "PROJ_DIR=$PROJ_DIR"
|
||||
echo "PROJ_PFX_TARGET=$PROJ_PFX_TARGET"
|
||||
echo "PROJ_PFX_CMAKE=$PROJ_PFX_CMAKE"
|
||||
echo "CMAKE_FLAGS=$CMAKE_FLAGS"
|
||||
echo "NUM_JOBS_BUILD=$NUM_JOBS_BUILD"
|
||||
echo "GITHUB_WORKSPACE=$GITHUB_WORKSPACE"
|
||||
pwd
|
||||
ls -lFhp
|
||||
echo "BITLINKS=$BITLINKS"
|
||||
for bl in shared64 static64 shared32 static32 ; do
|
||||
if _c4skipbitlink $bl ; then
|
||||
echo "skip $bl"
|
||||
else
|
||||
echo "exec $bl"
|
||||
fi
|
||||
done
|
||||
echo "CXX_=$CXX_"
|
||||
echo "BT=$BT"
|
||||
echo "LINT=$LINT"
|
||||
echo "SAN=$SAN"
|
||||
echo "SAN_ONLY=$SAN"
|
||||
echo "VG=$VG"
|
||||
echo "BM=$BM"
|
||||
echo "STD=$STD"
|
||||
echo "ARM=$ARM"
|
||||
echo "LIBCXX=$LIBCXX"
|
||||
echo "VERBOSE_MAKEFILES=$VERBOSE_MAKEFILES"
|
||||
which cmake
|
||||
cmake --version
|
||||
case "$CXX_" in
|
||||
xcode)
|
||||
# https://gist.github.com/nlutsenko/ee245fbd239087d22137
|
||||
echo "number of cores=$(sysctl -n hw.ncpu)"
|
||||
#defaults read com.apple.dt.xcodebuild | grep -i Number | grep -i Build
|
||||
#defaults read com.apple.dt.Xcode | grep -i Number | grep -i Tasks
|
||||
;;
|
||||
gcc*|g++*|*clang*)
|
||||
echo "number of cores=$(nproc)"
|
||||
$CXX_ --version
|
||||
;;
|
||||
esac
|
||||
set -x
|
||||
git branch
|
||||
git rev-parse HEAD
|
||||
git tag || echo
|
||||
git log -1 --format='%H'
|
||||
}
|
||||
|
||||
function _c4bits()
|
||||
{
|
||||
case "$1" in
|
||||
shared64|static64|arm64) echo 64 ;;
|
||||
shared32|static32|arm32|arm) echo 32 ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
function _c4linktype()
|
||||
{
|
||||
case "$1" in
|
||||
shared64|shared32) echo shared ;;
|
||||
static64|static32) echo static ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
function _c4skipbitlink()
|
||||
{
|
||||
bitlink___=$1
|
||||
if [ -z "$BITLINKS" ] ; then
|
||||
return 1 # return nonzero as failure, meaning DO NOT SKIP
|
||||
fi
|
||||
for bl___ in $BITLINKS ; do
|
||||
if [ "${bl___}" == "${bitlink___}" ] ; then
|
||||
return 1 # return nonzero as failure, meaning DO NOT SKIP
|
||||
fi
|
||||
done
|
||||
return 0 # return nonzero as success, meaning DO SKIP
|
||||
}
|
||||
|
||||
function c4_build_test()
|
||||
{
|
||||
c4_build_target $* test-build
|
||||
}
|
||||
|
||||
function c4_run_test()
|
||||
{
|
||||
c4_run_target $* test
|
||||
}
|
||||
|
||||
function c4_build_target() # runs in parallel
|
||||
{
|
||||
if _c4skipbitlink "$1" ; then return 0 ; fi
|
||||
id=$1
|
||||
target=$2
|
||||
if [ ! -z "$target" ] ; then
|
||||
target="--target $target"
|
||||
fi
|
||||
build_dir=`pwd`/build/$id
|
||||
export CTEST_OUTPUT_ON_FAILURE=1
|
||||
# watchout: the `--parallel` flag to `cmake --build` is broken:
|
||||
# https://discourse.cmake.org/t/parallel-does-not-really-enable-parallel-compiles-with-msbuild/964/10
|
||||
# https://gitlab.kitware.com/cmake/cmake/-/issues/20564
|
||||
cmake --build $build_dir --config $BT $target -- $(_c4_generator_build_flags) $(_c4_parallel_build_flags)
|
||||
}
|
||||
|
||||
function c4_run_target() # does not run in parallel
|
||||
{
|
||||
if _c4skipbitlink "$1" ; then return 0 ; fi
|
||||
id=$1
|
||||
target=$2
|
||||
build_dir=`pwd`/build/$id
|
||||
export CTEST_OUTPUT_ON_FAILURE=1
|
||||
cmake --build $build_dir --config $BT --target $target -- $(_c4_generator_build_flags)
|
||||
}
|
||||
|
||||
function c4_package()
|
||||
{
|
||||
if _c4skipbitlink "$1" ; then return 0 ; fi
|
||||
id=$1
|
||||
generator=$2
|
||||
build_dir=`pwd`/build/$id
|
||||
if [ -z "$generator" ] ; then
|
||||
c4_run_target $id package
|
||||
else
|
||||
( cd $build_dir ; cpack -G $generator )
|
||||
fi
|
||||
}
|
||||
|
||||
function c4_submit_coverage()
|
||||
{
|
||||
if [ "$BT" != "Coverage" ] ; then
|
||||
echo "build type is \"$BT\": no coverage to submit"
|
||||
return 0
|
||||
fi
|
||||
if _c4skipbitlink "$1" ; then return 0 ; fi
|
||||
id=$1
|
||||
coverage_service=$2
|
||||
build_dir=`pwd`/build/$id
|
||||
echo "Submitting coverage data: $build_dir --> $coverage_service"
|
||||
cmake --build $build_dir --config $BT --target ${PROJ_PFX_TARGET}coverage-submit-$coverage_service
|
||||
}
|
||||
|
||||
# WIP
|
||||
function c4_run_static_analysis()
|
||||
{
|
||||
if _c4skipbitlink "$1" ; then return 0 ; fi
|
||||
id=$1
|
||||
linktype=$(_c4linktype $id)
|
||||
build_dir=`pwd`/build/$id
|
||||
# https://blog.kitware.com/static-checks-with-cmake-cdash-iwyu-clang-tidy-lwyu-cpplint-and-cppcheck/
|
||||
pushd $PROJ_DIR
|
||||
}
|
||||
|
||||
function c4_cfg_test()
|
||||
{
|
||||
if _c4skipbitlink "$1" ; then return 0 ; fi
|
||||
id=$1
|
||||
#
|
||||
build_dir=`pwd`/build/$id
|
||||
install_dir=`pwd`/install/$id
|
||||
mkdir -p $build_dir
|
||||
mkdir -p $install_dir
|
||||
#
|
||||
if [ "$TOOLCHAIN" != "" ] ; then
|
||||
toolchain_file=`pwd`/$TOOLCHAIN
|
||||
if [ ! -f "$toolchain_file" ] ; then
|
||||
echo "ERROR: toolchain not found: $toolchain_file"
|
||||
exit 1
|
||||
fi
|
||||
_addcmkflags -DCMAKE_TOOLCHAIN_FILE=$toolchain_file
|
||||
else
|
||||
bits=$(_c4bits $id)
|
||||
linktype=$(_c4linktype $id)
|
||||
case "$linktype" in
|
||||
static) _addcmkflags -DBUILD_SHARED_LIBS=OFF ;;
|
||||
shared) _addcmkflags -DBUILD_SHARED_LIBS=ON ;;
|
||||
*)
|
||||
echo "ERROR: unknown linktype: $linktype"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ "$STD" != "" ] ; then
|
||||
_addcmkflags -DC4_CXX_STANDARD=$STD
|
||||
_addprojflags CXX_STANDARD=$STD
|
||||
fi
|
||||
if [ "$LIBCXX" != "" ] ; then
|
||||
_addprojflags USE_LIBCXX=$LIBCXX
|
||||
fi
|
||||
#
|
||||
if [ "$DEV" != "OFF" ] ; then
|
||||
_addprojflags DEV=ON
|
||||
fi
|
||||
case "$LINT" in
|
||||
all ) _addprojflags LINT=ON LINT_TESTS=ON LINT_CLANG_TIDY=ON LINT_PVS_STUDIO=ON ;;
|
||||
clang-tidy) _addprojflags LINT=ON LINT_TESTS=ON LINT_CLANG_TIDY=ON LINT_PVS_STUDIO=OFF ;;
|
||||
pvs-studio) _addprojflags LINT=ON LINT_TESTS=ON LINT_CLANG_TIDY=OFF LINT_PVS_STUDIO=ON ;;
|
||||
* ) _addprojflags LINT=OFF ;;
|
||||
esac
|
||||
case "$SAN" in
|
||||
ALL) _addprojflags SANITIZE=ON ;;
|
||||
A ) _addprojflags SANITIZE=ON ASAN=ON TSAN=OFF MSAN=OFF UBSAN=OFF ;;
|
||||
T ) _addprojflags SANITIZE=ON ASAN=OFF TSAN=ON MSAN=OFF UBSAN=OFF ;;
|
||||
M ) _addprojflags SANITIZE=ON ASAN=OFF TSAN=OFF MSAN=ON UBSAN=OFF ;;
|
||||
UB ) _addprojflags SANITIZE=ON ASAN=OFF TSAN=OFF MSAN=OFF UBSAN=ON ;;
|
||||
* ) _addprojflags SANITIZE=OFF ;;
|
||||
esac
|
||||
case "$SAN_ONLY" in
|
||||
ON) _addprojflags SANITIZE_ONLY=ON ;;
|
||||
* ) _addprojflags SANITIZE_ONLY=OFF ;;
|
||||
esac
|
||||
case "$VG" in
|
||||
ON) _addprojflags VALGRIND=ON VALGRIND_SGCHECK=OFF ;; # FIXME SGCHECK should be ON
|
||||
* ) _addprojflags VALGRIND=OFF VALGRIND_SGCHECK=OFF ;;
|
||||
esac
|
||||
case "$BM" in
|
||||
ON) _addprojflags BUILD_BENCHMARKS=ON ;;
|
||||
* ) _addprojflags BUILD_BENCHMARKS=OFF ;;
|
||||
esac
|
||||
if [ "$BT" == "Coverage" ] ; then
|
||||
# the coverage repo tokens can be set in the travis environment:
|
||||
# export CODECOV_TOKEN=.......
|
||||
# export COVERALLS_REPO_TOKEN=.......
|
||||
_addprojflags COVERAGE_CODECOV=ON COVERAGE_CODECOV_SILENT=ON
|
||||
_addprojflags COVERAGE_COVERALLS=ON COVERAGE_COVERALLS_SILENT=ON
|
||||
fi
|
||||
if [ ! -z "$VERBOSE_MAKEFILES" ] ; then
|
||||
_addcmkflags -DCMAKE_VERBOSE_MAKEFILES=$VERBOSE_MAKEFILES
|
||||
fi
|
||||
_addcmkflags -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
|
||||
if [ ! -z "$CMAKE_FLAGS" ] ; then
|
||||
_addcmkflags $CMAKE_FLAGS
|
||||
fi
|
||||
|
||||
echo "building with additional cmake flags: $CMFLAGS"
|
||||
|
||||
export C4_EXTERN_DIR=`pwd`/build/extern
|
||||
mkdir -p $C4_EXTERN_DIR
|
||||
|
||||
cmake --version
|
||||
pwd
|
||||
|
||||
#
|
||||
# bash quote handling is a fiasco, and I could not find a way of storing
|
||||
# quoted strings in variables and then expand the variables with correct quotes
|
||||
# so we have to do this precious jewell of chicanery:
|
||||
case "$CXX_" in
|
||||
vs2019)
|
||||
g='Visual Studio 16 2019'
|
||||
case "$bits" in
|
||||
64) a=x64 ;;
|
||||
32) a=Win32 ;;
|
||||
esac
|
||||
cmake -S $PROJ_DIR -B $build_dir -DCMAKE_INSTALL_PREFIX="$install_dir" \
|
||||
-DCMAKE_BUILD_TYPE=$BT -G "$g" -A $a $CMFLAGS
|
||||
;;
|
||||
vs2017)
|
||||
case "$bits" in
|
||||
64) g="Visual Studio 15 2017 Win64" ;;
|
||||
32) g="Visual Studio 15 2017" ;;
|
||||
esac
|
||||
cmake -S $PROJ_DIR -B $build_dir -DCMAKE_INSTALL_PREFIX="$install_dir" \
|
||||
-DCMAKE_BUILD_TYPE=$BT -G "$g" $CMFLAGS
|
||||
;;
|
||||
xcode)
|
||||
g=Xcode
|
||||
case "$bits" in
|
||||
64) a="x86_64" ;;
|
||||
32) a="i386"
|
||||
exit 1 # i386 is deprecated in xcode
|
||||
;;
|
||||
esac
|
||||
cmake -S $PROJ_DIR -B $build_dir -DCMAKE_INSTALL_PREFIX="$install_dir" \
|
||||
-DCMAKE_BUILD_TYPE=$BT -G "$g" -DCMAKE_OSX_ARCHITECTURES=$a $CMFLAGS
|
||||
;;
|
||||
arm*|"") # make sure arm* comes before *g++ or *gcc*
|
||||
cmake -S $PROJ_DIR -B $build_dir -DCMAKE_INSTALL_PREFIX="$install_dir" \
|
||||
-DCMAKE_BUILD_TYPE=$BT $CMFLAGS
|
||||
;;
|
||||
*g++*|*gcc*|*clang*)
|
||||
export CC_=$(echo "$CXX_" | sed 's:clang++:clang:g' | sed 's:g++:gcc:g')
|
||||
_c4_choose_clang_tidy $CXX_
|
||||
cmake -S $PROJ_DIR -B $build_dir -DCMAKE_INSTALL_PREFIX="$install_dir" \
|
||||
-DCMAKE_BUILD_TYPE=$BT $CMFLAGS \
|
||||
-DCMAKE_C_COMPILER=$CC_ -DCMAKE_CXX_COMPILER=$CXX_ \
|
||||
-DCMAKE_C_FLAGS="-std=c99 -m$bits" -DCMAKE_CXX_FLAGS="-m$bits"
|
||||
cmake --build $build_dir --target help | sed 1d | sort
|
||||
;;
|
||||
em++)
|
||||
emcmake cmake -S $PROJ_DIR -B $build_dir -DCMAKE_INSTALL_PREFIX="$install_dir" \
|
||||
-DCMAKE_BUILD_TYPE=$BT $CMFLAGS -DCMAKE_CXX_FLAGS="-s DISABLE_EXCEPTION_CATCHING=0"
|
||||
;;
|
||||
*)
|
||||
echo "unknown compiler"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function _c4_choose_clang_tidy()
|
||||
{
|
||||
cxx=$1
|
||||
# only for clang compilers.
|
||||
case $cxx in
|
||||
clang*)
|
||||
# try with version first
|
||||
clang_tidy_ver=$(echo $cxx | sed "s:++:-tidy:")
|
||||
clang_tidy=$(echo $cxx | sed "s:++.*:-tidy:")
|
||||
for n in $clang_tidy_ver $clang_tidy ; do
|
||||
exe=$(which $n)
|
||||
echo "searching for $n: $exe"
|
||||
if [ -z "$exe" ] ; then
|
||||
echo "could not find $clang_tidy"
|
||||
else
|
||||
_addcmkflags "-DCLANG_TIDY=$exe"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
echo "error: could not find clang-tidy for $cxx"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# add cmake flags without project prefix
|
||||
function _addcmkflags()
|
||||
{
|
||||
for f in $* ; do
|
||||
CMFLAGS="$CMFLAGS ${f}"
|
||||
done
|
||||
}
|
||||
|
||||
# add cmake flags with project prefix
|
||||
function _addprojflags()
|
||||
{
|
||||
for f in $* ; do
|
||||
CMFLAGS="$CMFLAGS -D${PROJ_PFX_CMAKE}${f}"
|
||||
done
|
||||
}
|
||||
|
||||
function _c4_parallel_build_flags()
|
||||
{
|
||||
case "$CXX_" in
|
||||
vs2019|vs2017|vs2015)
|
||||
# https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2019
|
||||
# https://stackoverflow.com/questions/2619198/how-to-get-number-of-cores-in-win32
|
||||
if [ -z "$NUM_JOBS_BUILD" ] ; then
|
||||
echo "/maxcpucount:$NUMBER_OF_PROCESSORS"
|
||||
else
|
||||
echo "/maxcpucount:$NUM_JOBS_BUILD"
|
||||
fi
|
||||
;;
|
||||
xcode)
|
||||
# https://stackoverflow.com/questions/5417835/how-to-modify-the-number-of-parallel-compilation-with-xcode
|
||||
# https://gist.github.com/nlutsenko/ee245fbd239087d22137
|
||||
if [ -z "$NUM_JOBS_BUILD" ] ; then
|
||||
echo "-IDEBuildOperationMaxNumberOfConcurrentCompileTasks=$(sysctl -n hw.ncpu)"
|
||||
else
|
||||
echo "-IDEBuildOperationMaxNumberOfConcurrentCompileTasks=$NUM_JOBS_BUILD"
|
||||
fi
|
||||
;;
|
||||
*g++*|*gcc*|*clang*|em++)
|
||||
if [ -z "$NUM_JOBS_BUILD" ] ; then
|
||||
echo "-j $(nproc)"
|
||||
else
|
||||
echo "-j $NUM_JOBS_BUILD"
|
||||
fi
|
||||
;;
|
||||
"") # allow empty compiler
|
||||
;;
|
||||
*)
|
||||
echo "unknown compiler"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function _c4_generator_build_flags()
|
||||
{
|
||||
case "$CXX_" in
|
||||
vs2019|vs2017|vs2015)
|
||||
;;
|
||||
xcode)
|
||||
# WTF???
|
||||
# https://github.com/biojppm/rapidyaml/pull/97/checks?check_run_id=1504677928#step:7:964
|
||||
# https://stackoverflow.com/questions/51153525/xcode-10-unable-to-attach-db-error
|
||||
echo "-UseModernBuildSystem=NO"
|
||||
;;
|
||||
*g++*|*gcc*|*clang*|em++)
|
||||
;;
|
||||
"") # allow empty compiler
|
||||
;;
|
||||
*)
|
||||
echo "unknown compiler"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# 1) download and install vagrant: https://www.vagrantup.com/downloads.html
|
||||
# (do not install ubuntu's 14.04 16.04 version, see https://stackoverflow.com/questions/22717428/vagrant-error-failed-to-mount-folders-in-linux-guest ):
|
||||
# 2) vagrant plugin install vagrant-vbguest
|
||||
# 3) vagrant up --provider virtualbox
|
||||
# 4) vagrant ssh
|
||||
|
||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||
# configures the configuration version (we support older styles for
|
||||
# backwards compatibility). Please don't change it unless you know what
|
||||
# you're doing.
|
||||
Vagrant.configure(2) do |config|
|
||||
# The most common configuration options are documented and commented below.
|
||||
# For a complete reference, please see the online documentation at
|
||||
# https://docs.vagrantup.com.
|
||||
|
||||
# Every Vagrant development environment requires a box. You can search for
|
||||
# boxes at https://atlas.hashicorp.com/search.
|
||||
config.vm.box = "generic/ubuntu1804"
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
# boxes will only be checked for updates when the user runs
|
||||
# `vagrant box outdated`. This is not recommended.
|
||||
# config.vm.box_check_update = false
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine. In the example below,
|
||||
# accessing "localhost:8080" will access port 80 on the guest machine.
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
||||
|
||||
#config.ssh.username = 'travis'
|
||||
#config.ssh.password = 'travis'
|
||||
|
||||
# Create a private network, which allows host-only access to the machine
|
||||
# using a specific IP.
|
||||
# config.vm.network "private_network", ip: "192.168.33.10"
|
||||
|
||||
# Create a public network, which generally matched to bridged network.
|
||||
# Bridged networks make the machine appear as another physical device on
|
||||
# your network.
|
||||
# config.vm.network "public_network"
|
||||
|
||||
# Share an additional folder to the guest VM. The first argument is
|
||||
# the path on the host to the actual folder. The second argument is
|
||||
# the path on the guest to mount the folder. And the optional third
|
||||
# argument is a set of non-required options.
|
||||
config.vm.synced_folder "../../../..", "/vagrant"
|
||||
|
||||
#config.vm.synced_folder '.', '/vagrant', disabled: true
|
||||
|
||||
# Provider-specific configuration so you can fine-tune various
|
||||
# backing providers for Vagrant. These expose provider-specific options.
|
||||
# Example for VirtualBox:
|
||||
#
|
||||
# config.vm.provider "virtualbox" do |vb|
|
||||
# # Display the VirtualBox GUI when booting the machine
|
||||
# vb.gui = true
|
||||
#
|
||||
# # Customize the amount of memory on the VM:
|
||||
# vb.memory = "1024"
|
||||
# end
|
||||
#
|
||||
# View the documentation for the provider you are using for more
|
||||
# information on available options.
|
||||
|
||||
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
|
||||
# such as FTP and Heroku are also available. See the documentation at
|
||||
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
|
||||
# config.push.define "atlas" do |push|
|
||||
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
|
||||
# end
|
||||
|
||||
# Enable provisioning with a shell script. Additional provisioners such as
|
||||
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
|
||||
# documentation for more information about their specific syntax and use.
|
||||
#config.vm.provision "shell", path: "travis-install.sh"
|
||||
|
||||
end
|
@ -1,71 +0,0 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||
# configures the configuration version (we support older styles for
|
||||
# backwards compatibility). Please don't change it unless you know what
|
||||
# you're doing.
|
||||
Vagrant.configure("2") do |config|
|
||||
# The most common configuration options are documented and commented below.
|
||||
# For a complete reference, please see the online documentation at
|
||||
# https://docs.vagrantup.com.
|
||||
|
||||
# Every Vagrant development environment requires a box. You can search for
|
||||
# boxes at https://vagrantcloud.com/search.
|
||||
config.vm.box = "ramsey/macos-catalina"
|
||||
config.vm.box_version = "1.0.0"
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
# boxes will only be checked for updates when the user runs
|
||||
# `vagrant box outdated`. This is not recommended.
|
||||
# config.vm.box_check_update = false
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine. In the example below,
|
||||
# accessing "localhost:8080" will access port 80 on the guest machine.
|
||||
# NOTE: This will enable public access to the opened port
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine and only allow access
|
||||
# via 127.0.0.1 to disable public access
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
|
||||
|
||||
# Create a private network, which allows host-only access to the machine
|
||||
# using a specific IP.
|
||||
# config.vm.network "private_network", ip: "192.168.33.10"
|
||||
|
||||
# Create a public network, which generally matched to bridged network.
|
||||
# Bridged networks make the machine appear as another physical device on
|
||||
# your network.
|
||||
# config.vm.network "public_network"
|
||||
|
||||
# Share an additional folder to the guest VM. The first argument is
|
||||
# the path on the host to the actual folder. The second argument is
|
||||
# the path on the guest to mount the folder. And the optional third
|
||||
# argument is a set of non-required options.
|
||||
# config.vm.synced_folder "../data", "/vagrant_data"
|
||||
|
||||
# Provider-specific configuration so you can fine-tune various
|
||||
# backing providers for Vagrant. These expose provider-specific options.
|
||||
# Example for VirtualBox:
|
||||
#
|
||||
# config.vm.provider "virtualbox" do |vb|
|
||||
# # Display the VirtualBox GUI when booting the machine
|
||||
# vb.gui = true
|
||||
#
|
||||
# # Customize the amount of memory on the VM:
|
||||
# vb.memory = "1024"
|
||||
# end
|
||||
#
|
||||
# View the documentation for the provider you are using for more
|
||||
# information on available options.
|
||||
|
||||
# Enable provisioning with a shell script. Additional provisioners such as
|
||||
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
|
||||
# documentation for more information about their specific syntax and use.
|
||||
# config.vm.provision "shell", inline: <<-SHELL
|
||||
# apt-get update
|
||||
# apt-get install -y apache2
|
||||
# SHELL
|
||||
end
|
@ -1,71 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -x
|
||||
|
||||
# https://askubuntu.com/questions/735201/installing-clang-3-8-on-ubuntu-14-04-3
|
||||
wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
|
||||
|
||||
done=$(grep C4STL /etc/apt/sources.list)
|
||||
if [ -z "$done" ] ; then
|
||||
cat >> /etc/apt/sources.list <<EOF
|
||||
|
||||
# C4STL
|
||||
# http://apt.llvm.org/
|
||||
#deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main
|
||||
#deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main
|
||||
deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.9 main
|
||||
deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-4.0 main
|
||||
#deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-5.0 main
|
||||
EOF
|
||||
fi
|
||||
|
||||
sudo -E apt-get install -y software-properties-common python-software-properties
|
||||
sudo -E add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
||||
sudo -E add-apt-repository -y ppa:george-edison55/cmake-3.x
|
||||
sudo -E apt-get -yq update
|
||||
|
||||
sudo -E apt-get install -yq --force-yes \
|
||||
build-essential \
|
||||
cmake \
|
||||
g++-5 \
|
||||
g++-5-multilib \
|
||||
g++-6 \
|
||||
g++-6-multilib \
|
||||
g++-7 \
|
||||
g++-7-multilib \
|
||||
g++-8 \
|
||||
g++-8-multilib \
|
||||
g++-9 \
|
||||
g++-9-multilib \
|
||||
g++-10 \
|
||||
g++-10-multilib \
|
||||
g++-11 \
|
||||
g++-11-multilib \
|
||||
clang-3.7 \
|
||||
clang-3.8 \
|
||||
clang-3.9 \
|
||||
clang-4.0 \
|
||||
swig3.0 \
|
||||
libssl-dev \
|
||||
zlib1g-dev \
|
||||
libbz2-dev \
|
||||
libreadline-dev \
|
||||
libsqlite3-dev \
|
||||
wget \
|
||||
curl \
|
||||
llvm \
|
||||
libncurses5-dev \
|
||||
libncursesw5-dev \
|
||||
xz-utils \
|
||||
tk-dev \
|
||||
libffi-dev \
|
||||
liblzma-dev \
|
||||
python-openssl \
|
||||
git \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-venv
|
||||
|
||||
sudo -E pip install cmany
|
||||
|
||||
exit 0
|
@ -1,116 +0,0 @@
|
||||
name: rarearchs
|
||||
|
||||
defaults:
|
||||
#if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP
|
||||
run:
|
||||
# Use a bash shell so we can use the same syntax for environment variable
|
||||
# access regardless of the host operating system
|
||||
shell: bash -e -x {0}
|
||||
|
||||
on:
|
||||
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
rarearchs:
|
||||
name: ${{matrix.arch}}/c++${{matrix.std}}/${{matrix.bt}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, bt: Debug , arch: aarch64, distro: ubuntu20.04}
|
||||
- {std: 11, bt: Release, arch: aarch64, distro: ubuntu20.04}
|
||||
- {std: 14, bt: Debug , arch: aarch64, distro: ubuntu20.04}
|
||||
- {std: 14, bt: Release, arch: aarch64, distro: ubuntu20.04}
|
||||
- {std: 17, bt: Debug , arch: aarch64, distro: ubuntu20.04}
|
||||
- {std: 17, bt: Release, arch: aarch64, distro: ubuntu20.04}
|
||||
#
|
||||
- {std: 11, bt: Debug , arch: ppc64le, distro: ubuntu20.04}
|
||||
- {std: 11, bt: Release, arch: ppc64le, distro: ubuntu20.04}
|
||||
- {std: 14, bt: Debug , arch: ppc64le, distro: ubuntu20.04}
|
||||
- {std: 14, bt: Release, arch: ppc64le, distro: ubuntu20.04}
|
||||
- {std: 17, bt: Debug , arch: ppc64le, distro: ubuntu20.04}
|
||||
- {std: 17, bt: Release, arch: ppc64le, distro: ubuntu20.04}
|
||||
#
|
||||
- {std: 11, bt: Debug , arch: s390x , distro: ubuntu20.04}
|
||||
- {std: 11, bt: Release, arch: s390x , distro: ubuntu20.04}
|
||||
- {std: 14, bt: Debug , arch: s390x , distro: ubuntu20.04}
|
||||
- {std: 14, bt: Release, arch: s390x , distro: ubuntu20.04}
|
||||
- {std: 17, bt: Debug , arch: s390x , distro: ubuntu20.04}
|
||||
- {std: 17, bt: Release, arch: s390x , distro: ubuntu20.04}
|
||||
#
|
||||
#- {std: 11, bt: Debug , arch: armv6 , distro: bullseye}
|
||||
#- {std: 11, bt: Release, arch: armv6 , distro: bullseye}
|
||||
#- {std: 14, bt: Debug , arch: armv6 , distro: bullseye}
|
||||
#- {std: 14, bt: Release, arch: armv6 , distro: bullseye}
|
||||
#- {std: 17, bt: Debug , arch: armv6 , distro: bullseye}
|
||||
#- {std: 17, bt: Release, arch: armv6 , distro: bullseye}
|
||||
#
|
||||
#- {std: 11, bt: Debug , arch: armv7 , distro: ubuntu20.04}
|
||||
#- {std: 11, bt: Release, arch: armv7 , distro: ubuntu20.04}
|
||||
#- {std: 14, bt: Debug , arch: armv7 , distro: ubuntu20.04}
|
||||
#- {std: 14, bt: Release, arch: armv7 , distro: ubuntu20.04}
|
||||
#- {std: 17, bt: Debug , arch: armv7 , distro: ubuntu20.04}
|
||||
#- {std: 17, bt: Release, arch: armv7 , distro: ubuntu20.04}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- name: test
|
||||
uses: uraimo/run-on-arch-action@v2.0.5
|
||||
with:
|
||||
arch: ${{matrix.arch}}
|
||||
distro: ${{matrix.distro}}
|
||||
install: |
|
||||
set -x
|
||||
apt-get update -y
|
||||
apt-get install -y \
|
||||
git \
|
||||
build-essential
|
||||
# arm platforms need an up-to-date cmake:
|
||||
# https://gitlab.kitware.com/cmake/cmake/-/issues/20568
|
||||
if [ "${{matrix.arch}}" == "armv6" ] || [ "${{matrix.arch}}" == "armv7" ] ; then
|
||||
apt-get install -y \
|
||||
gpg \
|
||||
wget \
|
||||
apt-transport-https
|
||||
wget --no-check-certificate -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
|
||||
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
|
||||
apt-get update -y
|
||||
rm /usr/share/keyrings/kitware-archive-keyring.gpg
|
||||
apt-get install kitware-archive-keyring
|
||||
apt-get update -y
|
||||
fi
|
||||
apt-get install -y cmake cmake-data
|
||||
cmake --version
|
||||
run: |
|
||||
set -x
|
||||
uname -a
|
||||
pwd
|
||||
ls -lFhp .
|
||||
#
|
||||
bdir=build_${{matrix.arch}}_${{matrix.bt}}_${{matrix.std}}
|
||||
idir=install_${{matrix.arch}}_${{matrix.bt}}_${{matrix.std}}
|
||||
mkdir -p $bdir
|
||||
#
|
||||
cmake -S . -B $bdir \
|
||||
-DCMAKE_INSTALL_PREFIX=$idir \
|
||||
-DCMAKE_BUILD_TYPE=${{matrix.bt}} \
|
||||
-DC4_CXX_STANDARD=${{matrix.std}} \
|
||||
-DCXX_STANDARD=${{matrix.std}} \
|
||||
-DC4CORE_DEV=ON \
|
||||
-DC4CORE_BUILD_BENCHMARKS=OFF \
|
||||
-DC4CORE_SANITIZE=OFF \
|
||||
-DC4CORE_LINT=OFF \
|
||||
-DC4CORE_VALGRIND=OFF
|
||||
#
|
||||
cmake --build $bdir -j --target c4core-test-build
|
||||
#
|
||||
cmake --build $bdir --target c4core-test-run
|
@ -1,87 +0,0 @@
|
||||
name: benchmarks
|
||||
|
||||
defaults:
|
||||
run:
|
||||
# Use a bash shell so we can use the same syntax for environment variable
|
||||
# access regardless of the host operating system
|
||||
shell: bash -e -x {0}
|
||||
|
||||
on:
|
||||
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
PROJ_PFX_TARGET: c4core-
|
||||
PROJ_PFX_CMAKE: C4CORE_
|
||||
CMAKE_FLAGS:
|
||||
NUM_JOBS_BUILD: # 4
|
||||
|
||||
|
||||
jobs:
|
||||
benchmarks:
|
||||
name: bm/c++${{matrix.std}}/${{matrix.cxx}}/${{matrix.bt}}
|
||||
if: |
|
||||
(!contains(github.event.head_commit.message, 'skip all')) ||
|
||||
(!contains(github.event.head_commit.message, 'skip benchmarks')) ||
|
||||
contains(github.event.head_commit.message, 'only benchmarks')
|
||||
continue-on-error: true
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: g++-10, bt: Debug , os: ubuntu-18.04 , bitlinks: static64 static32}
|
||||
- {std: 11, cxx: g++-10, bt: Release, os: ubuntu-18.04 , bitlinks: static64 static32}
|
||||
- {std: 17, cxx: g++-10, bt: Debug , os: ubuntu-18.04 , bitlinks: static64 static32}
|
||||
- {std: 17, cxx: g++-10, bt: Release, os: ubuntu-18.04 , bitlinks: static64 static32}
|
||||
- {std: 20, cxx: g++-10, bt: Debug , os: ubuntu-18.04 , bitlinks: static64 static32}
|
||||
- {std: 20, cxx: g++-10, bt: Release, os: ubuntu-18.04 , bitlinks: static64 static32}
|
||||
- {std: 11, cxx: vs2019, bt: Debug , os: windows-latest, bitlinks: static64 static32}
|
||||
- {std: 11, cxx: vs2019, bt: Release, os: windows-latest, bitlinks: static64 static32}
|
||||
- {std: 17, cxx: vs2019, bt: Debug , os: windows-latest, bitlinks: static64 static32}
|
||||
- {std: 17, cxx: vs2019, bt: Release, os: windows-latest, bitlinks: static64 static32}
|
||||
- {std: 20, cxx: vs2019, bt: Debug , os: windows-latest, bitlinks: static64 static32}
|
||||
- {std: 20, cxx: vs2019, bt: Release, os: windows-latest, bitlinks: static64 static32}
|
||||
env: {BM: ON, STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
# use fetch-depth to ensure all tags are fetched
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive, fetch-depth: 0}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_target shared64 c4core-bm-build}
|
||||
- {name: shared64-run, run: export NUM_JOBS_BUILD=1 && source .github/setenv.sh && c4_run_target shared64 c4core-bm-run}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_target static64 c4core-bm-build}
|
||||
- {name: static64-run, run: export NUM_JOBS_BUILD=1 && source .github/setenv.sh && c4_run_target static64 c4core-bm-run}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_target static32 c4core-bm-build}
|
||||
- {name: static32-run, run: export NUM_JOBS_BUILD=1 && source .github/setenv.sh && c4_run_target static32 c4core-bm-run}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_target shared32 c4core-bm-build}
|
||||
- {name: shared32-run, run: export NUM_JOBS_BUILD=1 && source .github/setenv.sh && c4_run_target shared32 c4core-bm-run}
|
||||
- name: gather benchmark results
|
||||
run: |
|
||||
set -x
|
||||
desc=$(git describe || git rev-parse --short HEAD)
|
||||
for bl in ${{matrix.bitlinks}} ; do
|
||||
dst=$(echo benchmark_results/$desc/${{matrix.cxx}}-${{matrix.bt}}-c++${{matrix.std}}-$bl | sed 's:++-:xx:g' | sed 's:+:x:g')
|
||||
mkdir -p $dst
|
||||
find build -name bm-results
|
||||
mv -vf build/$bl/bm/bm-results/* $dst/.
|
||||
done
|
||||
- name: upload benchmark result artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: benchmark_results
|
||||
path: benchmark_results/
|
@ -1,692 +0,0 @@
|
||||
name: ci
|
||||
|
||||
defaults:
|
||||
#if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP
|
||||
run:
|
||||
# Use a bash shell so we can use the same syntax for environment variable
|
||||
# access regardless of the host operating system
|
||||
shell: bash -e -x {0}
|
||||
|
||||
on:
|
||||
- push
|
||||
- pull_request
|
||||
- workflow_dispatch
|
||||
|
||||
env:
|
||||
PROJ_PFX_TARGET: c4core-
|
||||
PROJ_PFX_CMAKE: C4CORE_
|
||||
CMAKE_FLAGS:
|
||||
NUM_JOBS_BUILD: # 4
|
||||
|
||||
|
||||
# ubuntu-20.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.2.0
|
||||
# clang: 8.0.1, 9.0.1, 10.0.0
|
||||
# ubuntu-18.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.1.0
|
||||
# clang: 6.0.0, 8.0.0, 9.0.0
|
||||
# ubuntu-16.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1604-README.md
|
||||
# gcc: 5.5.0, 7.5.0, 8.4.0, 9.3.0
|
||||
# clang: 6.0.0, 8.0.0, 9.0.1
|
||||
# macos-11.0: macOS Big Sur 11.0
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 10.0.1
|
||||
# gcc-8 gcc-9
|
||||
# macos-10.15: macOS Catalina 10.15
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 11.0.0
|
||||
# gcc-8 gcc-9
|
||||
# windows-2019:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md
|
||||
# vs2019
|
||||
# windows-2016:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md
|
||||
# vs2017
|
||||
jobs:
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_coverage:
|
||||
# if: github.ref == 'refs/heads/master'
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: g++-7, bt: Coverage, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: g++-7, bt: Coverage, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: g++-7, bt: Coverage, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}", CODECOV_TOKEN: "${{secrets.CODECOV_TOKEN}}", COVERALLS_REPO_TOKEN: "${{secrets.COVERALLS_REPO_TOKEN}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- name: shared64-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage shared64 codecov
|
||||
#c4_submit_coverage shared64 coveralls # only accepts one submission per job
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- name: static64-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage static64 codecov
|
||||
c4_submit_coverage static64 coveralls
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- name: static32-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage static32 codecov
|
||||
#c4_submit_coverage static32 coveralls # only accepts one submission per job
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- name: shared32-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage shared32 codecov
|
||||
#c4_submit_coverage shared32 coveralls # only accepts one submission per job
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- name: static32-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage static32 codecov
|
||||
#c4_submit_coverage static32 coveralls # only accepts one submission per job
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_windows:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: vs2017, bt: Debug , os: windows-2016, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: vs2017, bt: Release, os: windows-2016, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: vs2017, bt: Debug , os: windows-2016, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: vs2017, bt: Release, os: windows-2016, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 17, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 17, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_macosx:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: xcode, bt: Debug , os: macos-11.0, bitlinks: shared64 static64}
|
||||
- {std: 11, cxx: xcode, bt: Release, os: macos-11.0, bitlinks: shared64 static64}
|
||||
- {std: 14, cxx: xcode, bt: Debug , os: macos-11.0, bitlinks: shared64 static64}
|
||||
- {std: 14, cxx: xcode, bt: Release, os: macos-11.0, bitlinks: shared64 static64}
|
||||
- {std: 17, cxx: xcode, bt: Debug , os: macos-11.0, bitlinks: shared64 static64}
|
||||
- {std: 17, cxx: xcode, bt: Release, os: macos-11.0, bitlinks: shared64 static64}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_gcc_canary:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: g++-7 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: g++-7 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: g++-10 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: g++-10 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: g++-5 , bt: Debug , os: ubuntu-16.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: g++-5 , bt: Release, os: ubuntu-16.04, bitlinks: shared64 static32}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_clang_canary:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 20, cxx: clang++-10 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: clang++-10 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Debug , os: ubuntu-16.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Release, os: ubuntu-16.04, bitlinks: shared64 static32}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_clang_tidy:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# clang tidy takes a long time, so don't do multiple bits/linktypes
|
||||
- {std: 11, cxx: clang++-9, bt: Debug , lint: clang-tidy, bitlinks: shared64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: Debug , lint: clang-tidy, bitlinks: shared32, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: Debug , lint: clang-tidy, bitlinks: static64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: Debug , lint: clang-tidy, bitlinks: static32, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: shared64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: shared32, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: static64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: static32, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_gcc_extended:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# VALGRIND
|
||||
- {std: 11, cxx: g++-10, bt: Debug , vg: ON, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-10, bt: Release, vg: ON, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: g++-10, bt: Debug , vg: ON, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: g++-10, bt: Release, vg: ON, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: g++-10, bt: Debug , vg: ON, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: g++-10, bt: Release, vg: ON, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: g++-10, bt: Debug , vg: ON, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: g++-10, bt: Release, vg: ON, os: ubuntu-18.04}
|
||||
#
|
||||
- {std: 11, cxx: g++-9, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-9, bt: Release, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-8, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-8, bt: Release, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-7, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-7, bt: Release, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-6, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-6, bt: Release, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-5, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-5, bt: Release, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_clang_extended:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 20, cxx: clang++-10 , bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9 , bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9 , bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-8 , bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-8 , bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-7 , bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-7 , bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-5.0, bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-5.0, bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-4.0, bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-4.0, bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-3.9, bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-3.9, bt: Release, vg: on, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_clang_sanitize:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# these jobs take much longer, so run only one bitlink pair per job to profit from parallelism
|
||||
- {std: 11, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
test_arm:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# these jobs take much longer, so run only one bitlink pair per job to profit from parallelism
|
||||
- {std: 11, bt: Debug , toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 11, bt: Release, toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 14, bt: Debug , toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 14, bt: Release, toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 17, bt: Debug , toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 17, bt: Release, toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
env: {TOOLCHAIN: "${{matrix.toolchain}}", STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test arm
|
||||
- {name: build, run: source .github/setenv.sh && c4_build_test arm}
|
||||
- {name: run, run: source .github/setenv.sh && c4_run_test arm}
|
||||
- {name: pack, run: source .github/setenv.sh && c4_package arm}
|
||||
|
||||
# #----------------------------------------------------------------------------
|
||||
# # https://blog.kitware.com/static-checks-with-cmake-cdash-iwyu-clang-tidy-lwyu-cpplint-and-cppcheck/
|
||||
# static_analysis:
|
||||
# continue-on-error: true
|
||||
# if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
# runs-on: ${{matrix.os}}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# include:
|
||||
# # these jobs take much longer, so run only one bitlink pair per job to profit from parallelism
|
||||
# - {std: 11, cxx: clang++-10, bt: Debug , bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 11, cxx: clang++-10, bt: Release, bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 14, cxx: clang++-10, bt: Debug , bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 14, cxx: clang++-10, bt: Release, bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 17, cxx: clang++-10, bt: Debug , bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 17, cxx: clang++-10, bt: Release, bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 20, cxx: clang++-10, bt: Debug , bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 20, cxx: clang++-10, bt: Release, bitlinks: shared64, os: ubuntu-18.04}
|
||||
# env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
# steps:
|
||||
# - {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
# - {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
# - {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
# - name: shared64-configure---------------------------------------------------
|
||||
# run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
# - {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
# - {name: clang-tidy, run: cmake "-DCMAKE_CXX_CLANG_TIDY=/usr/bin/clang-tidy-3.9;-checks=*" ../path/to/source}
|
||||
# - {name: cppcheck, run: cmake "-DCMAKE_CXX_CPPCHECK=/usr/bin/cppcheck;--std=c++11" ../path/to/source}
|
||||
# - {name: cpplint, run: cmake "-DCMAKE_CXX_CPPLINT=/usr/local/bin/cpplint;--linelength=179" ..}
|
||||
# - {name: include-what-you-use, run: cmake "-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=/usr/bin/iwyu;--transitive_includes_only" ..}
|
||||
# - {name: link-what-you-use, run: cmake -DCMAKE_LINK_WHAT_YOU_USE=TRUE ..}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# useful to iterate when fixing the release
|
||||
# ver=0.0.0-rc1 ; ( set -x ; git tag -d v$ver ; git push origin :v$ver ) ; (set -x ; set -e ; git add -u ; git commit --amend --no-edit ; git tag --annotate --message "v$ver" "v$ver" ; git push -f --tags origin gh_actions )
|
||||
|
||||
release:
|
||||
if: contains(github.ref, 'tags/v')
|
||||
runs-on: ubuntu-latest
|
||||
#needs: [test_coverage, test_windows, test_macosx, test_gcc_canary, test_clang_canary, test_clang_tidy, test_gcc_extended, test_clang_extended, test_clang_sanitize, test_api]
|
||||
steps:
|
||||
- name: Install requirements
|
||||
run: |
|
||||
sudo -E pip install git-archive-all
|
||||
- name: Get version
|
||||
id: get_version
|
||||
# https://github.community/t/how-to-get-just-the-tag-name/16241/11
|
||||
run: |
|
||||
echo ::set-output name=SRC_TAG::${GITHUB_REF#refs/tags/}
|
||||
echo ::set-output name=SRC_VERSION::${GITHUB_REF#refs/tags/v}
|
||||
echo SRC_TAG=${GITHUB_REF#refs/tags/}
|
||||
echo SRC_VERSION=${GITHUB_REF#refs/tags/v}
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1 # https://github.com/marketplace/actions/create-a-release
|
||||
env:
|
||||
GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}"
|
||||
SRC_TAG: "${{steps.get_version.outputs.SRC_TAG}}"
|
||||
SRC_VERSION: "${{steps.get_version.outputs.SRC_VERSION}}"
|
||||
with:
|
||||
tag_name: ${{github.ref}}
|
||||
release_name: Release ${{steps.get_version.outputs.SRC_VERSION}}
|
||||
draft: true # to create a draft (unpublished) release, false to create a published one. Default: false
|
||||
prerelease: ${{contains(github.ref, '-rc')}}
|
||||
body_path: ${{github.workspace}}/changelog/${{steps.get_version.outputs.SRC_VERSION}}.md
|
||||
- name: Create source packs
|
||||
id: src_pack
|
||||
run: |
|
||||
version=${{steps.get_version.outputs.SRC_VERSION}}
|
||||
name=${PROJ_PFX_TARGET}src-$version
|
||||
git-archive-all --prefix $name $name.tgz
|
||||
git-archive-all --prefix $name $name.zip
|
||||
echo ::set-output name=TGZ::$name.tgz
|
||||
echo ::set-output name=ZIP::$name.zip
|
||||
- name: Upload tgz source pack
|
||||
id: upload_src_tgz_to_release
|
||||
uses: actions/upload-release-asset@v1.0.1
|
||||
env: {GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}"}
|
||||
with:
|
||||
upload_url: ${{steps.create_release.outputs.upload_url}}
|
||||
asset_path: ${{steps.src_pack.outputs.TGZ}}
|
||||
asset_name: ${{steps.src_pack.outputs.TGZ}}
|
||||
asset_content_type: application/gzip
|
||||
- name: Upload zip source pack
|
||||
id: upload_src_zip_to_release
|
||||
uses: actions/upload-release-asset@v1.0.1
|
||||
env: {GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}"}
|
||||
with:
|
||||
upload_url: ${{steps.create_release.outputs.upload_url}}
|
||||
asset_path: ${{steps.src_pack.outputs.ZIP}}
|
||||
asset_name: ${{steps.src_pack.outputs.ZIP}}
|
||||
asset_content_type: application/zip
|
||||
- name: Save Release URL for uploading binary artifacts
|
||||
run: |
|
||||
echo "UPLOAD_URL: ${{steps.create_release.outputs.upload_url}}"
|
||||
echo "${{steps.create_release.outputs.upload_url}}" > ./upload_url
|
||||
- name: Upload Release URL
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
path: ./upload_url
|
||||
name: upload_url
|
||||
|
||||
# since this is a library, we just provide the source packages (done above)
|
||||
# #----------------------------------------------------------------------------
|
||||
# publish:
|
||||
# needs: release
|
||||
# name: publish/${{matrix.config.os}}/${{matrix.config.gen}}
|
||||
# runs-on: ${{matrix.config.os}}
|
||||
# env: {DEV: OFF, BT: Release, OS: "${{matrix.config.os}}", CXX_: "${{matrix.config.cxx}}", GEN: "${{matrix.config.gen}}"}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# config:
|
||||
# # name of the artifact | suffix | cpack gen | mime type | os | cxx
|
||||
# - {name: Ubuntu 20.04 deb , sfx: unix64.deb, gen: DEB , mime: vnd.debian.binary-package, os: ubuntu-20.04 }
|
||||
# - {name: Ubuntu 20.04 sh , sfx: unix64.sh , gen: STGZ , mime: x-sh , os: ubuntu-20.04 }
|
||||
# - {name: Ubuntu 18.04 deb , sfx: unix64.deb, gen: DEB , mime: vnd.debian.binary-package, os: ubuntu-18.04 }
|
||||
# - {name: Ubuntu 18.04 sh , sfx: unix64.sh , gen: STGZ , mime: x-sh , os: ubuntu-18.04 }
|
||||
# - {name: Ubuntu 16.04 deb , sfx: unix64.deb, gen: DEB , mime: vnd.debian.binary-package, os: ubuntu-16.04 }
|
||||
# - {name: Ubuntu 16.04 sh , sfx: unix64.sh , gen: STGZ , mime: x-sh , os: ubuntu-16.04 }
|
||||
# - {name: Windows VS2017 zip, sfx: win64.zip , gen: ZIP , mime: zip , os: windows-2016, cxx: vs2017}
|
||||
# - {name: Windows VS2019 zip, sfx: win64.zip , gen: ZIP , mime: zip , os: windows-2019, cxx: vs2019}
|
||||
# - {name: MacOSX sh , sfx: apple64.sh, gen: STGZ , mime: x-sh , os: macos-11.0 , cxx: xcode }
|
||||
# steps:
|
||||
# - name: Get version
|
||||
# id: get_version
|
||||
# # https://github.community/t/how-to-get-just-the-tag-name/16241/11
|
||||
# run: |
|
||||
# echo ::set-output name=SRC_VERSION::${GITHUB_REF#refs/tags/v}
|
||||
# echo SRC_VERSION=${GITHUB_REF#refs/tags/v}
|
||||
# echo GEN=$GEN
|
||||
# - name: Download upload URL
|
||||
# uses: actions/download-artifact@v1
|
||||
# with: {name: upload_url, path: ./}
|
||||
# - name: Preprocess
|
||||
# id: preprocess
|
||||
# run: |
|
||||
# upload_url=`cat ./upload_url`
|
||||
# echo ::set-output name=upload_url::$upload_url
|
||||
# # the package has the same name in multiple same-platform+same-sfx
|
||||
# # instances, but the uploaded asset needs to have different names:
|
||||
# sfx=${{matrix.config.sfx}}
|
||||
# case "${{matrix.config.os}}" in
|
||||
# ubuntu*)
|
||||
# sfx=$(echo $sfx | sed "s:unix64:${{matrix.config.os}}:")
|
||||
# ;;
|
||||
# windows*)
|
||||
# sfx=$(echo $sfx | sed "s:win64:win64-${{matrix.config.cxx}}:")
|
||||
# ;;
|
||||
# macos*)
|
||||
# sfx=$(echo $sfx | sed "s:apple64:macosx-${{matrix.config.cxx}}:")
|
||||
# ;;
|
||||
# esac
|
||||
# asset_name=${PROJ_PFX_TARGET}${{steps.get_version.outputs.SRC_VERSION}}-$sfx
|
||||
# echo ::set-output name=asset_name::$asset_name
|
||||
# - {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
# - {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
# - {name: show info, run: source .github/setenv.sh && c4_show_info }
|
||||
# - name: shared64-configure---------------------------------------------------
|
||||
# run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
# - {name: shared64-build, run: source .github/setenv.sh && c4_build_target shared64 all}
|
||||
# - name: shared64-pack
|
||||
# run: |
|
||||
# source .github/setenv.sh && c4_package shared64 $GEN
|
||||
# src=./build/shared64/${PROJ_PFX_TARGET}${{steps.get_version.outputs.SRC_VERSION}}-${{matrix.config.sfx}}
|
||||
# dst=${{steps.preprocess.outputs.asset_name}}
|
||||
# cp -fav $src $dst
|
||||
# - name: Upload artifact
|
||||
# id: upload_to_release
|
||||
# uses: actions/upload-release-asset@v1.0.1
|
||||
# env: {GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}"}
|
||||
# with:
|
||||
# upload_url: ${{steps.preprocess.outputs.upload_url}}
|
||||
# asset_path: ${{steps.preprocess.outputs.asset_name}}
|
||||
# asset_name: ${{steps.preprocess.outputs.asset_name}}
|
||||
# asset_content_type: application/${{matrix.config.mime}}
|
||||
# #- name: Report artifact URL
|
||||
# # run: echo "artifact uploaded successfully: ${{steps.upload_to_release.outputs.browser_download_url}}"
|
@ -1,95 +0,0 @@
|
||||
name: emscripten
|
||||
|
||||
defaults:
|
||||
#if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP
|
||||
run:
|
||||
# Use a bash shell so we can use the same syntax for environment variable
|
||||
# access regardless of the host operating system
|
||||
shell: bash -e -x {0}
|
||||
|
||||
on:
|
||||
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
PROJ_PFX_TARGET: c4core-
|
||||
PROJ_PFX_CMAKE: C4CORE_
|
||||
CMAKE_FLAGS:
|
||||
NUM_JOBS_BUILD: # 4
|
||||
EMSCRIPTEN_CACHE_FOLDER: 'emsdk-cache'
|
||||
|
||||
|
||||
# ubuntu-20.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.2.0
|
||||
# clang: 8.0.1, 9.0.1, 10.0.0
|
||||
# ubuntu-18.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.1.0
|
||||
# clang: 6.0.0, 8.0.0, 9.0.0
|
||||
# macos-11.0: macOS Big Sur 11.0
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 10.0.1
|
||||
# gcc-8 gcc-9
|
||||
# macos-10.15: macOS Catalina 10.15
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 11.0.0
|
||||
# gcc-8 gcc-9
|
||||
# windows-2019:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md
|
||||
# vs2019
|
||||
# windows-2016:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md
|
||||
# vs2017
|
||||
|
||||
jobs:
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
emscripten:
|
||||
name: emscripten/${{matrix.emver}}/c++${{matrix.std}}/${{matrix.bt}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: em++, emver: 2.0.34, bt: Debug , os: ubuntu-latest, bitlinks: static32}
|
||||
- {std: 11, cxx: em++, emver: 2.0.34, bt: Release, os: ubuntu-latest, bitlinks: static32}
|
||||
- {std: 20, cxx: em++, emver: 2.0.34, bt: Debug , os: ubuntu-latest, bitlinks: static32}
|
||||
- {std: 20, cxx: em++, emver: 2.0.34, bt: Release, os: ubuntu-latest, bitlinks: static32}
|
||||
- {std: 11, cxx: em++, emver: 3.0.0 , bt: Debug , os: ubuntu-latest, bitlinks: static32}
|
||||
- {std: 11, cxx: em++, emver: 3.0.0 , bt: Release, os: ubuntu-latest, bitlinks: static32}
|
||||
- {std: 20, cxx: em++, emver: 3.0.0 , bt: Debug , os: ubuntu-latest, bitlinks: static32}
|
||||
- {std: 20, cxx: em++, emver: 3.0.0 , bt: Release, os: ubuntu-latest, bitlinks: static32}
|
||||
env:
|
||||
STD: "${{matrix.std}}"
|
||||
CXX_: "${{matrix.cxx}}"
|
||||
BT: "${{matrix.bt}}"
|
||||
BITLINKS: "${{matrix.bitlinks}}"
|
||||
VG: "${{matrix.vg}}"
|
||||
SAN: "${{matrix.san}}"
|
||||
LINT: "${{matrix.lint}}"
|
||||
OS: "${{matrix.os}}"
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- name: setup emscripten cache
|
||||
id: cache-system-libraries
|
||||
uses: actions/cache@v2
|
||||
with: {path: "${{env.EMSCRIPTEN_CACHE_FOLDER}}", key: "${{matrix.emver}}-${{runner.os}}"}
|
||||
- name: setup emscripten
|
||||
uses: mymindstorm/setup-emsdk@v11
|
||||
with: {version: "${{matrix.emver}}", actions-cache-folder: "${{env.EMSCRIPTEN_CACHE_FOLDER}}"}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
@ -1,111 +0,0 @@
|
||||
name: libcxx
|
||||
|
||||
defaults:
|
||||
#if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP
|
||||
run:
|
||||
# Use a bash shell so we can use the same syntax for environment variable
|
||||
# access regardless of the host operating system
|
||||
shell: bash -e -x {0}
|
||||
|
||||
on:
|
||||
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
PROJ_PFX_TARGET: c4core-
|
||||
PROJ_PFX_CMAKE: C4CORE_
|
||||
CMAKE_FLAGS:
|
||||
NUM_JOBS_BUILD: # 4
|
||||
|
||||
|
||||
# ubuntu-20.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.2.0
|
||||
# clang: 8.0.1, 9.0.1, 10.0.0
|
||||
# ubuntu-18.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.1.0
|
||||
# clang: 6.0.0, 8.0.0, 9.0.0
|
||||
# macos-11.0: macOS Big Sur 11.0
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 10.0.1
|
||||
# gcc-8 gcc-9
|
||||
# macos-10.15: macOS Catalina 10.15
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 11.0.0
|
||||
# gcc-8 gcc-9
|
||||
# windows-2019:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md
|
||||
# vs2019
|
||||
# windows-2016:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md
|
||||
# vs2017
|
||||
|
||||
jobs:
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
libcxx:
|
||||
name: libc++/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 20, cxx: clang++-10 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: clang++-10 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 17, cxx: clang++-10 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 17, cxx: clang++-10 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: clang++-10 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: clang++-10 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: clang++-10 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: clang++-10 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 17, cxx: clang++-6.0, bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 17, cxx: clang++-6.0, bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: clang++-6.0, bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: clang++-6.0, bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
env:
|
||||
LIBCXX: ON # <---- enable libc++
|
||||
STD: "${{matrix.std}}"
|
||||
CXX_: "${{matrix.cxx}}"
|
||||
BT: "${{matrix.bt}}"
|
||||
BITLINKS: "${{matrix.bitlinks}}"
|
||||
VG: "${{matrix.vg}}"
|
||||
SAN: "${{matrix.san}}"
|
||||
LINT: "${{matrix.lint}}"
|
||||
OS: "${{matrix.os}}"
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
@ -1,103 +0,0 @@
|
||||
name: macosx
|
||||
|
||||
defaults:
|
||||
#if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP
|
||||
run:
|
||||
# Use a bash shell so we can use the same syntax for environment variable
|
||||
# access regardless of the host operating system
|
||||
shell: bash -e -x {0}
|
||||
|
||||
on:
|
||||
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
PROJ_PFX_TARGET: c4core-
|
||||
PROJ_PFX_CMAKE: C4CORE_
|
||||
CMAKE_FLAGS:
|
||||
NUM_JOBS_BUILD: # 4
|
||||
|
||||
|
||||
# ubuntu-20.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.2.0
|
||||
# clang: 8.0.1, 9.0.1, 10.0.0
|
||||
# ubuntu-18.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.1.0
|
||||
# clang: 6.0.0, 8.0.0, 9.0.0
|
||||
# macos-11.0: macOS Big Sur 11.0
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 10.0.1
|
||||
# gcc-8 gcc-9
|
||||
# macos-10.15: macOS Catalina 10.15
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 11.0.0
|
||||
# gcc-8 gcc-9
|
||||
# windows-2019:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md
|
||||
# vs2019
|
||||
# windows-2016:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md
|
||||
# vs2017
|
||||
|
||||
jobs:
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
xcode:
|
||||
name: xcode${{matrix.xcver}}/c++${{matrix.std}}/${{matrix.bt}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: xcode, xcver: 13, bt: Debug , os: macos-11, bitlinks: shared64 static64}
|
||||
- {std: 11, cxx: xcode, xcver: 13, bt: Release, os: macos-11, bitlinks: shared64 static64}
|
||||
- {std: 17, cxx: xcode, xcver: 13, bt: Debug , os: macos-11, bitlinks: shared64 static64}
|
||||
- {std: 17, cxx: xcode, xcver: 13, bt: Release, os: macos-11, bitlinks: shared64 static64}
|
||||
#
|
||||
- {std: 11, cxx: xcode, xcver: 12, bt: Debug , os: macos-11, bitlinks: shared64 static64}
|
||||
- {std: 11, cxx: xcode, xcver: 12, bt: Release, os: macos-11, bitlinks: shared64 static64}
|
||||
- {std: 17, cxx: xcode, xcver: 12, bt: Debug , os: macos-11, bitlinks: shared64 static64}
|
||||
- {std: 17, cxx: xcode, xcver: 12, bt: Release, os: macos-11, bitlinks: shared64 static64}
|
||||
#
|
||||
- {std: 11, cxx: xcode, xcver: 11, bt: Debug , os: macos-11, bitlinks: shared64 static64}
|
||||
- {std: 11, cxx: xcode, xcver: 11, bt: Release, os: macos-11, bitlinks: shared64 static64}
|
||||
- {std: 17, cxx: xcode, xcver: 11, bt: Debug , os: macos-11, bitlinks: shared64 static64}
|
||||
- {std: 17, cxx: xcode, xcver: 11, bt: Release, os: macos-11, bitlinks: shared64 static64}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: xcode, uses: maxim-lobanov/setup-xcode@v1, with: {xcode-version: "${{matrix.xcver}}" }}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
@ -1,199 +0,0 @@
|
||||
name: release
|
||||
|
||||
defaults:
|
||||
#if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP
|
||||
run:
|
||||
# Use a bash shell so we can use the same syntax for environment variable
|
||||
# access regardless of the host operating system
|
||||
shell: bash -e -x {0}
|
||||
|
||||
on:
|
||||
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- v0.*
|
||||
- v1.*
|
||||
- v2.*
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
PROJ_PKG_NAME: c4core-
|
||||
PROJ_PFX_TARGET: c4core-
|
||||
PROJ_PFX_CMAKE: C4CORE_
|
||||
CMAKE_FLAGS:
|
||||
NUM_JOBS_BUILD: # 4
|
||||
|
||||
|
||||
# useful to iterate when fixing the release:
|
||||
# ver=0.2.1 ; ( set -x ; git tag -d v$ver ; git push origin :v$ver ) ; (set -x ; set -e ; tbump --only-patch --non-interactive $ver ; git add -u ; git commit --amend --no-edit ; git tag --annotate --message "v$ver" "v$ver" ; git push -f --tags origin )
|
||||
|
||||
jobs:
|
||||
|
||||
gettag:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# use fetch-depth to ensure all tags are fetched
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive, fetch-depth: 0}}
|
||||
- name: Variables (from tag)
|
||||
if: contains(github.ref, 'tags/v')
|
||||
run: |
|
||||
# https://github.community/t/how-to-get-just-the-tag-name/16241/11
|
||||
SRC_TAG=${GITHUB_REF#refs/tags/}
|
||||
SRC_VERSION=${GITHUB_REF#refs/tags/v}
|
||||
cat <<EOF > vars.sh
|
||||
export SRC_TAG=$SRC_TAG
|
||||
export SRC_VERSION=$SRC_VERSION
|
||||
EOF
|
||||
- name: Variables (from commit, no tag)
|
||||
if: ${{ !contains(github.ref, 'tags/v') }}
|
||||
run: |
|
||||
set -x
|
||||
branch_name=${GITHUB_REF#refs/heads/}
|
||||
# builds triggered from PRs have the branch_name like this: refs/pull/150/merge
|
||||
# so filter to eg pr0150_merge
|
||||
branch_name=`echo $branch_name | sed "s:refs/pull/\([0-9]*\)/\(.*\):pr0\1_\2:"`
|
||||
# sanitize the branch name; eg merge/foo-bar -> merge_foo_bar
|
||||
branch_name=`echo $branch_name | sed 's:[/.-]:_:g'`
|
||||
SRC_TAG=$(git describe || git rev-parse --short HEAD) # eg v0.2.0-110-gda837e0
|
||||
SRC_VERSION="${branch_name}-${SRC_TAG}"
|
||||
cat <<EOF > vars.sh
|
||||
export SRC_TAG=$SRC_TAG
|
||||
export SRC_VERSION=$SRC_VERSION
|
||||
EOF
|
||||
- name: Verify vars.sh
|
||||
run: cat vars.sh ; source vars.sh ; echo $SRC_TAG ; echo $SRC_VERSION
|
||||
- name: Save vars.sh
|
||||
uses: actions/upload-artifact@v1
|
||||
with: {name: vars.sh, path: ./vars.sh}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# create source packages
|
||||
src:
|
||||
needs: gettag
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- name: Download vars.sh
|
||||
uses: actions/download-artifact@v1
|
||||
with: {name: vars.sh, path: ./}
|
||||
- name: Install python 3.9
|
||||
uses: actions/setup-python@v2
|
||||
with: { python-version: 3.9 }
|
||||
- name: Install requirements
|
||||
run: |
|
||||
sudo -E pip install git-archive-all
|
||||
- name: Create source packages
|
||||
run: |
|
||||
pwd
|
||||
ls -lFhp
|
||||
source vars.sh
|
||||
echo SRC_TAG=$SRC_TAG
|
||||
echo SRC_VERSION=$SRC_VERSION
|
||||
id=${PROJ_PKG_NAME}${SRC_VERSION}
|
||||
name=${id}-src
|
||||
mkdir -p assets
|
||||
git-archive-all --prefix $name assets/$name.tgz
|
||||
git-archive-all --prefix $name assets/$name.zip
|
||||
python --version
|
||||
python tools/amalgamate.py assets/$id.hpp
|
||||
- name: Save source artifacts
|
||||
uses: actions/upload-artifact@v1
|
||||
with: {name: assets, path: assets}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# create c++ packages
|
||||
cpp:
|
||||
name: cpp/${{matrix.config.os}}/${{matrix.config.gen}}
|
||||
needs: gettag
|
||||
runs-on: ${{matrix.config.os}}
|
||||
env: {DEV: OFF, BT: Release, OS: "${{matrix.config.os}}", CXX_: "${{matrix.config.cxx}}", GEN: "${{matrix.config.gen}}"}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
config:
|
||||
# name of the artifact | suffix (gen) | suffix (package) | cpack gen | mime type | os | cxx
|
||||
# ubuntu 20.04 is disabled because of a problem installing libc++:i386:
|
||||
#- {name: Ubuntu 20.04 deb , sfxg: unix64-shared-Release.deb, sfxp: ubuntu-20.04.deb , gen: DEB , mime: vnd.debian.binary-package, os: ubuntu-20.04 }
|
||||
- {name: Ubuntu 18.04 deb , sfxg: unix64-shared-Release.deb, sfxp: ubuntu-18.04.deb , gen: DEB , mime: vnd.debian.binary-package, os: ubuntu-18.04 }
|
||||
- {name: Windows VS2019 zip, sfxg: win64-shared-Release.zip , sfxp: windows-vs2019.zip , gen: ZIP , mime: zip , os: windows-2019, cxx: vs2019}
|
||||
- {name: MacOSX sh , sfxg: apple64-shared-Release.sh, sfxp: macosx-xcode.sh , gen: STGZ , mime: x-sh , os: macos-11.0 , cxx: xcode }
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- name: Download vars.sh
|
||||
uses: actions/download-artifact@v1
|
||||
with: {name: vars.sh, path: ./}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info }
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_target shared64}
|
||||
- name: shared64-pack
|
||||
run: source .github/setenv.sh && c4_package shared64 $GEN
|
||||
- name: shared64-normalize
|
||||
run: |
|
||||
set -x
|
||||
source vars.sh
|
||||
mkdir -p assets
|
||||
asset_src=`ls -1 ./build/shared64/${PROJ_PFX_TARGET}*-${{matrix.config.sfxg}}`
|
||||
asset_dst=./assets/${PROJ_PKG_NAME}${SRC_VERSION}-${{matrix.config.sfxp}}
|
||||
[ ! -f $asset_src ] && exit 1
|
||||
cp -fav $asset_src $asset_dst
|
||||
- name: Save artifacts
|
||||
uses: actions/upload-artifact@v1
|
||||
with: {name: assets, path: assets}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- src
|
||||
- cpp
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- name: Gather artifacts - ./assets
|
||||
uses: actions/download-artifact@v2
|
||||
with: {name: assets, path: assets}
|
||||
- name: Verify existing artifacts
|
||||
run: |
|
||||
ls -lFhp assets/
|
||||
#
|
||||
# Github
|
||||
- name: Restore vars.sh
|
||||
if: contains(github.ref, 'tags/v')
|
||||
uses: actions/download-artifact@v1
|
||||
with: {name: vars.sh, path: ./}
|
||||
- name: Save vars for following steps
|
||||
if: contains(github.ref, 'tags/v')
|
||||
id: vars
|
||||
run: |
|
||||
source vars.sh
|
||||
version_body=${{github.workspace}}/changelog/$SRC_VERSION.md
|
||||
if [ ! -f $version_body ] ; then
|
||||
echo "version body file was not found: $version_body"
|
||||
exit 1
|
||||
fi
|
||||
echo "::set-output name=VERSION::$SRC_VERSION"
|
||||
echo "::set-output name=VERSION_BODY::$version_body"
|
||||
- name: Create Github Release
|
||||
if: contains(github.ref, 'tags/v')
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env: { GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}" }
|
||||
with:
|
||||
tag_name: ${{github.ref}}
|
||||
release_name: Release ${{steps.vars.outputs.VERSION}}
|
||||
body_path: ${{steps.vars.outputs.VERSION_BODY}}
|
||||
draft: true
|
||||
prerelease: ${{contains(github.ref, 'rc')}}
|
||||
- name: Upload assets to Github Release
|
||||
if: contains(github.ref, 'tags/v')
|
||||
uses: dwenegar/upload-release-assets@v1
|
||||
env: { GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}" }
|
||||
with:
|
||||
release_id: ${{steps.create_release.outputs.id}}
|
||||
assets_path: ./assets/
|
@ -1,576 +0,0 @@
|
||||
name: test
|
||||
|
||||
defaults:
|
||||
#if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP
|
||||
run:
|
||||
# Use a bash shell so we can use the same syntax for environment variable
|
||||
# access regardless of the host operating system
|
||||
shell: bash -e -x {0}
|
||||
|
||||
on:
|
||||
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
PROJ_PFX_TARGET: c4core-
|
||||
PROJ_PFX_CMAKE: C4CORE_
|
||||
CMAKE_FLAGS:
|
||||
NUM_JOBS_BUILD: # 4
|
||||
|
||||
|
||||
# ubuntu-20.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.2.0
|
||||
# clang: 8.0.1, 9.0.1, 10.0.0
|
||||
# ubuntu-18.04:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md
|
||||
# gcc: 7.5.0, 8.4.0, 9.3.0, 10.1.0
|
||||
# clang: 6.0.0, 8.0.0, 9.0.0
|
||||
# macos-11.0: macOS Big Sur 11.0
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 10.0.1
|
||||
# gcc-8 gcc-9
|
||||
# macos-10.15: macOS Catalina 10.15
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md
|
||||
# Xcode 12.1 11.7
|
||||
# clang/LLVM 11.0.0
|
||||
# gcc-8 gcc-9
|
||||
# windows-2019:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md
|
||||
# vs2019
|
||||
# windows-2016:
|
||||
# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md
|
||||
# vs2017
|
||||
|
||||
jobs:
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
coverage:
|
||||
name: coverage/c++${{matrix.std}}
|
||||
# if: github.ref == 'refs/heads/master'
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: g++-7, cc: gcc-7, bt: Coverage, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: g++-7, cc: gcc-7, bt: Coverage, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: g++-7, cc: gcc-7, bt: Coverage, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}", CODECOV_TOKEN: "${{secrets.CODECOV_TOKEN}}", COVERALLS_REPO_TOKEN: "${{secrets.COVERALLS_REPO_TOKEN}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- name: shared64-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage shared64 codecov
|
||||
#c4_submit_coverage shared64 coveralls # only accepts one submission per job
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- name: static64-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage static64 codecov
|
||||
c4_submit_coverage static64 coveralls
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- name: static32-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage static32 codecov
|
||||
#c4_submit_coverage static32 coveralls # only accepts one submission per job
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- name: shared32-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage shared32 codecov
|
||||
#c4_submit_coverage shared32 coveralls # only accepts one submission per job
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- name: static32-submit
|
||||
run: |
|
||||
source .github/setenv.sh
|
||||
c4_submit_coverage static32 codecov
|
||||
#c4_submit_coverage static32 coveralls # only accepts one submission per job
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
coverage_nofastfloat:
|
||||
name: coverage/c++${{matrix.std}}/nofastfloat
|
||||
# if: github.ref == 'refs/heads/master'
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: g++-7, cc: gcc-7, bt: Coverage, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: g++-7, cc: gcc-7, bt: Coverage, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: g++-7, cc: gcc-7, bt: Coverage, os: ubuntu-18.04}
|
||||
env: {
|
||||
STD: "${{matrix.std}}",
|
||||
CXX_: "${{matrix.cxx}}",
|
||||
BT: "${{matrix.bt}}",
|
||||
OS: "${{matrix.os}}",
|
||||
CODECOV_TOKEN: "${{secrets.CODECOV_TOKEN}}",
|
||||
COVERALLS_REPO_TOKEN: "${{secrets.COVERALLS_REPO_TOKEN}}",
|
||||
BDIR: "build/nofastfloat-${{matrix.cxx}}-cxx${{matrix.std}}",
|
||||
IDIR: "install/nofastfloat-${{matrix.cxx}}-cxx${{matrix.std}}",
|
||||
}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: nofastfloat-configure------------------------------------------------
|
||||
run: |
|
||||
set -x
|
||||
mkdir -p $BDIR
|
||||
mkdir -p $IDIR
|
||||
cmake -S . -B $BDIR \
|
||||
-DC4CORE_WITH_FASTFLOAT=OFF \
|
||||
-DC4_CXX_STANDARD=${{matrix.std}} \
|
||||
-DC4CORE_CXX_STANDARD=${{matrix.std}} \
|
||||
-DC4CORE_BUILD_TESTS=ON \
|
||||
-DC4CORE_VALGRIND=OFF \
|
||||
-DC4CORE_COVERAGE_CODECOV=ON \
|
||||
-DC4CORE_COVERAGE_CODECOV_SILENT=ON \
|
||||
-DC4CORE_COVERAGE_COVERALLS=ON \
|
||||
-DC4CORE_COVERAGE_COVERALLS_SILENT=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=$IDIR \
|
||||
-DCMAKE_BUILD_TYPE=Coverage \
|
||||
-DCMAKE_CXX_COMPILER=${{matrix.cxx}} \
|
||||
-DCMAKE_C_COMPILER=${{matrix.cc}}
|
||||
- name: nofastfloat-build
|
||||
run: |
|
||||
cmake --build $BDIR --config Coverage --target c4core-test-build -j
|
||||
- name: nofastfloat-run
|
||||
run: |
|
||||
cmake --build $BDIR --config Coverage --target c4core-test-run
|
||||
- name: nofastfloat-submit
|
||||
run: |
|
||||
cmake --build $BDIR --config Coverage --target c4core-coverage-submit-codecov
|
||||
#cmake --build $BDIR --config Coverage --target c4core-coverage-submit-coveralls
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
windows:
|
||||
name: win/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: vs2017, bt: Debug , os: windows-2016, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: vs2017, bt: Release, os: windows-2016, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: vs2017, bt: Debug , os: windows-2016, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: vs2017, bt: Release, os: windows-2016, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 14, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 17, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 17, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
gcc_canary:
|
||||
name: gcc_canary/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 11, cxx: g++-7 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: g++-7 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: g++-10 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: g++-10 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: g++-5 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: g++-5 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: g++-4.8 , bt: Debug, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: g++-4.8 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
clang_canary:
|
||||
name: clang_canary/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 20, cxx: clang++-10 , bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 20, cxx: clang++-10 , bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Debug , os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Release, os: ubuntu-18.04, bitlinks: shared64 static32}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
clang_tidy:
|
||||
name: clang_tidy/c++${{matrix.std}}/${{matrix.bt}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# clang tidy takes a long time, so don't do multiple bits/linktypes
|
||||
- {std: 11, cxx: clang++-9, bt: Debug , lint: clang-tidy, bitlinks: shared64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: Debug , lint: clang-tidy, bitlinks: shared32, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: Debug , lint: clang-tidy, bitlinks: static64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: Debug , lint: clang-tidy, bitlinks: static32, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: shared64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: shared32, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: static64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: static32, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
gcc_extended:
|
||||
name: gcc_extended/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}/vg${{matrix.vg}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# VALGRIND
|
||||
- {std: 11, cxx: g++-10, bt: Debug , vg: ON, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-10, bt: Release, vg: ON, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: g++-10, bt: Debug , vg: ON, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: g++-10, bt: Release, vg: ON, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: g++-10, bt: Debug , vg: ON, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: g++-10, bt: Release, vg: ON, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: g++-10, bt: Debug , vg: ON, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: g++-10, bt: Release, vg: ON, os: ubuntu-18.04}
|
||||
#
|
||||
- {std: 11, cxx: g++-9, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-9, bt: Release, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-8, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-8, bt: Release, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-7, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-7, bt: Release, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-6, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-6, bt: Release, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-5, bt: Debug , os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-5, bt: Release, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-4.8, bt: Debug, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: g++-4.8, bt: Release, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
clang_extended:
|
||||
name: clang_extended/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}/vg${{matrix.vg}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {std: 20, cxx: clang++-10 , bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9 , bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-9 , bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-8 , bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-8 , bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-7 , bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-7 , bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-6.0, bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-5.0, bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-5.0, bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-4.0, bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-4.0, bt: Release, vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-3.9, bt: Debug , vg: on, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-3.9, bt: Release, vg: on, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
clang_sanitize:
|
||||
name: clang_sanitize/c++${{matrix.std}}/${{matrix.bt}}/vg${{matrix.vg}}
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# these jobs take much longer, so run only one bitlink pair per job to profit from parallelism
|
||||
- {std: 11, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 11, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 14, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 17, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Debug , vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared64 static64, os: ubuntu-18.04}
|
||||
- {std: 20, cxx: clang++-10 , bt: Release, vg: ON, san: ALL, bitlinks: shared32 static32, os: ubuntu-18.04}
|
||||
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: shared64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
|
||||
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
|
||||
- name: static64-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static64
|
||||
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
|
||||
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
|
||||
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
|
||||
- name: static32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test static32
|
||||
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
|
||||
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
|
||||
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
|
||||
- name: shared32-configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test shared32
|
||||
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
|
||||
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
|
||||
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
arm:
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# these jobs take much longer, so run only one bitlink pair per job to profit from parallelism
|
||||
- {std: 11, bt: Debug , toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 11, bt: Release, toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 14, bt: Debug , toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 14, bt: Release, toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 17, bt: Debug , toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
- {std: 17, bt: Release, toolchain: cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-18.04}
|
||||
env: {TOOLCHAIN: "${{matrix.toolchain}}", STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: configure---------------------------------------------------
|
||||
run: source .github/setenv.sh && c4_cfg_test arm
|
||||
- {name: build, run: source .github/setenv.sh && c4_build_test arm}
|
||||
- {name: run, run: source .github/setenv.sh && c4_run_test arm}
|
||||
- {name: pack, run: source .github/setenv.sh && c4_package arm}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# # https://blog.kitware.com/static-checks-with-cmake-cdash-iwyu-clang-tidy-lwyu-cpplint-and-cppcheck/
|
||||
# static_analysis:
|
||||
# continue-on-error: true
|
||||
# if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
# runs-on: ${{matrix.os}}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# include:
|
||||
# # these jobs take much longer, so run only one bitlink pair per job to profit from parallelism
|
||||
# - {std: 11, cxx: clang++-10, bt: Debug , bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 11, cxx: clang++-10, bt: Release, bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 14, cxx: clang++-10, bt: Debug , bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 14, cxx: clang++-10, bt: Release, bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 17, cxx: clang++-10, bt: Debug , bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 17, cxx: clang++-10, bt: Release, bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 20, cxx: clang++-10, bt: Debug , bitlinks: shared64, os: ubuntu-18.04}
|
||||
# - {std: 20, cxx: clang++-10, bt: Release, bitlinks: shared64, os: ubuntu-18.04}
|
||||
# env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
|
||||
# steps:
|
||||
# - {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
# - {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
# - {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
# - name: shared64-configure---------------------------------------------------
|
||||
# run: source .github/setenv.sh && c4_cfg_test shared64
|
||||
# - {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
|
||||
# - {name: clang-tidy, run: cmake "-DCMAKE_CXX_CLANG_TIDY=/usr/bin/clang-tidy-3.9;-checks=*" ../path/to/source}
|
||||
# - {name: cppcheck, run: cmake "-DCMAKE_CXX_CPPCHECK=/usr/bin/cppcheck;--std=c++11" ../path/to/source}
|
||||
# - {name: cpplint, run: cmake "-DCMAKE_CXX_CPPLINT=/usr/local/bin/cpplint;--linelength=179" ..}
|
||||
# - {name: include-what-you-use, run: cmake "-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=/usr/bin/iwyu;--transitive_includes_only" ..}
|
||||
# - {name: link-what-you-use, run: cmake -DCMAKE_LINK_WHAT_YOU_USE=TRUE ..}
|
@ -1,104 +0,0 @@
|
||||
name: test_install
|
||||
|
||||
defaults:
|
||||
#if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP
|
||||
run:
|
||||
# Use a bash shell so we can use the same syntax for environment variable
|
||||
# access regardless of the host operating system
|
||||
shell: bash -e -x {0}
|
||||
|
||||
on:
|
||||
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
PROJ_PFX_TARGET: c4core-
|
||||
PROJ_PFX_CMAKE: C4CORE_
|
||||
CMAKE_FLAGS:
|
||||
NUM_JOBS_BUILD: # 4
|
||||
|
||||
jobs:
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
install_tests:
|
||||
name: ${{matrix.name}}/${{matrix.bt}}
|
||||
# if: github.ref == 'refs/heads/master'
|
||||
continue-on-error: true
|
||||
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
|
||||
runs-on: ${{matrix.os}}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {name: find_package/linux , sdir: test/test_install , os: ubuntu-18.04, cxx: g++-10 , gen: "-DCMAKE_CXX_COMPILER=g++-10" , tgt: all , bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
|
||||
- {name: find_package/linux , sdir: test/test_install , os: ubuntu-18.04, cxx: g++-10 , gen: "-DCMAKE_CXX_COMPILER=g++-10" , tgt: all , bt: Debug , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
|
||||
- {name: find_package/linux/libcxx, sdir: test/test_install , os: ubuntu-18.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
|
||||
- {name: find_package/linux/libcxx, sdir: test/test_install , os: ubuntu-18.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Debug , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
|
||||
- {name: find_package/macos , sdir: test/test_install , os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
|
||||
- {name: find_package/macos , sdir: test/test_install , os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Debug , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
|
||||
- {name: find_package/win , sdir: test/test_install , os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/cmake -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
|
||||
- {name: find_package/win , sdir: test/test_install , os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Debug , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/cmake -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
|
||||
#
|
||||
- {name: find_library/linux , sdir: test/test_install , os: ubuntu-18.04, cxx: g++-10 , gen: "-DCMAKE_CXX_COMPILER=g++-10" , tgt: all , bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
|
||||
- {name: find_library/linux , sdir: test/test_install , os: ubuntu-18.04, cxx: g++-10 , gen: "-DCMAKE_CXX_COMPILER=g++-10" , tgt: all , bt: Debug , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
|
||||
- {name: find_library/linux/libcxx, sdir: test/test_install , os: ubuntu-18.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
|
||||
- {name: find_library/linux/libcxx, sdir: test/test_install , os: ubuntu-18.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Debug , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
|
||||
- {name: find_library/macos , sdir: test/test_install , os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
|
||||
- {name: find_library/macos , sdir: test/test_install , os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Debug , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
|
||||
- {name: find_library/win , sdir: test/test_install , os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
|
||||
- {name: find_library/win , sdir: test/test_install , os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Debug , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
|
||||
#
|
||||
- {name: singleheader/linux , sdir: test/test_singleheader, os: ubuntu-18.04, cxx: g++-10 , gen: "-DCMAKE_CXX_COMPILER=g++-10" , tgt: all , bt: Release, vars: , commonvars: }
|
||||
- {name: singleheader/linux , sdir: test/test_singleheader, os: ubuntu-18.04, cxx: g++-10 , gen: "-DCMAKE_CXX_COMPILER=g++-10" , tgt: all , bt: Debug , vars: , commonvars: }
|
||||
- {name: singleheader/linux/libcxx, sdir: test/test_singleheader, os: ubuntu-18.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Release, vars: , commonvars: "-DC4CORE_USE_LIBCXX=ON"}
|
||||
- {name: singleheader/linux/libcxx, sdir: test/test_singleheader, os: ubuntu-18.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Debug , vars: , commonvars: "-DC4CORE_USE_LIBCXX=ON"}
|
||||
- {name: singleheader/macos , sdir: test/test_singleheader, os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Release, vars: , commonvars: }
|
||||
- {name: singleheader/macos , sdir: test/test_singleheader, os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Debug , vars: , commonvars: }
|
||||
- {name: singleheader/win , sdir: test/test_singleheader, os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Release, vars: , commonvars: }
|
||||
- {name: singleheader/win , sdir: test/test_singleheader, os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Debug , vars: , commonvars: }
|
||||
env:
|
||||
CXX_: "${{matrix.cxx}}"
|
||||
BT: "${{matrix.bt}}"
|
||||
OS: "${{matrix.os}}"
|
||||
BDIR: "build/${{matrix.name}}-${{matrix.bt}}"
|
||||
IDIR: "install/${{matrix.name}}-${{matrix.bt}}"
|
||||
PDIR: "prefix/${{matrix.name}}-${{matrix.bt}}"
|
||||
steps:
|
||||
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive}}
|
||||
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
|
||||
- {name: show info, run: source .github/setenv.sh && c4_show_info}
|
||||
- name: Install python 3.9
|
||||
uses: actions/setup-python@v2
|
||||
with: { python-version: 3.9 }
|
||||
- name: preinstall
|
||||
run: |
|
||||
if [ "${{matrix.sdir}}" == "test/test_install" ] ; then
|
||||
mkdir -p $BDIR-staging
|
||||
cmake -S . -B $BDIR-staging -DCMAKE_INSTALL_PREFIX=$PDIR -DCMAKE_BUILD_TYPE=${{matrix.bt}} ${{matrix.gen}} ${{matrix.commonvars}}
|
||||
cmake --build $BDIR-staging --config ${{matrix.bt}} --target ${{matrix.tgt}} -j
|
||||
cmake --build $BDIR-staging --config ${{matrix.bt}} --target install
|
||||
fi
|
||||
- name: configure
|
||||
run: |
|
||||
mkdir -p $BDIR
|
||||
mkdir -p $IDIR
|
||||
cmake -S ${{matrix.sdir}} -B $BDIR \
|
||||
-DC4CORE_BUILD_TESTS=ON \
|
||||
-DC4CORE_VALGRIND=OFF \
|
||||
-DCMAKE_BUILD_TYPE=${{matrix.bt}} \
|
||||
-DCMAKE_INSTALL_PREFIX=$IDIR \
|
||||
${{matrix.gen}} \
|
||||
${{matrix.vars}} \
|
||||
${{matrix.commonvars}}
|
||||
- name: build
|
||||
run: |
|
||||
cmake --build $BDIR --config ${{matrix.bt}} --target c4core-test-build -j
|
||||
- name: run
|
||||
run: |
|
||||
cmake --build $BDIR --config ${{matrix.bt}} --target c4core-test-run
|
34
3rdparty/rapidyaml/ext/c4core/.gitignore
vendored
34
3rdparty/rapidyaml/ext/c4core/.gitignore
vendored
@ -1,34 +0,0 @@
|
||||
# text editor files
|
||||
*.bck
|
||||
\#*
|
||||
*~
|
||||
.ccls-cache/
|
||||
.clangd/
|
||||
.cache/
|
||||
.cquery_cached_index/
|
||||
__pycache__/
|
||||
|
||||
# Visual Studio files
|
||||
.vs/
|
||||
.vscode/
|
||||
# QtCreator files
|
||||
CMakeLists.txt.user
|
||||
# Eclipse
|
||||
.project
|
||||
.cproject
|
||||
/.settings/
|
||||
|
||||
# build files
|
||||
build/
|
||||
install/
|
||||
.python-version
|
||||
compile_commands.json
|
||||
|
||||
# test files
|
||||
/Testing/
|
||||
|
||||
# continuous integration files
|
||||
.github/vagrant/*.log
|
||||
.github/vagrant/.vagrant
|
||||
.github/vagrant/macos/.vagrant
|
||||
src_singleheader/
|
9
3rdparty/rapidyaml/ext/c4core/.gitmodules
vendored
9
3rdparty/rapidyaml/ext/c4core/.gitmodules
vendored
@ -1,9 +0,0 @@
|
||||
[submodule "cmake"]
|
||||
path = cmake
|
||||
url = https://github.com/biojppm/cmake
|
||||
[submodule "extern/debugbreak"]
|
||||
path = src/c4/ext/debugbreak
|
||||
url = https://github.com/biojppm/debugbreak
|
||||
[submodule "src/c4/ext/fast_float"]
|
||||
path = src/c4/ext/fast_float
|
||||
url = https://github.com/fastfloat/fast_float
|
107
3rdparty/rapidyaml/ext/c4core/CMakeLists.txt
vendored
107
3rdparty/rapidyaml/ext/c4core/CMakeLists.txt
vendored
@ -1,107 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
|
||||
include(./cmake/c4Project.cmake)
|
||||
project(c4core
|
||||
DESCRIPTION "Multiplatform low-level C++ utilities"
|
||||
HOMEPAGE_URL "https://github.com/biojppm/c4core"
|
||||
LANGUAGES CXX)
|
||||
include(./compat.cmake)
|
||||
|
||||
c4_project(VERSION 0.1.8
|
||||
AUTHOR "Joao Paulo Magalhaes <dev@jpmag.me>")
|
||||
|
||||
option(C4CORE_WITH_FASTFLOAT "use fastfloat to parse floats" ON)
|
||||
|
||||
set(C4CORE_SRC_FILES
|
||||
c4/allocator.hpp
|
||||
c4/base64.hpp
|
||||
c4/base64.cpp
|
||||
c4/blob.hpp
|
||||
c4/bitmask.hpp
|
||||
c4/charconv.hpp
|
||||
c4/c4_pop.hpp
|
||||
c4/c4_push.hpp
|
||||
c4/char_traits.cpp
|
||||
c4/char_traits.hpp
|
||||
c4/common.hpp
|
||||
c4/compiler.hpp
|
||||
c4/config.hpp
|
||||
c4/cpu.hpp
|
||||
c4/ctor_dtor.hpp
|
||||
c4/dump.hpp
|
||||
c4/enum.hpp
|
||||
c4/error.cpp
|
||||
c4/error.hpp
|
||||
c4/export.hpp
|
||||
c4/format.hpp
|
||||
c4/format.cpp
|
||||
c4/hash.hpp
|
||||
c4/language.hpp
|
||||
c4/language.cpp
|
||||
c4/memory_resource.cpp
|
||||
c4/memory_resource.hpp
|
||||
c4/memory_util.cpp
|
||||
c4/memory_util.hpp
|
||||
c4/platform.hpp
|
||||
c4/preprocessor.hpp
|
||||
c4/restrict.hpp
|
||||
c4/span.hpp
|
||||
c4/std/std.hpp
|
||||
c4/std/std_fwd.hpp
|
||||
c4/std/string.hpp
|
||||
c4/std/string_fwd.hpp
|
||||
c4/std/tuple.hpp
|
||||
c4/std/vector.hpp
|
||||
c4/std/vector_fwd.hpp
|
||||
c4/substr.hpp
|
||||
c4/substr_fwd.hpp
|
||||
c4/szconv.hpp
|
||||
c4/type_name.hpp
|
||||
c4/types.hpp
|
||||
c4/unrestrict.hpp
|
||||
c4/utf.hpp
|
||||
c4/utf.cpp
|
||||
c4/windows.hpp
|
||||
c4/windows_pop.hpp
|
||||
c4/windows_push.hpp
|
||||
c4/c4core.natvis
|
||||
#
|
||||
c4/ext/debugbreak/debugbreak.h
|
||||
c4/ext/rng/rng.hpp
|
||||
c4/ext/sg14/inplace_function.h
|
||||
)
|
||||
if(C4CORE_WITH_FASTFLOAT)
|
||||
list(APPEND C4CORE_SRC_FILES
|
||||
c4/ext/fast_float.hpp
|
||||
c4/ext/fast_float_all.h
|
||||
)
|
||||
endif()
|
||||
set(C4CORE_AMALGAMATED ${C4CORE_SRC_DIR}/../src_singleheader/c4/c4core_all.hpp)
|
||||
list(TRANSFORM C4CORE_SRC_FILES PREPEND "${C4CORE_SRC_DIR}/" OUTPUT_VARIABLE C4CORE_SRC_FILES_FULL)
|
||||
|
||||
add_custom_target(c4core-amalgamate
|
||||
python ${CMAKE_CURRENT_LIST_DIR}/tools/amalgamate.py ${C4CORE_AMALGAMATED}
|
||||
COMMENT "${CMAKE_CURRENT_LIST_DIR}/tools/amalgamate.py ${C4CORE_AMALGAMATED}"
|
||||
BYPRODUCTS ${C4CORE_AMALGAMATED}
|
||||
DEPENDS ${C4CORE_SRC_FILES_FULL}
|
||||
)
|
||||
|
||||
c4_add_library(c4core
|
||||
INC_DIRS
|
||||
$<BUILD_INTERFACE:${C4CORE_SRC_DIR}> $<INSTALL_INTERFACE:include>
|
||||
SOURCE_ROOT ${C4CORE_SRC_DIR}
|
||||
SOURCES ${C4CORE_SRC_FILES}
|
||||
)
|
||||
|
||||
if(NOT C4CORE_WITH_FASTFLOAT)
|
||||
target_compile_definitions(c4core PUBLIC -DC4CORE_NO_FAST_FLOAT)
|
||||
endif()
|
||||
|
||||
|
||||
#-------------------------------------------------------
|
||||
|
||||
c4_install_target(c4core)
|
||||
c4_install_exports()
|
||||
|
||||
c4_add_dev_targets()
|
||||
|
||||
c4_pack_project(TYPE LIBRARY)
|
26
3rdparty/rapidyaml/ext/c4core/LICENSE-BOOST.txt
vendored
26
3rdparty/rapidyaml/ext/c4core/LICENSE-BOOST.txt
vendored
@ -1,26 +0,0 @@
|
||||
src/c4/ext/sg14/inplace_function.h is distributed under the following terms:
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
20
3rdparty/rapidyaml/ext/c4core/LICENSE.txt
vendored
20
3rdparty/rapidyaml/ext/c4core/LICENSE.txt
vendored
@ -1,20 +0,0 @@
|
||||
Copyright (c) 2018, Joao Paulo Magalhaes <dev@jpmag.me>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
232
3rdparty/rapidyaml/ext/c4core/README.md
vendored
232
3rdparty/rapidyaml/ext/c4core/README.md
vendored
@ -1,232 +0,0 @@
|
||||
# c4core - C++ core utilities
|
||||
|
||||
[](https://github.com/biojppm/c4core/blob/master/LICENSE.txt)
|
||||
[](https://c4core.docsforge.com/)
|
||||
[](https://github.com/biojppm/c4core/actions?query=ci)
|
||||
[](https://coveralls.io/github/biojppm/c4core)
|
||||
[](https://codecov.io/gh/biojppm/c4core)
|
||||
[](https://lgtm.com/projects/g/biojppm/c4core/alerts/)
|
||||
[](https://lgtm.com/projects/g/biojppm/c4core/context:cpp)
|
||||
|
||||
|
||||
c4core is a library of low-level C++ utilities, written with low-latency
|
||||
projects in mind.
|
||||
|
||||
Some of the utilities provided by c4core have already equivalent
|
||||
functionality in the C++ standard, but they are provided as the existing C++
|
||||
equivalent may be insufficient (eg, std::string_view), inefficient (eg,
|
||||
std::string), heavy (eg streams), or plainly unusable on some
|
||||
platforms/projects, (eg exceptions); some other utilities have equivalent
|
||||
under consideration for C++ standardisation; and yet some other utilities
|
||||
have (to my knowledge) no equivalent under consideration. Be that as it may,
|
||||
I've been using these utilities in this or similar forms for some years now,
|
||||
and I've found them incredibly useful in my projects. I'm packing these as a
|
||||
separate library, as all of my projects use it.
|
||||
|
||||
c4core is [extensively unit-tested in Linux, Windows and
|
||||
MacOS](https://github.com/biojppm/c4core/actions). The tests cover
|
||||
x64, x86, arm, wasm (emscripten), aarch64, ppc64le and s390x
|
||||
architectures, and include analysing c4core with:
|
||||
* valgrind
|
||||
* clang-tidy
|
||||
* clang sanitizers:
|
||||
* memory
|
||||
* address
|
||||
* undefined behavior
|
||||
* thread
|
||||
* [LGTM.com](https://lgtm.com/projects/g/biojppm/c4core)
|
||||
|
||||
c4core also works [in
|
||||
bare-metal](https://github.com/biojppm/c4core/issues/63) as well as
|
||||
[in RISC-V](https://github.com/biojppm/c4core/pull/69) but at the
|
||||
moment it's not easy to add automated tests to the CI, so for now
|
||||
these are not in the list of official architectures.
|
||||
|
||||
|
||||
## Obtaining c4core
|
||||
|
||||
c4core uses git submodules. It is best to clone c4core with the `--recursive`
|
||||
option:
|
||||
|
||||
```bash
|
||||
# using --recursive makes sure git submodules are also cloned at the same time
|
||||
git clone --recursive https://github.com/biojppm/c4core
|
||||
```
|
||||
|
||||
If you ommit the `--recursive` option, then after cloning you will have to
|
||||
make git checkout the current version of the submodules, using `git submodule
|
||||
init` followed by `git submodule update`.
|
||||
|
||||
|
||||
## Using c4core in your project
|
||||
|
||||
c4core is built with cmake, and assumes you also use cmake. Although c4core
|
||||
is NOT header-only, and currently has no install target, you can very easily
|
||||
use c4core in your project by using
|
||||
`add_subdirectory(${path_to_c4core_root})` in your CMakeLists.txt; this will
|
||||
add c4core as a subproject of your project. Doing this is not intrusive to
|
||||
your cmake project because c4core is fast to build (typically under 10s), and
|
||||
it also prefixes every cmake variable with `C4CORE_`. But more importantly
|
||||
this will enable you to compile c4core with the exact same compile settings
|
||||
used by your project.
|
||||
|
||||
Here's a very quick complete example of setting up your project to use
|
||||
c4core:
|
||||
|
||||
```cmake
|
||||
project(foo)
|
||||
|
||||
add_subdirectory(c4core)
|
||||
|
||||
add_library(foo foo.cpp)
|
||||
target_link_libraries(foo PUBLIC c4core) # that's it!
|
||||
```
|
||||
|
||||
Note above that the call to `target_link_libraries()` is using PUBLIC
|
||||
linking. This is required to make sure the include directories from `c4core`
|
||||
are transitively used.
|
||||
|
||||
|
||||
## Quick tour
|
||||
|
||||
All of the utilities in this library are under the namespace `c4`; any
|
||||
exposed macros use the prefix `C4_`: eg `C4_ASSERT()`.
|
||||
|
||||
### Multi-platform / multi-compiler utilities
|
||||
|
||||
```c++
|
||||
// TODO: elaborate on the topics:
|
||||
#include <c4/error.hpp>
|
||||
|
||||
C4_LIKELY()/C4_UNLIKELY()
|
||||
|
||||
C4_RESTRICT, $, c$, $$, c$$
|
||||
#include <c4/restrict.hpp>
|
||||
#include <c4/unrestrict.hpp>
|
||||
|
||||
#include <c4/windows_push.hpp>
|
||||
#include <c4/windows_pop.hpp>
|
||||
|
||||
C4_UNREACHABLE()
|
||||
|
||||
c4::type_name()
|
||||
```
|
||||
|
||||
### Runtime assertions and error handling
|
||||
|
||||
```c++
|
||||
// TODO: elaborate on the topics:
|
||||
|
||||
error callback
|
||||
|
||||
C4_ASSERT()
|
||||
C4_XASSERT()
|
||||
C4_CHECK()
|
||||
|
||||
C4_ERROR()
|
||||
C4_NOT_IMPLEMENTED()
|
||||
```
|
||||
|
||||
### Memory allocation
|
||||
|
||||
```c++
|
||||
// TODO: elaborate on the topics:
|
||||
|
||||
c4::aalloc(), c4::afree() // aligned allocation
|
||||
|
||||
c4::MemoryResource // global and scope
|
||||
|
||||
c4::Allocator
|
||||
```
|
||||
|
||||
### Mass initialization/construction/destruction
|
||||
|
||||
```c++
|
||||
// TODO: elaborate on the topics:
|
||||
|
||||
c4::construct()/c4::construct_n()
|
||||
|
||||
c4::destroy()/c4::destroy_n()
|
||||
|
||||
c4::copy_construct()/c4::copy_construct_n()
|
||||
|
||||
c4::copy_assign()/c4::copy_assign_n()
|
||||
|
||||
c4::move_construct()/c4::move_construct_n()
|
||||
|
||||
c4::move_assign()/c4::move_assign_n()
|
||||
|
||||
c4::make_room()/c4::destroy_room()
|
||||
```
|
||||
|
||||
|
||||
### Writeable string views: c4::substr and c4::csubstr
|
||||
|
||||
Here: [`#include <c4/substr.hpp>`](src/c4/substr.hpp)
|
||||
|
||||
|
||||
### Value <-> character interoperation
|
||||
|
||||
Here: [`#include <c4/charconv.hpp>`](src/c4/charconv.hpp)
|
||||
|
||||
```c++
|
||||
// TODO: elaborate on the topics:
|
||||
|
||||
c4::utoa(), c4::atou()
|
||||
c4::itoa(), c4::atoi()
|
||||
c4::ftoa(), c4::atof()
|
||||
c4::dtoa(), c4::atod()
|
||||
|
||||
c4::to_chars(), c4::from_chars()
|
||||
c4::to_chars_sub()
|
||||
c4::to_chars_first()
|
||||
```
|
||||
|
||||
### String formatting and parsing
|
||||
|
||||
* [`#include <c4/format.hpp>`](src/c4/format.hpp)
|
||||
|
||||
```c++
|
||||
// TODO: elaborate on the topics:
|
||||
|
||||
c4::cat(), c4::uncat()
|
||||
|
||||
c4::catsep(), c4::uncatsep()
|
||||
|
||||
c4::format(), c4::unformat()
|
||||
|
||||
// formatting:
|
||||
c4::raw, c4::craw
|
||||
```
|
||||
|
||||
### `c4::span` and `c4::blob`
|
||||
|
||||
* [`#include <c4/span.hpp>`](src/c4/span.hpp)
|
||||
* [`#include <c4/blob.hpp>`](src/c4/blob.hpp)
|
||||
|
||||
|
||||
### Enums and enum symbols
|
||||
|
||||
[`#include <c4/enum.hpp>`](src/c4/enum.hpp)
|
||||
|
||||
```c++
|
||||
// TODO: elaborate on the topics:
|
||||
|
||||
c4::e2str(), c4::str2e()
|
||||
```
|
||||
|
||||
### Bitmasks and bitmask symbols
|
||||
|
||||
[`#include <c4/bitmask.hpp>`](src/c4/bitmask.hpp)
|
||||
|
||||
```c++
|
||||
// TODO: elaborate on the topics:
|
||||
|
||||
c4::bm2str(), c4::str2bm()
|
||||
```
|
||||
|
||||
### Base64 encoding / decoding
|
||||
|
||||
[`#include <c4/base64.hpp>`](src/c4/base64.hpp)
|
||||
|
||||
### Fuzzy float comparison
|
23
3rdparty/rapidyaml/ext/c4core/ROADMAP.md
vendored
23
3rdparty/rapidyaml/ext/c4core/ROADMAP.md
vendored
@ -1,23 +0,0 @@
|
||||
# ROADMAP
|
||||
|
||||
## New features
|
||||
|
||||
These changes will provide new features, and client code can be kept
|
||||
unchanged.
|
||||
|
||||
|
||||
## API changes
|
||||
|
||||
These changes will require client code to be updated.
|
||||
|
||||
* [breaking] drop use of C-style sprintf() formats in error messages and
|
||||
assertions. Change the implementation to use c4::format()
|
||||
```c++
|
||||
C4_ASSERT_MSG(sz > s.size(), "sz=%zu s.size()=%zu", sz, s.size());
|
||||
// ... the above changes to:
|
||||
C4_ASSERT_MSG(sz > s.size(), "sz={} s.size()={}", sz, s.size());
|
||||
```
|
||||
|
||||
## Implementation changes
|
||||
|
||||
* drop calls to sprintf() in charconv.hpp.
|
@ -1,3 +0,0 @@
|
||||
# 0.1.0
|
||||
|
||||
First release.
|
@ -1,5 +0,0 @@
|
||||
# 0.1.1
|
||||
|
||||
- Fix parsing of hexadecimal floats ([2d5c3f0](https://github.com/biojppm/c4core/commits/2d5c3f0))
|
||||
- Fix `csubstr::reverse_sub()` ([902c5b9](https://github.com/biojppm/c4core/commits/902c5b9))
|
||||
- Fix [#35](https://github.com/biojppm/c4core/issues/35): add SO_VERSION
|
@ -1,4 +0,0 @@
|
||||
- Fix error macros (ie `C4_ERROR()`, `C4_CHECK()`, `C4_ASSERT()`, etc) such that they are a single statement
|
||||
- `is_debugger_attached()`: add MacOSX version
|
||||
- Add support for Visual Studio 2022
|
||||
- Ensure `C4_LITTLE_ENDIAN` is always defined, even with mixed endianness
|
@ -1 +0,0 @@
|
||||
- Update fast_float to [3.2.1](https://github.com/fastfloat/fast_float/releases/tag/v3.2.0)
|
@ -1,6 +0,0 @@
|
||||
- [PR #38](https://github.com/biojppm/c4core/pull/38): add s390x architecture feature macros.
|
||||
- Fix compiler warnings after update of fast_float to [3.2.1](https://github.com/fastfloat/fast_float/releases/tag/v3.2.0).
|
||||
|
||||
### Thanks
|
||||
|
||||
@musicinmybrain
|
@ -1,2 +0,0 @@
|
||||
- Add support for aarch64, s390x, ppc64le CPU architectures
|
||||
- Update debugbreak header (added support for the above architectures)
|
@ -1,2 +0,0 @@
|
||||
- Fix wrong version names in version 0.1.5 (was saying 0.1.4, should be 0.1.5)
|
||||
|
@ -1,5 +0,0 @@
|
||||
- Fix build with C4CORE_NO_FAST_FLOAT ([#42](https://github.com/biojppm/c4core/pull/42)).
|
||||
- Fix clang warning in AIX/xlclang ([#44](https://github.com/biojppm/c4core/pull/44)).
|
||||
|
||||
### Thanks
|
||||
--- @mbs-c
|
45
3rdparty/rapidyaml/ext/c4core/changelog/0.1.8.md
vendored
45
3rdparty/rapidyaml/ext/c4core/changelog/0.1.8.md
vendored
@ -1,45 +0,0 @@
|
||||
|
||||
### New features
|
||||
|
||||
- Add amalgamation into a single header file ([PR #48](https://github.com/biojppm/c4core/pull/48)):
|
||||
- The amalgamated header will be available together with the deliverables from each release.
|
||||
- To generate the amalgamated header:
|
||||
```
|
||||
$ python tools/amalgamate.py c4core_all.hpp
|
||||
```
|
||||
- To use the amalgamated header:
|
||||
- Include at will in any header of your project.
|
||||
- In one - and only one - of your project source files, `#define C4CORE_SINGLE_HDR_DEFINE_NOW` and then `#include <c4core_all.hpp>`. This will enable the function and class definitions in the header file. For example, here's a sample program:
|
||||
```c++
|
||||
#include <iostream>
|
||||
#define C4CORE_SINGLE_HDR_DEFINE_NOW // do this before the include
|
||||
#include <c4core_all.hpp>
|
||||
int main()
|
||||
{
|
||||
for(c4::csubstr s : c4::csubstr("a/b/c/d").split('/'))
|
||||
std::cout << s << "\n";
|
||||
}
|
||||
```
|
||||
- Add `csubstr::is_unsigned_integer()` and `csubstr::is_real()` ([PR #49](https://github.com/biojppm/c4core/pull/49)).
|
||||
- CMake: add alias target c4core::c4core, guaranteeing that the same code can be used with `add_subdirectory()` and `find_package()`. (see [rapidyaml #173](https://github.com/biojppm/rapidyaml/issues/173))
|
||||
- Add support for compilation with emscripten (WebAssembly+javascript) ([PR #52](https://github.com/biojppm/c4core/pull/52)).
|
||||
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fix edge cases with empty strings in `span::first()`, `span::last()` and `span::range()` ([PR #49](https://github.com/biojppm/c4core/pull/49)).
|
||||
- Accept octal numbers in `substr::first_real_span()` and `substr::is_real()` ([PR #49](https://github.com/biojppm/c4core/pull/49)).
|
||||
- `substr`: fix coverage misses in number query methods ([PR #49](https://github.com/biojppm/c4core/pull/49)).
|
||||
- Use single-header version of fast_float ([PR #49](https://github.com/biojppm/c4core/pull/47)).
|
||||
- Suppress warnings triggered from fast_float in clang (`-Wfortify-source`) ([PR #49](https://github.com/biojppm/c4core/pull/47)).
|
||||
- Add missing `inline` in [src/c4/ext/rng/rng.hpp](src/c4/ext/rng/rng.hpp) ([PR #49](https://github.com/biojppm/c4core/pull/47)).
|
||||
- Fix compilation of [src/c4/ext/rng/inplace_function.h](src/c4/ext/inplace_function.h) in C++11 ([PR #49](https://github.com/biojppm/c4core/pull/47)).
|
||||
- Change order of headers, notably in `windows_push.hpp` ([PR #47](https://github.com/biojppm/c4core/pull/47)).
|
||||
- In `c4/charconv.hpp`: do not use C4_ASSERT in `to_c_fmt()`, which is `constexpr`.
|
||||
- Fix [#53](https://github.com/biojppm/c4core/issues/53): cmake install targets were missing call to `export()` ([PR #55](https://github.com/biojppm/c4core/pull/55)).
|
||||
- Fix linking of subprojects with libc++: flags should be forwarded through `CMAKE_***_FLAGS` instead of being set explicitly per-target ([PR #54](https://github.com/biojppm/c4core/pull/54)).
|
||||
|
||||
|
||||
### Thanks
|
||||
|
||||
- @cschreib
|
@ -1,31 +0,0 @@
|
||||
### Breaking changes
|
||||
|
||||
- fix [#63](https://github.com/biojppm/c4core/issues/63): remove `c4/time.hpp` and `c4/time.cpp` which prevented compilation in bare-metal mode ([PR #64](https://github.com/biojppm/c4core/issues/64)).
|
||||
|
||||
### New features
|
||||
|
||||
- Added decoding of UTF codepoints: `c4::decode_code_point()` ([PR #65](https://github.com/biojppm/c4core/issues/65)).
|
||||
- Experimental feature: add formatted-dumping facilities: using semantics like `c4::cat()`, `c4::catsep()` and `c4::format()`, where the subject is not a string buffer but a dump callback accepting strings. This still requires a string buffer for serialization of non-string types, but the buffer's required size is now limited to the max serialized size of non-string arguments, in contrast to the requirement in `c4::cat()` et al which is the total serialized size of every argument. This enables very efficient and generic printf-like semantics with reuse of a single small buffer, and allows direct-printing to terminal or file ([PR #67](https://github.com/biojppm/c4core/issues/67)). This feature is still experimental and a minor amount of changes to the API is possible.
|
||||
- Added macro `C4_IF_CONSTEXPR` resolving to `if constexpr (...)` if the c++ standard is at least c++17.
|
||||
- `csubstr`: add `count(csubstr)` overload.
|
||||
- Add support for RISC-V architectures ([PR #69](https://github.com/biojppm/c4core/issues/69)).
|
||||
- Add support for bare-metal compilation ([PR #64](https://github.com/biojppm/c4core/issues/64)).
|
||||
- gcc >= 4.8 support using polyfills for missing templates and features ([PR #74](https://github.com/biojppm/c4core/pull/74) and [PR #68](https://github.com/biojppm/c4core/pull/68)).
|
||||
|
||||
### Fixes
|
||||
|
||||
- `csubstr::operator==(std::nullptr_t)` now returns true if either `.str==nullptr` or `.len==0`.
|
||||
- Fix: `bool operator==(const char (&s)[N], csubstr)` and `operator==(const char (&s)[N], substr)`. The template declaration for these functions had an extra `const` which prevented these functions to participate in overload resolution, which in some cases resulted in calls resolving to `operator==(std::string const&, csubstr)` if that header was visible ([PR #64](https://github.com/biojppm/c4core/issues/64)).
|
||||
- Fix `csubstr::last_not_of()`: optional positional parameter was ignored [PR #62](https://github.com/biojppm/c4core/pull/62).
|
||||
- `atof()`, `atod()`, `atox()`, `substr::is_real()`, `substr::first_real_span()`: accept `infinity`, `inf` and `nan` as valid reals [PR #60](https://github.com/biojppm/c4core/pull/60).
|
||||
- Add missing export symbols [PR #56](https://github.com/biojppm/c4core/pull/56), [PR #57](https://github.com/biojppm/c4core/pull/57).
|
||||
- `c4/substr_fwd.hpp`: fix compilation failure in Xcode 12 and earlier, where the forward declaration for `std::allocator` is inside the `inline namespace __1`, unlike later versions [PR #61](https://github.com/biojppm/c4core/pull/61), reported in [rapidyaml#185](https://github.com/biojppm/rapidyaml/issues/185).
|
||||
- `c4/error.hpp`: fix compilation failure in debug mode in Xcode 12 and earlier: `__clang_major__` does not mean the same as in the common clang, and as a result the warning `-Wgnu-inline-cpp-without-extern` does not exist there.
|
||||
|
||||
|
||||
### Thanks
|
||||
|
||||
- @danngreen
|
||||
- @Xeonacid
|
||||
- @aviktorov
|
||||
- @fargies
|
@ -1 +0,0 @@
|
||||
__pycache__
|
@ -1,120 +0,0 @@
|
||||
|
||||
|
||||
# this function works both with multiconfig and single-config generators.
|
||||
function(set_default_build_type which)
|
||||
# CMAKE_CONFIGURATION_TYPES is available only for multiconfig generators.
|
||||
# so set the build type only if CMAKE_CONFIGURATION_TYPES does not exist.
|
||||
if(NOT CMAKE_CONFIGURATION_TYPES) # not a multiconfig generator?
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
if(NOT which)
|
||||
set(which RelWithDebInfo)
|
||||
endif()
|
||||
message("Defaulting to ${which} build.")
|
||||
set(CMAKE_BUILD_TYPE ${which} CACHE STRING "")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
# https://stackoverflow.com/questions/31546278/where-to-set-cmake-configuration-types-in-a-project-with-subprojects
|
||||
function(setup_configuration_types)
|
||||
set(options0arg
|
||||
)
|
||||
set(options1arg
|
||||
DEFAULT
|
||||
)
|
||||
set(optionsnarg
|
||||
TYPES
|
||||
)
|
||||
cmake_parse_arguments("" "${options0arg}" "${options1arg}" "${optionsnarg}" ${ARGN})
|
||||
|
||||
if(NOT TYPES)
|
||||
set(TYPES Release Debug RelWithDebInfo MinSizeRel)
|
||||
endif()
|
||||
|
||||
# make it safe to call repeatedly
|
||||
if(NOT _setup_configuration_types_done)
|
||||
set(_setup_configuration_types_done 1 CACHE INTERNAL "")
|
||||
|
||||
# No reason to set CMAKE_CONFIGURATION_TYPES if it's not a multiconfig generator
|
||||
# Also no reason mess with CMAKE_BUILD_TYPE if it's a multiconfig generator.
|
||||
|
||||
if(CMAKE_CONFIGURATION_TYPES) # multiconfig generator?
|
||||
set(CMAKE_CONFIGURATION_TYPES "${TYPES}" CACHE STRING "")
|
||||
else() # single-config generator
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY HELPSTRING "Choose the type of build")
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${TYPES}")
|
||||
# set the valid options for cmake-gui drop-down list
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
# https://stackoverflow.com/questions/31546278/where-to-set-cmake-configuration-types-in-a-project-with-subprojects
|
||||
function(add_configuration_type name)
|
||||
set(flag_vars
|
||||
C_FLAGS
|
||||
CXX_FLAGS
|
||||
SHARED_LINKER_FLAGS
|
||||
STATIC_LINKER_FLAGS
|
||||
MODULE_LINKER_FLAGS
|
||||
EXE_LINKER_FLAGS
|
||||
RC_FLAGS
|
||||
)
|
||||
|
||||
set(options0arg
|
||||
PREPEND # when defaulting to a config, prepend to it instead of appending to it
|
||||
SET_MAIN_FLAGS # eg, set CMAKE_CXX_FLAGS from CMAKE_CXX_FLAGS_${name}
|
||||
)
|
||||
set(options1arg
|
||||
DEFAULT_FROM # take the initial value of the flags from this config
|
||||
)
|
||||
set(optionsnarg
|
||||
C_FLAGS
|
||||
CXX_FLAGS
|
||||
SHARED_LINKER_FLAGS
|
||||
STATIC_LINKER_FLAGS
|
||||
MODULE_LINKER_FLAGS
|
||||
EXE_LINKER_FLAGS
|
||||
RC_FLAGS
|
||||
)
|
||||
cmake_parse_arguments(_act "${options0arg}" "${options1arg}" "${optionsnarg}" ${ARGN})
|
||||
|
||||
string(TOUPPER ${name} UNAME)
|
||||
|
||||
# make it safe to call repeatedly
|
||||
if(NOT _add_configuration_type_${name})
|
||||
set(_add_configuration_type_${name} 1 CACHE INTERNAL "")
|
||||
|
||||
setup_configuration_types()
|
||||
|
||||
if(CMAKE_CONFIGURATION_TYPES) # multiconfig generator?
|
||||
set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES};${name}" CACHE STRING "" FORCE)
|
||||
else() # single-config generator
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY HELPSTRING "Choose the type of build" FORCE)
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${CMAKE_BUILD_TYPES};${name}" FORCE)
|
||||
# set the valid options for cmake-gui drop-down list
|
||||
endif()
|
||||
|
||||
# now set up the configuration
|
||||
message(STATUS "config: CMAKE_${f}_${UNAME} --- ${val}")
|
||||
foreach(f ${flag_vars})
|
||||
set(val ${_act_${f}})
|
||||
message(STATUS "config: ${name}: ${f} --- ${val}")
|
||||
if(_act_DEFAULT_FROM)
|
||||
if(_act_PREPEND)
|
||||
set(val "${val} ${CMAKE_${f}_${_act_DEFAULT_FROM}}")
|
||||
else()
|
||||
set(val "${CMAKE_${f}_${_act_DEFAULT_FROM}} ${val}")
|
||||
endif()
|
||||
endif()
|
||||
message(STATUS "config: CMAKE_${f}_${UNAME} --- ${val}")
|
||||
set(CMAKE_${f}_${UNAME} "${val}" CACHE STRING "" FORCE)
|
||||
mark_as_advanced(CMAKE_${f}_${UNAME})
|
||||
if(_act_SET_MAIN_FLAGS)
|
||||
set(CMAKE_${f} "${CMAKE_${f}_${UNAME}}" CACHE STRING "" FORCE)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
endfunction()
|
@ -1,30 +0,0 @@
|
||||
# create hierarchical source groups based on a dir tree
|
||||
#
|
||||
# EXAMPLE USAGE:
|
||||
#
|
||||
# create_source_group("src" "${SRC_ROOT}" "${SRC_LIST}")
|
||||
#
|
||||
# Visual Studio usually has the equivalent to this:
|
||||
#
|
||||
# create_source_group("Header Files" ${PROJ_SRC_DIR} "${PROJ_HEADERS}")
|
||||
# create_source_group("Source Files" ${PROJ_SRC_DIR} "${PROJ_SOURCES}")
|
||||
#
|
||||
# TODO: <jpmag> this was taken from a stack overflow answer. Need to find it
|
||||
# and add a link here.
|
||||
|
||||
macro(create_source_group GroupPrefix RootDir ProjectSources)
|
||||
set(DirSources ${ProjectSources})
|
||||
foreach(Source ${DirSources})
|
||||
#message(STATUS "s=${Source}")
|
||||
string(REGEX REPLACE "${RootDir}" "" RelativePath "${Source}")
|
||||
#message(STATUS " ${RelativePath}")
|
||||
string(REGEX REPLACE "[\\\\/][^\\\\/]*$" "" RelativePath "${RelativePath}")
|
||||
#message(STATUS " ${RelativePath}")
|
||||
string(REGEX REPLACE "^[\\\\/]" "" RelativePath "${RelativePath}")
|
||||
#message(STATUS " ${RelativePath}")
|
||||
string(REGEX REPLACE "/" "\\\\\\\\" RelativePath "${RelativePath}")
|
||||
#message(STATUS " ${RelativePath}")
|
||||
source_group("${GroupPrefix}\\${RelativePath}" FILES ${Source})
|
||||
#message(STATUS " ${Source}")
|
||||
endforeach(Source)
|
||||
endmacro(create_source_group)
|
2566
3rdparty/rapidyaml/ext/c4core/cmake/Doxyfile.full.in
vendored
2566
3rdparty/rapidyaml/ext/c4core/cmake/Doxyfile.full.in
vendored
File diff suppressed because it is too large
Load Diff
2566
3rdparty/rapidyaml/ext/c4core/cmake/Doxyfile.in
vendored
2566
3rdparty/rapidyaml/ext/c4core/cmake/Doxyfile.in
vendored
File diff suppressed because it is too large
Load Diff
@ -1,215 +0,0 @@
|
||||
# (C) 2017 Joao Paulo Magalhaes <dev@jpmag.me>
|
||||
|
||||
include(CMakeParseArguments)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Usage:
|
||||
#
|
||||
# ExternalProject_GetFwdArgs(output_var
|
||||
# [NO_DEFAULTS]
|
||||
# [VARS var1 var2 ...]
|
||||
# [EXCLUDE xvar1 xvar2 ...]
|
||||
# [QUIET]
|
||||
# )
|
||||
#
|
||||
# Get the current cmake environment in a sequence of -DVAR=${VAR}
|
||||
# tokens so that the environment can be forwarded to an external
|
||||
# cmake project through CMAKE_ARGS.
|
||||
#
|
||||
# Example:
|
||||
# ExternalProject_GetFwdArgs(FWD_ARGS)
|
||||
# ExternalProject_Add(foo SOURCE_DIR ../foo
|
||||
# CMAKE_ARGS ${FWD_ARGS}
|
||||
# ... etc)
|
||||
#
|
||||
# Use this function to enable forwarding the current cmake environment
|
||||
# to an external project. It outputs all the needed variables in the
|
||||
# form of a sequence of -DVAR=value, suitable for use in the CMAKE_ARGS
|
||||
# clause of ExternalProject_Add().
|
||||
#
|
||||
# This function uses ExternalProject_GetFwdVarNames() to find out the
|
||||
# list of variables to export. If this behaviour does not fit your
|
||||
# needs you can:
|
||||
#
|
||||
# * append more of your own variables (using the VARS
|
||||
# argument). The vars specified in this option will each be
|
||||
# added to the output in the form of -Dvar=${var}
|
||||
#
|
||||
# * you can also avoid any defaults obtained through usage of
|
||||
# ExternalProject_GetFwdNames() by specifying NO_DEFAULTS.
|
||||
#
|
||||
# Example with custom variable names (adding more):
|
||||
# ExternalProject_GetFwdVarNames(FWD_ARGS VARS USER_VAR1 USER_VAR2)
|
||||
# ExternalProjectAdd(foo SOURCE_DIR ../foo CMAKE_ARGS ${FWD_ARGS})
|
||||
#
|
||||
# Example with custom variable names (just your own):
|
||||
# ExternalProject_GetFwdVarNames(FWD_ARGS NO_DEFAULTS VARS USER_VAR1 USER_VAR2)
|
||||
# ExternalProjectAdd(foo SOURCE_DIR ../foo CMAKE_ARGS ${FWD_ARGS})
|
||||
#
|
||||
function(ExternalProject_GetFwdArgs output_var)
|
||||
set(options0arg
|
||||
NO_DEFAULTS
|
||||
QUIET
|
||||
)
|
||||
set(options1arg
|
||||
)
|
||||
set(optionsnarg
|
||||
VARS
|
||||
EXCLUDE
|
||||
)
|
||||
cmake_parse_arguments(_epgfa "${options0arg}" "${options1arg}" "${optionsnarg}" ${ARGN})
|
||||
if(NOT _epfga_NO_DEFAULTS)
|
||||
ExternalProject_GetFwdVarNames(_fwd_names)
|
||||
endif()
|
||||
if(_epgfa_VARS)
|
||||
list(APPEND _fwd_names ${_epgfa_VARS})
|
||||
endif()
|
||||
if(_epgfa_EXCLUDE)
|
||||
list(REMOVE_ITEM _fwd_names ${_epgfa_EXCLUDE})
|
||||
endif()
|
||||
set(_epgfa_args)
|
||||
foreach(_f ${_fwd_names})
|
||||
if(${_f})
|
||||
list(APPEND _epgfa_args -D${_f}=${${_f}})
|
||||
if(NOT _epfga_QUIET)
|
||||
message(STATUS "ExternalProject_GetFwdArgs: ${_f}=${${_f}}")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
set(${output_var} "${_epgfa_args}" PARENT_SCOPE)
|
||||
endfunction(ExternalProject_GetFwdArgs)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Gets a default list with the names of variables to forward to an
|
||||
# external project. This function creates a list of common cmake
|
||||
# variable names which have an impact in the output binaries or their
|
||||
# placement.
|
||||
function(ExternalProject_GetFwdVarNames output_var)
|
||||
# these common names are irrespective of build type
|
||||
set(names
|
||||
CMAKE_GENERATOR
|
||||
CMAKE_INSTALL_PREFIX
|
||||
CMAKE_ARCHIVE_OUTPUT_DIRECTORY
|
||||
CMAKE_LIBRARY_OUTPUT_DIRECTORY
|
||||
CMAKE_RUNTIME_OUTPUT_DIRECTORY
|
||||
CMAKE_AR
|
||||
CMAKE_BUILD_TYPE
|
||||
CMAKE_INCLUDE_PATH
|
||||
CMAKE_LIBRARY_PATH
|
||||
#CMAKE_MODULE_PATH # this is dangerous as it can override the external project's build files.
|
||||
CMAKE_PREFIX_PATH
|
||||
BUILD_SHARED_LIBS
|
||||
CMAKE_CXX_COMPILER
|
||||
CMAKE_C_COMPILER
|
||||
CMAKE_LINKER
|
||||
CMAKE_MAKE_PROGRAM
|
||||
CMAKE_NM
|
||||
CMAKE_OBJCOPY
|
||||
CMAKE_RANLIB
|
||||
CMAKE_STRIP
|
||||
CMAKE_TOOLCHAIN_FILE
|
||||
#CMAKE_CONFIGURATION_TYPES # not this. external projects will have their own build configurations
|
||||
)
|
||||
# these names have per-build type values;
|
||||
# use CMAKE_CONFIGURATION_TYPES to construct the list
|
||||
foreach(v
|
||||
CMAKE_CXX_FLAGS
|
||||
CMAKE_C_FLAGS
|
||||
CMAKE_EXE_LINKER_FLAGS
|
||||
CMAKE_MODULE_LINKER_FLAGS
|
||||
CMAKE_SHARED_LINKER_FLAGS)
|
||||
list(APPEND names ${v})
|
||||
foreach(t ${CMAKE_CONFIGURATION_TYPES})
|
||||
string(TOUPPER ${t} u)
|
||||
list(APPEND names ${v}_${u})
|
||||
endforeach()
|
||||
endforeach()
|
||||
set(${output_var} "${names}" PARENT_SCOPE)
|
||||
endfunction(ExternalProject_GetFwdVarNames)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
macro(ExternalProject_Import name)
|
||||
set(options0arg
|
||||
)
|
||||
set(options1arg
|
||||
PREFIX # look only here when findind
|
||||
)
|
||||
set(optionsnarg
|
||||
INCLUDE_PATHS # use these dirs for searching includes
|
||||
LIBRARY_PATHS # use these dirs for searching libraries
|
||||
INCLUDES # find these includes and append them to ${name}_INCLUDE_DIRS
|
||||
INCLUDE_DIR_SUFFIXES
|
||||
LIBRARIES # find these libs and append them to ${name}_LIBRARIES
|
||||
LIBRARY_DIR_SUFFIXES
|
||||
)
|
||||
cmake_parse_arguments(_eep "${options0arg}" "${options1arg}" "${optionsnarg}" ${ARGN})
|
||||
|
||||
if(NOT _eep_PREFIX)
|
||||
message(FATAL_ERROR "no prefix was given")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
#----------------------------------------------------------------
|
||||
# includes
|
||||
|
||||
# the list of paths to search for includes
|
||||
set(_eep_ipaths ${_eep_PREFIX})
|
||||
foreach(_eep_i ${_eep_INCLUDE_DIRS})
|
||||
list(APPEND _eep_ipaths ${__eep_PREFIX}/${_eep_i})
|
||||
endforeach()
|
||||
|
||||
# find the includes that were asked for, and add
|
||||
# their paths to the includes list
|
||||
set(_eep_idirs)
|
||||
foreach(_eep_i ${_eep_INCLUDES})
|
||||
find_path(_eep_path_${_eep_i} ${_eep_i}
|
||||
PATHS ${_eep_ipaths}
|
||||
PATH_SUFFIXES include ${_eep_INCLUDE_DIR_SUFFIXES}
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(NOT _eep_path_${_eep_i})
|
||||
message(FATAL_ERROR "could not find include: ${_eep_i}")
|
||||
endif()
|
||||
#message(STATUS "include: ${_eep_i} ---> ${_eep_path_${_eep_i}}")
|
||||
list(APPEND _eep_idirs ${_eep_path_${_eep_i}})
|
||||
find_package_handle_standard_args(${_eep_i}_INCLUDE_DIR DEFAULT_MSG _eep_path_${_eep_i})
|
||||
endforeach()
|
||||
if(_eep_idirs)
|
||||
list(REMOVE_DUPLICATES _eep_idirs)
|
||||
endif()
|
||||
|
||||
# save the include list
|
||||
set(${name}_INCLUDE_DIRS "${_eep_idirs}" CACHE STRING "" FORCE)
|
||||
|
||||
#----------------------------------------------------------------
|
||||
# libraries
|
||||
|
||||
# the list of paths to search for libraries
|
||||
set(_eep_lpaths ${_eep_PREFIX})
|
||||
foreach(_eep_i ${_eep_LIBRARIES})
|
||||
list(APPEND _eep_lpaths ${__eep_PREFIX}/${_eep_i})
|
||||
endforeach()
|
||||
|
||||
# find any libraries that were asked for
|
||||
set(_eep_libs)
|
||||
foreach(_eep_i ${_eep_LIBRARIES})
|
||||
find_library(_eep_lib_${_eep_i} ${_eep_i}
|
||||
PATHS ${_eep_lpaths}
|
||||
PATH_SUFFIXES lib ${_eep_LIBRARY_DIR_SUFFIXES}
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(NOT _eep_lib_${_eep_i})
|
||||
message(FATAL_ERROR "could not find library: ${_eep_i}")
|
||||
endif()
|
||||
#message(STATUS "lib: ${_eep_i} ---> ${_eep_lib_${_eep_i}}")
|
||||
list(APPEND _eep_libs ${_eep_lib_${_eep_i}})
|
||||
find_package_handle_standard_args(${_eep_i}_LIBRARY DEFAULT_MSG _eep_lib_${_eep_i})
|
||||
endforeach()
|
||||
|
||||
# save the include list
|
||||
set(${name}_LIBRARIES ${_eep_libs} CACHE STRING "")
|
||||
|
||||
endmacro(ExternalProject_Import)
|
@ -1,75 +0,0 @@
|
||||
# Find the win10 SDK path.
|
||||
if ("$ENV{WIN10_SDK_PATH}$ENV{WIN10_SDK_VERSION}" STREQUAL "" )
|
||||
get_filename_component(WIN10_SDK_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]" ABSOLUTE CACHE)
|
||||
get_filename_component(TEMP_WIN10_SDK_VERSION "[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;ProductVersion]" ABSOLUTE CACHE)
|
||||
get_filename_component(WIN10_SDK_VERSION ${TEMP_WIN10_SDK_VERSION} NAME)
|
||||
elseif(TRUE)
|
||||
set (WIN10_SDK_PATH $ENV{WIN10_SDK_PATH})
|
||||
set (WIN10_SDK_VERSION $ENV{WIN10_SDK_VERSION})
|
||||
endif ("$ENV{WIN10_SDK_PATH}$ENV{WIN10_SDK_VERSION}" STREQUAL "" )
|
||||
|
||||
# WIN10_SDK_PATH will be something like C:\Program Files (x86)\Windows Kits\10
|
||||
# WIN10_SDK_VERSION will be something like 10.0.14393 or 10.0.14393.0; we need the
|
||||
# one that matches the directory name.
|
||||
|
||||
if (IS_DIRECTORY "${WIN10_SDK_PATH}/Include/${WIN10_SDK_VERSION}.0")
|
||||
set(WIN10_SDK_VERSION "${WIN10_SDK_VERSION}.0")
|
||||
endif (IS_DIRECTORY "${WIN10_SDK_PATH}/Include/${WIN10_SDK_VERSION}.0")
|
||||
|
||||
|
||||
# Find the d3d12 and dxgi include path, it will typically look something like this.
|
||||
# C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um\d3d12.h
|
||||
# C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\shared\dxgi1_4.h
|
||||
find_path(D3D12_INCLUDE_DIR # Set variable D3D12_INCLUDE_DIR
|
||||
d3d12.h # Find a path with d3d12.h
|
||||
HINTS "${WIN10_SDK_PATH}/Include/${WIN10_SDK_VERSION}/um"
|
||||
DOC "path to WIN10 SDK header files"
|
||||
HINTS
|
||||
)
|
||||
|
||||
find_path(DXGI_INCLUDE_DIR # Set variable DXGI_INCLUDE_DIR
|
||||
dxgi1_4.h # Find a path with dxgi1_4.h
|
||||
HINTS "${WIN10_SDK_PATH}/Include/${WIN10_SDK_VERSION}/shared"
|
||||
DOC "path to WIN10 SDK header files"
|
||||
HINTS
|
||||
)
|
||||
|
||||
if ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
|
||||
find_library(D3D12_LIBRARY NAMES d3d12.lib
|
||||
HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x64 )
|
||||
elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" OR "${DXC_BUILD_ARCH}" STREQUAL "ARM")
|
||||
find_library(D3D12_LIBRARY NAMES d3d12.lib
|
||||
HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/arm )
|
||||
elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM64" OR "${DXC_BUILD_ARCH}" STREQUAL "ARM64")
|
||||
find_library(D3D12_LIBRARY NAMES d3d12.lib
|
||||
HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/arm64 )
|
||||
elseif ("${DXC_BUILD_ARCH}" STREQUAL "Win32" )
|
||||
find_library(D3D12_LIBRARY NAMES d3d12.lib
|
||||
HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x86 )
|
||||
endif ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
|
||||
|
||||
if ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
|
||||
find_library(DXGI_LIBRARY NAMES dxgi.lib
|
||||
HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x64 )
|
||||
elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" OR "${DXC_BUILD_ARCH}" STREQUAL "ARM")
|
||||
find_library(DXGI_LIBRARY NAMES dxgi.lib
|
||||
HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/arm )
|
||||
elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM64" OR "${DXC_BUILD_ARCH}" STREQUAL "ARM64")
|
||||
find_library(DXGI_LIBRARY NAMES dxgi.lib
|
||||
HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/arm64 )
|
||||
elseif ("${DXC_BUILD_ARCH}" STREQUAL "Win32" )
|
||||
find_library(DXGI_LIBRARY NAMES dxgi.lib
|
||||
HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x86 )
|
||||
endif ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
|
||||
|
||||
set(D3D12_LIBRARIES ${D3D12_LIBRARY} ${DXGI_LIBRARY})
|
||||
set(D3D12_INCLUDE_DIRS ${D3D12_INCLUDE_DIR} ${DXGI_INCLUDE_DIR})
|
||||
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set D3D12_FOUND to TRUE
|
||||
# if all listed variables are TRUE
|
||||
find_package_handle_standard_args(D3D12 DEFAULT_MSG
|
||||
D3D12_INCLUDE_DIRS D3D12_LIBRARIES)
|
||||
|
||||
mark_as_advanced(D3D12_INCLUDE_DIRS D3D12_LIBRARIES)
|
@ -1,76 +0,0 @@
|
||||
# Attempt to find the D3D12 libraries
|
||||
# Defines:
|
||||
#
|
||||
# DX12_FOUND - system has DX12
|
||||
# DX12_INCLUDE_PATH - path to the DX12 headers
|
||||
# DX12_LIBRARIES - path to the DX12 libraries
|
||||
# DX12_LIB - d3d12.lib
|
||||
|
||||
set(DX12_FOUND "NO")
|
||||
|
||||
if(WIN32)
|
||||
set(WIN10_SDK_DIR "C:/Program Files (x86)/Windows Kits/10")
|
||||
#set(WIN10_SDK_VERSION "10.0.10069.0")
|
||||
file(GLOB WIN10_SDK_VERSIONS
|
||||
LIST_DIRECTORIES TRUE
|
||||
RELATIVE "${WIN10_SDK_DIR}/Lib"
|
||||
"${WIN10_SDK_DIR}/Lib/*")
|
||||
list(SORT WIN10_SDK_VERSIONS)
|
||||
list(GET WIN10_SDK_VERSIONS -1 WIN10_SDK_VERSION)
|
||||
|
||||
if(CMAKE_CL_64)
|
||||
set(w10ARCH x64)
|
||||
elseif(CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" OR "${DXC_BUILD_ARCH}" STREQUAL "ARM")
|
||||
set(w10ARCH arm)
|
||||
elseif(CMAKE_GENERATOR MATCHES "Visual Studio.*ARM64" OR "${DXC_BUILD_ARCH}" STREQUAL "ARM64")
|
||||
set(w10ARCH arm64)
|
||||
else()
|
||||
set(w10ARCH x86)
|
||||
endif()
|
||||
|
||||
# Look for the windows 8 sdk
|
||||
find_path(DX12_INC_DIR
|
||||
NAMES d3d12.h
|
||||
PATHS "${WIN10_SDK_DIR}/Include/${WIN10_SDK_VERSION}/um"
|
||||
DOC "Path to the d3d12.h file"
|
||||
)
|
||||
find_path(DXGI_INC_DIR
|
||||
NAMES dxgi1_4.h
|
||||
PATHS "${WIN10_SDK_DIR}/Include/${WIN10_SDK_VERSION}/shared"
|
||||
DOC "Path to the dxgi header file"
|
||||
)
|
||||
|
||||
if(DX12_INC_DIR AND DXGI_INC_DIR)
|
||||
find_library(DX12_LIB
|
||||
NAMES d3d12
|
||||
PATHS "${WIN10_SDK_DIR}/Lib/${WIN10_SDK_VERSION}/um/${w10ARCH}"
|
||||
NO_DEFAULT_PATH
|
||||
DOC "Path to the d3d12.lib file"
|
||||
)
|
||||
find_library(DXGI_LIB
|
||||
NAMES dxgi
|
||||
PATHS "${WIN10_SDK_DIR}/Lib/${WIN10_SDK_VERSION}/um/${w10ARCH}"
|
||||
NO_DEFAULT_PATH
|
||||
DOC "Path to the dxgi.lib file"
|
||||
)
|
||||
if(DX12_LIB AND DXGI_LIB)
|
||||
set(DX12_FOUND "YES")
|
||||
set(DX12_LIBRARIES ${DX12_LIB} ${DXGI_LIB})
|
||||
mark_as_advanced(DX12_INC_DIR DX12_LIB)
|
||||
mark_as_advanced(DXGI_INC_DIR DXGI_LIB)
|
||||
endif()
|
||||
endif()
|
||||
endif(WIN32)
|
||||
|
||||
if(DX12_FOUND)
|
||||
if(NOT DX12_FIND_QUIETLY)
|
||||
message(STATUS "DX12 headers found at ${DX12_INC_DIR}")
|
||||
endif()
|
||||
else()
|
||||
if(DX12_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "Could NOT find Direct3D12")
|
||||
endif()
|
||||
if(NOT DX12_FIND_QUIETLY)
|
||||
message(STATUS "Could NOT find Direct3D12")
|
||||
endif()
|
||||
endif()
|
@ -1,53 +0,0 @@
|
||||
|
||||
function(_c4_intersperse_with_flag outvar flag)
|
||||
if(MSVC AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") # it may be clang as well
|
||||
set(f "/${flag}")
|
||||
else()
|
||||
set(f "-${flag}")
|
||||
endif()
|
||||
set(out)
|
||||
foreach(i ${ARGN})
|
||||
if(NOT "${i}" STREQUAL "")
|
||||
set(out "${out} ${f} '${i}'")
|
||||
|
||||
# ... Following this are several unsuccessful attempts to make
|
||||
# sure that an empty generator expression passed as part of the
|
||||
# arguments won't be expanded to nothing between successive
|
||||
# flags. For example, -I /some/include -I -I /other/include,
|
||||
# which is wrong as it misses an empty quote. This causes
|
||||
# clang-tidy in particular to fail. Maybe this is happening
|
||||
# because the result is passed to separate_arguments() which
|
||||
# prevents the lists from being evaluated correctly. Also, note
|
||||
# that add_custom_target() has the following options which may
|
||||
# help: COMMAND_EXPAND_LISTS and VERBATIM.
|
||||
|
||||
# Anyway -- for now it is working, but maybe the generator
|
||||
# expression approach turns out to work while being much cleaner
|
||||
# than the current approach.
|
||||
|
||||
#set(c $<GENEX_EVAL,$<BOOL:${i}>>)
|
||||
#set(c $<BOOL:${i}>) # i may be a generator expression the evaluates to empty
|
||||
#set(s "${f} ${i}")
|
||||
#set(e "${f} aaaaaaWTF")
|
||||
#list(APPEND out $<IF:${c},${s},${e}>)
|
||||
#list(APPEND out $<${c},${s}>)
|
||||
#list(APPEND out $<GENEX_EVAL:${c},${s}>)
|
||||
#list(APPEND out $<TARGET_GENEX_EVAL:${tgt},${c},${s}>)
|
||||
endif()
|
||||
endforeach()
|
||||
## https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#string-valued-generator-expressions
|
||||
#if(ARGN)
|
||||
# set(out "${f}$<JOIN:${ARGN},;${f}>")
|
||||
#endif()
|
||||
set(${outvar} ${out} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(c4_get_define_flags outvar)
|
||||
_c4_intersperse_with_flag(out D ${ARGN})
|
||||
set(${outvar} ${out} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(c4_get_include_flags outvar)
|
||||
_c4_intersperse_with_flag(out I ${ARGN})
|
||||
set(${outvar} ${out} PARENT_SCOPE)
|
||||
endfunction()
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user