mirror of
https://github.com/progsource/maddy.git
synced 2026-03-25 07:50:39 +01:00
Compare commits
7 Commits
update-dep
...
1.6.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
441ba25550 | ||
|
|
9143754a23 | ||
|
|
de67274233 | ||
|
|
28e9a22f9c | ||
|
|
907d6d4a27 | ||
|
|
7b8f661079 | ||
|
|
36822075bf |
6
.github/workflows/create-release-package.yml
vendored
6
.github/workflows/create-release-package.yml
vendored
@@ -29,10 +29,12 @@ jobs:
|
|||||||
id: tag-message
|
id: tag-message
|
||||||
run: |
|
run: |
|
||||||
TAG_NAME=${GITHUB_REF#refs/tags/}
|
TAG_NAME=${GITHUB_REF#refs/tags/}
|
||||||
TAG_MESSAGE=$(git tag -l --format='%(contents)' $TAG_NAME)
|
echo "TAG_NAME: $TAG_NAME"
|
||||||
|
TAG_MESSAGE=$(git tag -l --format='%(contents)' "$TAG_NAME")
|
||||||
echo "message<<EOF" >> $GITHUB_OUTPUT
|
echo "message<<EOF" >> $GITHUB_OUTPUT
|
||||||
echo "$TAG_MESSAGE" >> $GITHUB_OUTPUT
|
echo "$TAG_MESSAGE" >> $GITHUB_OUTPUT
|
||||||
echo "EOF" >> $GITHUB_OUTPUT
|
echo "EOF" >> $GITHUB_OUTPUT
|
||||||
|
echo "TAG_MESSAGE: $TAG_MESSAGE"
|
||||||
|
|
||||||
- name: create release
|
- name: create release
|
||||||
uses: svenstaro/upload-release-action@v2
|
uses: svenstaro/upload-release-action@v2
|
||||||
@@ -40,7 +42,7 @@ jobs:
|
|||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
file: build/maddy-src.zip
|
file: build/maddy-src.zip
|
||||||
tag: ${{ github.ref }}
|
tag: ${{ github.ref }}
|
||||||
release_name: ${{ github.ref }}
|
release_name: ${{ github.ref_name }}
|
||||||
body: |
|
body: |
|
||||||
${{ steps.tag-message.outputs.message }}
|
${{ steps.tag-message.outputs.message }}
|
||||||
|
|
||||||
|
|||||||
23
.github/workflows/run-tests.yml
vendored
23
.github/workflows/run-tests.yml
vendored
@@ -12,17 +12,26 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: lukka/get-cmake@latest
|
- uses: lukka/get-cmake@latest
|
||||||
with:
|
with:
|
||||||
cmakeVersion: "~3.25.0" # <--= optional, use most recent 3.25.x version
|
cmakeVersion: "~3.25.0"
|
||||||
ninjaVersion: "^1.11.1" # <--= optional, use most recent 1.x version
|
ninjaVersion: "^1.11.1"
|
||||||
- name: build
|
- name: build
|
||||||
run: |
|
run: |
|
||||||
mkdir tmp
|
mkdir tmp
|
||||||
cd tmp
|
cd tmp
|
||||||
cmake -DMADDY_BUILD_WITH_TESTS=ON ..
|
cmake -DMADDY_BUILD_WITH_TESTS=ON -DCMAKE_INSTALL_PREFIX=./install ..
|
||||||
make -j4
|
make -j4
|
||||||
|
make install
|
||||||
- name: run tests
|
- name: run tests
|
||||||
run: |
|
run: |
|
||||||
./build/MaddyTests
|
./build/MaddyTests
|
||||||
|
- name: test find_package
|
||||||
|
run: |
|
||||||
|
cd tests/cmake/find_package
|
||||||
|
mkdir tmp
|
||||||
|
cd tmp
|
||||||
|
cmake -DCMAKE_PREFIX_PATH=../../../tmp/install ..
|
||||||
|
make -j4
|
||||||
|
./maddy_find_package_example
|
||||||
|
|
||||||
test-on-windows:
|
test-on-windows:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
@@ -30,8 +39,8 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: lukka/get-cmake@latest
|
- uses: lukka/get-cmake@latest
|
||||||
with:
|
with:
|
||||||
cmakeVersion: "~3.25.0" # <--= optional, use most recent 3.25.x version
|
cmakeVersion: "~3.25.0"
|
||||||
ninjaVersion: "^1.11.1" # <--= optional, use most recent 1.x version
|
ninjaVersion: "^1.11.1"
|
||||||
- name: build
|
- name: build
|
||||||
run: |
|
run: |
|
||||||
mkdir tmp
|
mkdir tmp
|
||||||
@@ -48,8 +57,8 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: lukka/get-cmake@latest
|
- uses: lukka/get-cmake@latest
|
||||||
with:
|
with:
|
||||||
cmakeVersion: "~3.25.0" # <--= optional, use most recent 3.25.x version
|
cmakeVersion: "~3.25.0"
|
||||||
ninjaVersion: "^1.11.1" # <--= optional, use most recent 1.x version
|
ninjaVersion: "^1.11.1"
|
||||||
- name: build
|
- name: build
|
||||||
run: |
|
run: |
|
||||||
mkdir tmp
|
mkdir tmp
|
||||||
|
|||||||
@@ -16,6 +16,11 @@ maddy uses [semver versioning](https://semver.org/).
|
|||||||
|
|
||||||
* ...
|
* ...
|
||||||
|
|
||||||
|
## version 1.6.0 2025-07-26
|
||||||
|
|
||||||
|
*  Added CMake install and find_package() support.
|
||||||
|
*  Script to update maddy version number in all files.
|
||||||
|
|
||||||
## version 1.5.0 2025-04-21
|
## version 1.5.0 2025-04-21
|
||||||
|
|
||||||
*  Correctly parse links with title text, i.e. `[link](http://example.com "example")`.
|
*  Correctly parse links with title text, i.e. `[link](http://example.com "example")`.
|
||||||
|
|||||||
@@ -3,10 +3,11 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 3.25)
|
cmake_minimum_required(VERSION 3.25)
|
||||||
|
|
||||||
project(maddy)
|
project(maddy VERSION 1.6.0) # MADDY_VERSION_LINE_REPLACEMENT
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
set(CMAKE_BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build)
|
set(CMAKE_BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build)
|
||||||
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
|
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
|
||||||
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
|
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
|
||||||
@@ -41,7 +42,8 @@ endif()
|
|||||||
|
|
||||||
add_library(maddy INTERFACE)
|
add_library(maddy INTERFACE)
|
||||||
target_include_directories(maddy INTERFACE
|
target_include_directories(maddy INTERFACE
|
||||||
${MADDY_INCLUDE_DIR}
|
$<BUILD_INTERFACE:${MADDY_INCLUDE_DIR}>
|
||||||
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||||
)
|
)
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
@@ -64,3 +66,32 @@ if(${MADDY_CREATE_PACKAGE})
|
|||||||
DEPENDS ${MADDY_PACKAGE_FILES})
|
DEPENDS ${MADDY_PACKAGE_FILES})
|
||||||
add_custom_target(${PROJECT_NAME}_package DEPENDS ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-src.zip)
|
add_custom_target(${PROJECT_NAME}_package DEPENDS ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-src.zip)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
|
||||||
|
install(DIRECTORY include/
|
||||||
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||||
|
)
|
||||||
|
install(TARGETS ${PROJECT_NAME}
|
||||||
|
EXPORT ${PROJECT_NAME}Targets
|
||||||
|
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||||
|
)
|
||||||
|
install(EXPORT ${PROJECT_NAME}Targets
|
||||||
|
FILE ${PROJECT_NAME}Targets.cmake
|
||||||
|
NAMESPACE ${PROJECT_NAME}::
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
||||||
|
)
|
||||||
|
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
|
||||||
|
VERSION ${PROJECT_VERSION}
|
||||||
|
COMPATIBILITY SameMinorVersion
|
||||||
|
)
|
||||||
|
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
|
||||||
|
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
||||||
|
)
|
||||||
|
install(FILES
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
||||||
|
)
|
||||||
|
|||||||
13
README.md
13
README.md
@@ -1,7 +1,7 @@
|
|||||||
# maddy
|
# maddy
|
||||||
|
|
||||||
[](https://opensource.org/licenses/MIT)
|
[](https://opensource.org/licenses/MIT)
|
||||||
[](https://semver.org/)
|
[](https://semver.org/) <!-- MADDY_VERSION_LINE_REPLACEMENT -->
|
||||||
|
|
||||||
maddy is a C++ Markdown to HTML **header-only** parser library.
|
maddy is a C++ Markdown to HTML **header-only** parser library.
|
||||||
|
|
||||||
@@ -30,7 +30,16 @@ The supported syntax can be found in the [definitions docs](docs/definitions.md)
|
|||||||
|
|
||||||
## How to add maddy to your cmake project
|
## How to add maddy to your cmake project
|
||||||
|
|
||||||
You can use [FetchContent](https://cmake.org/cmake/help/latest/module/FetchContent.html)
|
Use `find_package()` which provides `maddy::maddy` target:
|
||||||
|
|
||||||
|
```cmake
|
||||||
|
find_package(maddy REQUIRED)
|
||||||
|
|
||||||
|
add_executable(my_exe)
|
||||||
|
target_link_libraries(my_exe PRIVATE maddy::maddy)
|
||||||
|
```
|
||||||
|
|
||||||
|
Or you can use [FetchContent](https://cmake.org/cmake/help/latest/module/FetchContent.html)
|
||||||
which was introduced in CMake 3.11.
|
which was introduced in CMake 3.11.
|
||||||
|
|
||||||
This way you can add
|
This way you can add
|
||||||
|
|||||||
4
cmake/maddyConfig.cmake.in
Normal file
4
cmake/maddyConfig.cmake.in
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/maddyTargets.cmake")
|
||||||
|
check_required_components(maddy)
|
||||||
@@ -59,7 +59,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
static const std::string& version()
|
static const std::string& version()
|
||||||
{
|
{
|
||||||
static const std::string v = "1.5.0";
|
static const std::string v = "1.6.0"; // MADDY_VERSION_LINE_REPLACEMENT
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
8
tests/cmake/find_package/CMakeLists.txt
Normal file
8
tests/cmake/find_package/CMakeLists.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# This project is licensed under the MIT license. For more information see the
|
||||||
|
# LICENSE file.
|
||||||
|
cmake_minimum_required(VERSION 3.25)
|
||||||
|
|
||||||
|
find_package(maddy REQUIRED)
|
||||||
|
|
||||||
|
add_executable(maddy_find_package_example main.cpp)
|
||||||
|
target_link_libraries(maddy_find_package_example PRIVATE maddy::maddy)
|
||||||
25
tests/cmake/find_package/main.cpp
Normal file
25
tests/cmake/find_package/main.cpp
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* This project is licensed under the MIT license. For more information see the
|
||||||
|
* LICENSE file.
|
||||||
|
*
|
||||||
|
* This file is a tiny example project to test if find_package works correctly.
|
||||||
|
*/
|
||||||
|
#include <iostream>
|
||||||
|
#include <memory>
|
||||||
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "maddy/parser.h"
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
std::shared_ptr<maddy::Parser> parser = std::make_shared<maddy::Parser>();
|
||||||
|
|
||||||
|
std::stringstream markdownStream;
|
||||||
|
markdownStream << "# Hello World\n"
|
||||||
|
<< "This is a **bold** text and this is *italic* text.\n";
|
||||||
|
|
||||||
|
std::cout << parser->Parse(markdownStream) << std::endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ name = "pypi"
|
|||||||
|
|
||||||
[packages]
|
[packages]
|
||||||
requests = "*"
|
requests = "*"
|
||||||
|
semver = "*"
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
|
|
||||||
|
|||||||
234
tools/Pipfile.lock
generated
234
tools/Pipfile.lock
generated
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "ff88c6939e3090788e917cfdecf1af872168b83c8803457853061495493b5a71"
|
"sha256": "e4eebcb75452247f9b695017353c305be9aa186e543bd0e5a90391b52b337927"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
@@ -18,122 +18,109 @@
|
|||||||
"default": {
|
"default": {
|
||||||
"certifi": {
|
"certifi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8",
|
"sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057",
|
||||||
"sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"
|
"sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.6'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==2024.8.30"
|
"version": "==2025.6.15"
|
||||||
},
|
},
|
||||||
"charset-normalizer": {
|
"charset-normalizer": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621",
|
"sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4",
|
||||||
"sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6",
|
"sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45",
|
||||||
"sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8",
|
"sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7",
|
||||||
"sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912",
|
"sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0",
|
||||||
"sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c",
|
"sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7",
|
||||||
"sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b",
|
"sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d",
|
||||||
"sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d",
|
"sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d",
|
||||||
"sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d",
|
"sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0",
|
||||||
"sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95",
|
"sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184",
|
||||||
"sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e",
|
"sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db",
|
||||||
"sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565",
|
"sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b",
|
||||||
"sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64",
|
"sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64",
|
||||||
"sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab",
|
"sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b",
|
||||||
"sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be",
|
"sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8",
|
||||||
"sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e",
|
"sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff",
|
||||||
"sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907",
|
"sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344",
|
||||||
"sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0",
|
"sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58",
|
||||||
"sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2",
|
"sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e",
|
||||||
"sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62",
|
"sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471",
|
||||||
"sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62",
|
"sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148",
|
||||||
"sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23",
|
"sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a",
|
||||||
"sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc",
|
"sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836",
|
||||||
"sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284",
|
"sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e",
|
||||||
"sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca",
|
"sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63",
|
||||||
"sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455",
|
"sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c",
|
||||||
"sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858",
|
"sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1",
|
||||||
"sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b",
|
"sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01",
|
||||||
"sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594",
|
"sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366",
|
||||||
"sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc",
|
"sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58",
|
||||||
"sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db",
|
"sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5",
|
||||||
"sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b",
|
"sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c",
|
||||||
"sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea",
|
"sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2",
|
||||||
"sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6",
|
"sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a",
|
||||||
"sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920",
|
"sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597",
|
||||||
"sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749",
|
"sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b",
|
||||||
"sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7",
|
"sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5",
|
||||||
"sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd",
|
"sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb",
|
||||||
"sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99",
|
"sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f",
|
||||||
"sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242",
|
"sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0",
|
||||||
"sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee",
|
"sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941",
|
||||||
"sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129",
|
"sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0",
|
||||||
"sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2",
|
"sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86",
|
||||||
"sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51",
|
"sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7",
|
||||||
"sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee",
|
"sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7",
|
||||||
"sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8",
|
"sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455",
|
||||||
"sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b",
|
"sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6",
|
||||||
"sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613",
|
"sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4",
|
||||||
"sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742",
|
"sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0",
|
||||||
"sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe",
|
"sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3",
|
||||||
"sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3",
|
"sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1",
|
||||||
"sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5",
|
"sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6",
|
||||||
"sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631",
|
"sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981",
|
||||||
"sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7",
|
"sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c",
|
||||||
"sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15",
|
"sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980",
|
||||||
"sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c",
|
"sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645",
|
||||||
"sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea",
|
"sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7",
|
||||||
"sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417",
|
"sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12",
|
||||||
"sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250",
|
"sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa",
|
||||||
"sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88",
|
"sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd",
|
||||||
"sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca",
|
"sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef",
|
||||||
"sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa",
|
"sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f",
|
||||||
"sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99",
|
"sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2",
|
||||||
"sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149",
|
"sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d",
|
||||||
"sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41",
|
"sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5",
|
||||||
"sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574",
|
"sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02",
|
||||||
"sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0",
|
"sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3",
|
||||||
"sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f",
|
"sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd",
|
||||||
"sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d",
|
"sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e",
|
||||||
"sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654",
|
"sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214",
|
||||||
"sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3",
|
"sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd",
|
||||||
"sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19",
|
"sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a",
|
||||||
"sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90",
|
"sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c",
|
||||||
"sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578",
|
"sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681",
|
||||||
"sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9",
|
"sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba",
|
||||||
"sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1",
|
"sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f",
|
||||||
"sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51",
|
"sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a",
|
||||||
"sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719",
|
"sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28",
|
||||||
"sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236",
|
"sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691",
|
||||||
"sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a",
|
"sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82",
|
||||||
"sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c",
|
"sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a",
|
||||||
"sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade",
|
"sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027",
|
||||||
"sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944",
|
"sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7",
|
||||||
"sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc",
|
"sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518",
|
||||||
"sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6",
|
"sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf",
|
||||||
"sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6",
|
"sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b",
|
||||||
"sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27",
|
"sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9",
|
||||||
"sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6",
|
"sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544",
|
||||||
"sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2",
|
"sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da",
|
||||||
"sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12",
|
"sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509",
|
||||||
"sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf",
|
"sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f",
|
||||||
"sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114",
|
"sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a",
|
||||||
"sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7",
|
"sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"
|
||||||
"sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf",
|
|
||||||
"sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d",
|
|
||||||
"sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b",
|
|
||||||
"sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed",
|
|
||||||
"sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03",
|
|
||||||
"sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4",
|
|
||||||
"sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67",
|
|
||||||
"sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365",
|
|
||||||
"sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a",
|
|
||||||
"sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748",
|
|
||||||
"sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b",
|
|
||||||
"sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079",
|
|
||||||
"sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"
|
|
||||||
],
|
],
|
||||||
"markers": "python_full_version >= '3.7.0'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==3.4.0"
|
"version": "==3.4.2"
|
||||||
},
|
},
|
||||||
"idna": {
|
"idna": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -145,20 +132,29 @@
|
|||||||
},
|
},
|
||||||
"requests": {
|
"requests": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760",
|
"sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c",
|
||||||
"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"
|
"sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.32.3"
|
"version": "==2.32.4"
|
||||||
|
},
|
||||||
|
"semver": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746",
|
||||||
|
"sha256:afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"markers": "python_version >= '3.7'",
|
||||||
|
"version": "==3.0.4"
|
||||||
},
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac",
|
"sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760",
|
||||||
"sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"
|
"sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.9'",
|
||||||
"version": "==2.2.3"
|
"version": "==2.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"develop": {}
|
"develop": {}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import subprocess
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
# required clang-format version
|
# required clang-format version
|
||||||
REQUIRED_VERSION = "18.1.3"
|
REQUIRED_VERSION = '18.1.3'
|
||||||
|
|
||||||
def check_clang_format_version():
|
def check_clang_format_version():
|
||||||
"""
|
"""
|
||||||
@@ -37,13 +37,13 @@ def check_clang_format_version():
|
|||||||
break
|
break
|
||||||
|
|
||||||
if version_line != REQUIRED_VERSION:
|
if version_line != REQUIRED_VERSION:
|
||||||
print(f"Error: Required clang-format version is "
|
print(f'Error: Required clang-format version is '
|
||||||
f"{REQUIRED_VERSION}, but found {version_line}.")
|
f'{REQUIRED_VERSION}, but found {version_line}.')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
print('clang-format version equals the required version.')
|
print('clang-format version equals the required version.')
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
print(f"Error checking clang-format version: {e.stderr}")
|
print(f'Error checking clang-format version: {e.stderr}')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
def format_files(dry_run):
|
def format_files(dry_run):
|
||||||
@@ -60,23 +60,27 @@ def format_files(dry_run):
|
|||||||
during the actual formatting process.
|
during the actual formatting process.
|
||||||
"""
|
"""
|
||||||
patterns = [
|
patterns = [
|
||||||
"bench/**/*.h",
|
'bench/**/*.h',
|
||||||
"bench/**/*.cpp",
|
'bench/**/*.cpp',
|
||||||
"include/**/*.h",
|
'include/**/*.h',
|
||||||
"tests/**/*.h",
|
'tests/**/*.h',
|
||||||
"tests/**/*.cpp",
|
'tests/**/*.cpp',
|
||||||
]
|
]
|
||||||
|
|
||||||
files_to_format = []
|
files_to_format = []
|
||||||
for pattern in patterns:
|
for pattern in patterns:
|
||||||
matched_files = glob.glob(pattern, recursive=True)
|
matched_files = glob.glob(pattern, recursive=True)
|
||||||
|
|
||||||
|
for file in matched_files:
|
||||||
|
if '\/tmp\/' in file or '\\tmp\\' in file:
|
||||||
|
matched_files.remove(file)
|
||||||
|
|
||||||
files_to_format.extend(matched_files)
|
files_to_format.extend(matched_files)
|
||||||
|
|
||||||
if not files_to_format:
|
if not files_to_format:
|
||||||
print("No files to format.")
|
print('No files to format.')
|
||||||
return
|
return
|
||||||
|
|
||||||
# Create a space-separated string of files
|
|
||||||
patterns_arg = ' '.join(file.replace('\\', '/') for file in files_to_format)
|
patterns_arg = ' '.join(file.replace('\\', '/') for file in files_to_format)
|
||||||
|
|
||||||
cwd = os.getcwd()
|
cwd = os.getcwd()
|
||||||
@@ -92,13 +96,13 @@ def format_files(dry_run):
|
|||||||
cwd=cwd
|
cwd=cwd
|
||||||
)
|
)
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
print("Files that need formatting:")
|
print('Files that need formatting:')
|
||||||
print(result.stdout)
|
print(result.stdout)
|
||||||
print("Error output:")
|
print('Error output:')
|
||||||
print(result.stderr)
|
print(result.stderr)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
print("no changes found")
|
print('no changes found')
|
||||||
else:
|
else:
|
||||||
# Format the files in place
|
# Format the files in place
|
||||||
command = f'clang-format --style=file -i {patterns_arg}'
|
command = f'clang-format --style=file -i {patterns_arg}'
|
||||||
@@ -110,7 +114,7 @@ def format_files(dry_run):
|
|||||||
cwd=cwd
|
cwd=cwd
|
||||||
)
|
)
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
print("Error formatting files:")
|
print('Error formatting files:')
|
||||||
print(result.stderr)
|
print(result.stderr)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
@@ -125,21 +129,21 @@ def main():
|
|||||||
"""
|
"""
|
||||||
if len(sys.argv) != 2:
|
if len(sys.argv) != 2:
|
||||||
print(
|
print(
|
||||||
"Usage: python format.py <dry_run|format>"
|
'Usage: python format.py <dry_run|format>'
|
||||||
)
|
)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
print(f"Running format with {sys.argv[1]}")
|
print(f'Running format with {sys.argv[1]}')
|
||||||
|
|
||||||
dry_run = False
|
dry_run = False
|
||||||
if sys.argv[1] == "dry_run":
|
if sys.argv[1] == 'dry_run':
|
||||||
dry_run = True
|
dry_run = True
|
||||||
elif sys.argv[1] != "format":
|
elif sys.argv[1] != 'format':
|
||||||
print("Invalid argument. Use 'dry_run' or 'format'.")
|
print('Invalid argument. Use "dry_run" or "format".')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
check_clang_format_version()
|
check_clang_format_version()
|
||||||
format_files(dry_run)
|
format_files(dry_run)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/python
|
#!/bin/python
|
||||||
#
|
#
|
||||||
# maddy update dependencies
|
# maddy update dependencies
|
||||||
|
#
|
||||||
# This project is licensed under the MIT license. For more information see the
|
# This project is licensed under the MIT license. For more information see the
|
||||||
# LICENSE file.
|
# LICENSE file.
|
||||||
import os
|
import os
|
||||||
@@ -27,8 +28,8 @@ def get_cmake_files(directory, ignored_dirs=None):
|
|||||||
# Modify dirs in place to skip ignored directories
|
# Modify dirs in place to skip ignored directories
|
||||||
dirs[:] = [d for d in dirs if d not in ignored_dirs]
|
dirs[:] = [d for d in dirs if d not in ignored_dirs]
|
||||||
|
|
||||||
if "CMakeLists.txt" in files:
|
if 'CMakeLists.txt' in files:
|
||||||
cmakelists_paths.append(os.path.join(root, "CMakeLists.txt"))
|
cmakelists_paths.append(os.path.join(root, 'CMakeLists.txt'))
|
||||||
|
|
||||||
return cmakelists_paths
|
return cmakelists_paths
|
||||||
|
|
||||||
@@ -49,29 +50,25 @@ def get_last_dependency_version(url):
|
|||||||
ValueError: If the provided URL is not in the expected format.
|
ValueError: If the provided URL is not in the expected format.
|
||||||
Exception: If there is an error fetching data from the GitHub API.
|
Exception: If there is an error fetching data from the GitHub API.
|
||||||
"""
|
"""
|
||||||
# Remove the .git suffix if it exists
|
|
||||||
if url.endswith('.git'):
|
if url.endswith('.git'):
|
||||||
url = url[:-4]
|
url = url[:-4]
|
||||||
|
|
||||||
# Split the URL to extract owner and repository name
|
|
||||||
parts = url.split('/')
|
parts = url.split('/')
|
||||||
if len(parts) < 5 or parts[2] != 'github.com':
|
if len(parts) < 5 or parts[2] != 'github.com':
|
||||||
raise ValueError(f"Invalid GitHub repository URL {url}")
|
raise ValueError(f'Invalid GitHub repository URL {url}')
|
||||||
|
|
||||||
owner = parts[3]
|
owner = parts[3]
|
||||||
repo = parts[4]
|
repo = parts[4]
|
||||||
|
|
||||||
# GitHub API endpoint for releases
|
api_url = f'https://api.github.com/repos/{owner}/{repo}/releases/latest'
|
||||||
api_url = f"https://api.github.com/repos/{owner}/{repo}/releases/latest"
|
|
||||||
|
|
||||||
# Make a GET request to the GitHub API
|
|
||||||
response = requests.get(api_url)
|
response = requests.get(api_url)
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
release_data = response.json()
|
release_data = response.json()
|
||||||
return release_data['tag_name'] # Return the latest version tag
|
return release_data['tag_name'] # Return the latest version tag
|
||||||
else:
|
else:
|
||||||
raise Exception(f"Error fetching data from GitHub API: {response.status_code} - {response.text}")
|
raise Exception(f'Error fetching data from GitHub API: {response.status_code} - {response.text}')
|
||||||
|
|
||||||
def get_current_version_from_fetch_content(cmake_code):
|
def get_current_version_from_fetch_content(cmake_code):
|
||||||
"""
|
"""
|
||||||
@@ -102,14 +99,10 @@ def update_fetch_content_versions(cmake_file_path):
|
|||||||
with open(cmake_file_path, 'r') as file:
|
with open(cmake_file_path, 'r') as file:
|
||||||
cmake_code = file.read()
|
cmake_code = file.read()
|
||||||
|
|
||||||
# Regular expression to find FetchContent blocks
|
|
||||||
fetch_content_pattern = r'FetchContent_Declare\s*\(\s*(.*?)\s*\)'
|
fetch_content_pattern = r'FetchContent_Declare\s*\(\s*(.*?)\s*\)'
|
||||||
|
|
||||||
# Find all FetchContent blocks
|
|
||||||
fetch_content_blocks = re.findall(fetch_content_pattern, cmake_code, re.DOTALL)
|
fetch_content_blocks = re.findall(fetch_content_pattern, cmake_code, re.DOTALL)
|
||||||
|
|
||||||
for block in fetch_content_blocks:
|
for block in fetch_content_blocks:
|
||||||
# Extract the GIT_REPOSITORY line
|
|
||||||
repo_pattern = r'GIT_REPOSITORY\s+([^\s]+)'
|
repo_pattern = r'GIT_REPOSITORY\s+([^\s]+)'
|
||||||
repo_match = re.search(repo_pattern, block)
|
repo_match = re.search(repo_pattern, block)
|
||||||
|
|
||||||
@@ -119,13 +112,11 @@ def update_fetch_content_versions(cmake_file_path):
|
|||||||
latest_version = get_last_dependency_version(repo_url)
|
latest_version = get_last_dependency_version(repo_url)
|
||||||
|
|
||||||
if current_version != latest_version:
|
if current_version != latest_version:
|
||||||
# Replace the old version with the new version in the CMake code
|
|
||||||
new_block = re.sub(r'GIT_TAG\s+([^\s]+)', f'GIT_TAG {latest_version}', block)
|
new_block = re.sub(r'GIT_TAG\s+([^\s]+)', f'GIT_TAG {latest_version}', block)
|
||||||
cmake_code = cmake_code.replace(block, new_block)
|
cmake_code = cmake_code.replace(block, new_block)
|
||||||
|
|
||||||
# Write the updated CMake code back to the file
|
|
||||||
with open(cmake_file_path, 'w', encoding='utf-8', newline='\n') as file:
|
with open(cmake_file_path, 'w', encoding='utf-8', newline='\n') as file:
|
||||||
file.write(cmake_code.replace('\r\n', '\n')) # Ensure LF line
|
file.write(cmake_code.replace('\r\n', '\n'))
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""
|
"""
|
||||||
@@ -134,22 +125,22 @@ def main():
|
|||||||
ignoring specified directories.
|
ignoring specified directories.
|
||||||
"""
|
"""
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
print("Usage: python update_dependencies.py <directory_path> [ignored_dirs...]")
|
print('Usage: python update_dependencies.py <directory_path> [ignored_dirs...]')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
directory_path = sys.argv[1]
|
directory_path = sys.argv[1]
|
||||||
ignored_dirs = sys.argv[2:] # Remaining arguments are ignored directories
|
ignored_dirs = sys.argv[2:] # Remaining arguments are ignored directories
|
||||||
|
|
||||||
if not os.path.isdir(directory_path):
|
if not os.path.isdir(directory_path):
|
||||||
print(f"The provided path '{directory_path}' is not a valid directory.")
|
print(f'The provided path "{directory_path}" is not a valid directory.')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
cmake_files = get_cmake_files(directory_path, ignored_dirs)
|
cmake_files = get_cmake_files(directory_path, ignored_dirs)
|
||||||
|
|
||||||
for cmake_file in cmake_files:
|
for cmake_file in cmake_files:
|
||||||
print(f"Updating {cmake_file}...")
|
print(f'Updating {cmake_file}...')
|
||||||
update_fetch_content_versions(cmake_file)
|
update_fetch_content_versions(cmake_file)
|
||||||
print(f"Updated {cmake_file} successfully.")
|
print(f'Updated {cmake_file} successfully.')
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|||||||
89
tools/update_version.py
Normal file
89
tools/update_version.py
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/python
|
||||||
|
#
|
||||||
|
# maddy update version
|
||||||
|
#
|
||||||
|
# Replaces the version in all files in the lines containing
|
||||||
|
# `MADDY_VERSION_LINE_REPLACEMENT`.
|
||||||
|
#
|
||||||
|
# This project is licensed under the MIT license. For more information see the
|
||||||
|
# LICENSE file.
|
||||||
|
|
||||||
|
import mimetypes
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
from semver import Version
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def update_version_in_file(version, file_path):
|
||||||
|
"""
|
||||||
|
Updates the version in the specified file.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
file_path (str): The path to the file where the version needs to be updated.
|
||||||
|
version (str): The new version string to set in the file.
|
||||||
|
"""
|
||||||
|
with open(file_path, 'r') as file:
|
||||||
|
content = file.read()
|
||||||
|
|
||||||
|
new_content = content
|
||||||
|
lines = new_content.splitlines()
|
||||||
|
|
||||||
|
for i, line in enumerate(lines):
|
||||||
|
if 'MADDY_VERSION_LINE_REPLACEMENT' in line:
|
||||||
|
lines[i] = re.sub(r'\b\d+\.\d+\.\d+\b', version, line)
|
||||||
|
|
||||||
|
new_content = '\n'.join(lines) + '\n'
|
||||||
|
|
||||||
|
if new_content != content:
|
||||||
|
print(f'Updating version in {file_path}')
|
||||||
|
with open(file_path, 'w', encoding='utf-8', newline='\n') as file:
|
||||||
|
file.write(new_content.replace('\r\n', '\n'))
|
||||||
|
|
||||||
|
|
||||||
|
def update_version_in_files(version, directory, ignored_dirs):
|
||||||
|
"""
|
||||||
|
Updates the version in all files in the specified directory.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
directory (str): The path to the directory containing files.
|
||||||
|
ignored_dirs (list): A list of directories to ignore during the update.
|
||||||
|
version (str): The new version string to set in the files.
|
||||||
|
"""
|
||||||
|
mimetypes.add_type('text/markdown', '.md')
|
||||||
|
|
||||||
|
ignroed_dirs_abs = [os.path.abspath(os.path.join(directory, d)) for d in ignored_dirs]
|
||||||
|
|
||||||
|
for root, dirs, files in os.walk(directory):
|
||||||
|
for file in files:
|
||||||
|
file_path = os.path.join(root, file)
|
||||||
|
|
||||||
|
if any(os.path.abspath(root).startswith(ignored_dir) for ignored_dir in ignroed_dirs_abs):
|
||||||
|
continue
|
||||||
|
|
||||||
|
if mimetypes.guess_type(file_path)[0] and mimetypes.guess_type(file_path)[0].startswith('text'):
|
||||||
|
update_version_in_file(version, file_path)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
if len(sys.argv) < 3:
|
||||||
|
print('Usage: python update_version.py <version> <directory> [ignored_dirs...]')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
version = sys.argv[1]
|
||||||
|
directory = sys.argv[2]
|
||||||
|
ignored_dirs = sys.argv[3:] if len(sys.argv) > 3 else []
|
||||||
|
|
||||||
|
if not os.path.isdir(directory):
|
||||||
|
print(f'Error: The specified directory "{directory}" does not exist.')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if not Version.is_valid(version):
|
||||||
|
print(f'Error: The specified version "{version}" is not a valid semantic version.')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
update_version_in_files(version, directory, ignored_dirs)
|
||||||
|
print(f'Updated version to {version} in all files in {directory}')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user