Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions .github/workflows/demo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
paths:
- .github/workflows/demo.yaml
- .gitmodules
- cpp-ap-demo
- cpp-argon-demo
- include/**
- CMakeLists.txt
- MODULE.bazel
Expand All @@ -17,7 +17,7 @@ on:

jobs:
build-demo-linux:
name: Build cpp-ap-demo (Linux)
name: Build cpp-argon-demo (Linux)
runs-on: ubuntu-24.04

steps:
Expand All @@ -42,10 +42,10 @@ jobs:
echo "branch=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_OUTPUT
fi

- name: Build cpp-ap-demo (CMake)
- name: Build cpp-argon-demo (CMake)
run: |
cd cpp-ap-demo
cmake -B build_cmake -DAP_TAG=${{ steps.branch-name.outputs.branch }}
cd cpp-argon-demo
cmake -B build_cmake -DARGON_TAG=${{ steps.branch-name.outputs.branch }}
cmake --build build_cmake/ -j 4

- name: Setup Bazel
Expand All @@ -55,15 +55,15 @@ jobs:
disk-cache: ${{ github.workflow }}
repository-cache: true

- name: Build cpp-ap-demo (Bazel)
- name: Build cpp-argon-demo (Bazel)
run: |
cd cpp-ap-demo
cd cpp-argon-demo
BRANCH="${{ steps.branch-name.outputs.branch }}"
sed -i "s/branch = \".*\"/branch = \"$BRANCH\"/" MODULE.bazel
bazel build //:all_demos

build-demo-windows:
name: Build cpp-ap-demo (Windows)
name: Build cpp-argon-demo (Windows)
runs-on: windows-2022

steps:
Expand Down Expand Up @@ -91,10 +91,10 @@ jobs:
"branch=$branch" >> $env:GITHUB_OUTPUT
}

- name: Build cpp-ap-demo (CMake)
- name: Build cpp-argon-demo (CMake)
run: |
cd cpp-ap-demo
cmake -B build_cmake -DAP_TAG=${{ steps.branch-name.outputs.branch }}
cd cpp-argon-demo
cmake -B build_cmake -DARGON_TAG=${{ steps.branch-name.outputs.branch }}
cmake --build build_cmake/ --config Release -j 4

- name: Setup Bazel
Expand All @@ -104,9 +104,9 @@ jobs:
disk-cache: ${{ github.workflow }}
repository-cache: true

- name: Build cpp-ap-demo (Bazel)
- name: Build cpp-argon-demo (Bazel)
run: |
cd cpp-ap-demo
cd cpp-argon-demo
$BRANCH="${{ steps.branch-name.outputs.branch }}"
(Get-Content MODULE.bazel) -replace 'branch = ".*"', "branch = `"$BRANCH`"" | Set-Content MODULE.bazel
bazel build //:all_demos
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[submodule "cpp-ap-demo"]
path = cpp-ap-demo
url = https://github.com/SpectraL519/cpp-ap-demo.git
[submodule "cpp-argon-demo"]
path = cpp-argon-demo
url = https://github.com/SpectraL519/cpp-argon-demo.git
[submodule "doxygen-awesome-css"]
path = doxygen-awesome-css
url = https://github.com/SpectraL519/doxygen-awesome-css.git
2 changes: 1 addition & 1 deletion BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cc_library(
name = "cpp-ap",
name = "cpp-argon",
hdrs = glob(["include/**/*.hpp"]),
includes = ["include"],
cxxopts = ["-std=c++20"],
Expand Down
48 changes: 24 additions & 24 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
cmake_minimum_required(VERSION 3.12)

if (NOT DEFINED PROJECT_NAME)
set(CPP_AP_IS_TOP_LEVEL_PROJECT ON)
set(CPP_ARGON_IS_TOP_LEVEL_PROJECT ON)
else()
set(CPP_AP_IS_TOP_LEVEL_PROJECT OFF)
set(CPP_ARGON_IS_TOP_LEVEL_PROJECT OFF)
endif()

project(cpp-ap
VERSION 3.1.0
project(cpp-argon
VERSION 4.0.0
DESCRIPTION "Command-line argument parser for C++20"
HOMEPAGE_URL "https://github.com/SpectraL519/cpp-ap"
HOMEPAGE_URL "https://github.com/SpectraL519/cpp-argon"
LANGUAGES CXX
)

Expand All @@ -19,12 +19,12 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
option(BUILD_TESTS "Build project tests" OFF)

# The library target
add_library(cpp-ap INTERFACE)
target_include_directories(cpp-ap INTERFACE
add_library(cpp-argon INTERFACE)
target_include_directories(cpp-argon INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
set_target_properties(cpp-ap PROPERTIES
set_target_properties(cpp-argon PROPERTIES
CXX_STANDARD 20
CXX_STANDARD_REQUIRED YES
)
Expand All @@ -33,49 +33,49 @@ set_target_properties(cpp-ap PROPERTIES
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)

set(INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/cpp-ap)
set(INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/cpp-argon)

# Install the headers
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})

# Install the library target
install(TARGETS cpp-ap EXPORT cpp-ap-targets)
install(TARGETS cpp-argon EXPORT cpp-argon-targets)

# Create a config file for find_package
configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/cpp-ap-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/cpp-ap-config.cmake
${CMAKE_CURRENT_SOURCE_DIR}/cmake/cpp-argon-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/cpp-argon-config.cmake
INSTALL_DESTINATION ${INSTALL_DIR}
)

write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/cpp-ap-config-version.cmake
${CMAKE_CURRENT_BINARY_DIR}/cpp-argon-config-version.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY ExactVersion
)

install(FILES
${CMAKE_CURRENT_BINARY_DIR}/cpp-ap-config.cmake
${CMAKE_CURRENT_BINARY_DIR}/cpp-ap-config-version.cmake
${CMAKE_CURRENT_BINARY_DIR}/cpp-argon-config.cmake
${CMAKE_CURRENT_BINARY_DIR}/cpp-argon-config-version.cmake
DESTINATION ${INSTALL_DIR}
)

install(EXPORT cpp-ap-targets
FILE cpp-ap-targets.cmake
NAMESPACE cpp-ap::
install(EXPORT cpp-argon-targets
FILE cpp-argon-targets.cmake
NAMESPACE cpp-argon::
DESTINATION ${INSTALL_DIR}
)

# Include the tests directory if CPP-AP is a top-level project
if (CPP_AP_IS_TOP_LEVEL_PROJECT AND BUILD_TESTS)
# Include the tests directory if CPP-ARGON is a top-level project
if (CPP_ARGON_IS_TOP_LEVEL_PROJECT AND BUILD_TESTS)
add_subdirectory(tests)
endif()

# Exporting from the build tree
export(EXPORT cpp-ap-targets
FILE ${CMAKE_CURRENT_BINARY_DIR}/cpp-ap-targets.cmake
NAMESPACE cpp-ap::
export(EXPORT cpp-argon-targets
FILE ${CMAKE_CURRENT_BINARY_DIR}/cpp-argon-targets.cmake
NAMESPACE cpp-argon::
)

export(PACKAGE cpp-ap)
export(PACKAGE cpp-argon)
10 changes: 5 additions & 5 deletions Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,32 +42,32 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME = CPP-AP
PROJECT_NAME = CPP-ARGON

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 3.1.0
PROJECT_NUMBER = 4.0.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = "Command-line argument parser for C++20"
PROJECT_BRIEF = "Command-Line Argument Parser for C++20"

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.

PROJECT_LOGO =
PROJECT_LOGO = "docs/img/cpp-argon-hex.png"

# With the PROJECT_ICON tag one can specify an icon that is included in the tabs
# when the HTML document is shown. Doxygen will copy the logo to the output
# directory.

PROJECT_ICON =
PROJECT_ICON = "docs/img/cpp-argon-hex.png"

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
Expand Down
4 changes: 2 additions & 2 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#### MIT License

Copyright (c) 2023-2025 Jakub Musiał and other contributors
https://github.com/SpectraL519/cpp-ap
Copyright (c) 2023-2026 Jakub Musiał and other contributors
https://github.com/SpectraL519/cpp-argon

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 2 additions & 2 deletions MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module(
name = "cpp-ap",
version = "3.1.0",
name = "cpp-argon",
version = "4.0.0",
)
45 changes: 27 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,49 @@
<h1>
CPP-AP
<a href="https://github.com/SpectraL519/cpp-ap" target="_blank">
<i class="fa fa-github" style="font-size: 1.3em; margin-left: 6px; position: relative; top: -0.08em;"></i>
<p align="center">
<a href="https://github.com/SpectraL519/cpp-argon">
<img src="docs/img/cpp-argon-hex.png" alt="CPP-ARGON" width="360" />
</a>
</h1>

Command-line argument parser for C++20
</p>

<br />

<div align="center">

[![GCC](https://github.com/SpectraL519/cpp-ap/actions/workflows/gcc.yaml/badge.svg)](https://github.com/SpectraL519/cpp-ap/actions/workflows/gcc)
[![Clang](https://github.com/SpectraL519/cpp-ap/actions/workflows/clang.yaml/badge.svg)](https://github.com/SpectraL519/cpp-ap/actions/workflows/clang)
[![MSVC](https://github.com/SpectraL519/cpp-ap/actions/workflows/msvc.yaml/badge.svg)](https://github.com/SpectraL519/cpp-ap/actions/workflows/msvc)
[![GCC](https://github.com/SpectraL519/cpp-argon/actions/workflows/gcc.yaml/badge.svg)](https://github.com/SpectraL519/cpp-argon/actions/workflows/gcc)
[![Clang](https://github.com/SpectraL519/cpp-argon/actions/workflows/clang.yaml/badge.svg)](https://github.com/SpectraL519/cpp-argon/actions/workflows/clang)
[![MSVC](https://github.com/SpectraL519/cpp-argon/actions/workflows/msvc.yaml/badge.svg)](https://github.com/SpectraL519/cpp-argon/actions/workflows/msvc)

</div>

<div align="center">

[![format](https://github.com/SpectraL519/cpp-ap/actions/workflows/format.yaml/badge.svg)](https://github.com/SpectraL519/cpp-ap/actions/workflows/format)
[![demo](https://github.com/SpectraL519/cpp-ap/actions/workflows/demo.yaml/badge.svg)](https://github.com/SpectraL519/cpp-ap/actions/workflows/demo)
[![documentation](https://github.com/SpectraL519/cpp-ap/actions/workflows/documentation.yaml/badge.svg)](https://github.com/SpectraL519/cpp-ap/actions/workflows/documentation)
[![changelog](https://img.shields.io/badge/changelog-blue.svg?logo=github)](https://github.com/SpectraL519/cpp-ap/releases)
[![format](https://github.com/SpectraL519/cpp-argon/actions/workflows/format.yaml/badge.svg)](https://github.com/SpectraL519/cpp-argon/actions/workflows/format)
[![demo](https://github.com/SpectraL519/cpp-argon/actions/workflows/demo.yaml/badge.svg)](https://github.com/SpectraL519/cpp-argon/actions/workflows/demo)
[![documentation](https://github.com/SpectraL519/cpp-argon/actions/workflows/documentation.yaml/badge.svg)](https://github.com/SpectraL519/cpp-argon/actions/workflows/documentation)
[![changelog](https://img.shields.io/badge/changelog-blue.svg?logo=github)](https://github.com/SpectraL519/cpp-argon/releases)

</div>

<br />

## Overview

`CPP-AP` is a lightweight and feature-rich command-line argument parsing library for the C++20 and newer standards, designed as an alternative to `boost::program_options`. It offers a modern and intuitive interface allowing for straightforward argument configuration and parsing.
`CPP-ARGON` is a lightweight and feature-rich command-line argument parsing library for the C++20 and newer standards, designed as an alternative to `boost::program_options`. It offers a modern and intuitive interface allowing for straightforward argument configuration and parsing.

> [!CAUTION]
> Versions of the `CPP-ARGON` library up to prior to `v4.0.0` were developed under the name `CPP-AP`.
>
> **Legacy Support:** The deprecated URLs (`https://github.com/SpectraL519/cpp-ap` and `.../cpp-ap-demo`) automatically redirect to the new locations, and build targets defined in previous versions remain fully functional.
>
> **Action Required:**
> - **Repositories:** We highly recommend updating your remote references and submodules to the new canonical URLs:
> - Library: https://github.com/SpectraL519/cpp-argon
> - Demo: https://github.com/SpectraL519/cpp-argon-demo
> - **Documentation:** The old documentation URL (`.../cpp-ap/<version>/`) is **no longer active**. Please use the new address:
> - https://spectral519.github.io/cpp-argon/latest/

> [!NOTE]
>
> [v1.0](https://github.com/SpectraL519/cpp-ap/releases/tag/v1.0) of the library has been developed for the *Team Programming* course at the *Wrocław University of Science and Technology*.
> [v1.0](https://github.com/SpectraL519/cpp-argon/releases/tag/v1.0) of the library has been developed for the *Team Programming* course at the *Wrocław University of Science and Technology*.
>
> Faculty: *W04N - Faculty of Information and Communication Technology*
>
Expand All @@ -47,7 +56,7 @@ Command-line argument parser for C++20
## Related Pages

- [Tutorial](/docs/tutorial.md#tutorial)
- [Setting Up CPP-AP](/docs/tutorial.md#setting-up-cpp-ap)
- [Setting Up CPP-ARGON](/docs/tutorial.md#setting-up-cpp-argon)
- [CMake Integration](/docs/tutorial.md#cmake-integration)
- [Bazel Build System](/docs/tutorial.md#bazel-build-system)
- [Downloading the Library](/docs/tutorial.md#downloading-the-library)
Expand Down Expand Up @@ -99,4 +108,4 @@ Command-line argument parser for C++20

## License

The `CPP-AP` project uses the [MIT License](https://mit-license.org/) which can be found in the [LICENSE](/LICENSE.md#mit-license) file
The `CPP-ARGON` project uses the [MIT License](https://mit-license.org/) which can be found in the [LICENSE](/LICENSE.md#mit-license) file
7 changes: 0 additions & 7 deletions cmake/cpp-ap-config.cmake.in

This file was deleted.

7 changes: 7 additions & 0 deletions cmake/cpp-argon-config.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@PACKAGE_INIT@

include(CMakeFindDependencyMacro)

set_and_check(CPP_ARGON_INCLUDE_DIR "@PACKAGE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@")

include("${CMAKE_CURRENT_LIST_DIR}/cpp-argon-targets.cmake")
1 change: 0 additions & 1 deletion cpp-ap-demo
Submodule cpp-ap-demo deleted from cf3f2a
1 change: 1 addition & 0 deletions cpp-argon-demo
Submodule cpp-argon-demo added at aa2b96
4 changes: 2 additions & 2 deletions docs/dev_notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,11 @@ python scripts/format.py --help

> [!NOTE]
>
> You can view the online documentation for the latest version [here](https://spectral519.github.io/cpp-ap/latest/).
> You can view the online documentation for the latest version [here](https://spectral519.github.io/cpp-argon/latest/).
>
> To view the documentation for the previous versions use the following URL pattern:
> ```
> https://spectral519.github.io/cpp-ap/<version>
> https://spectral519.github.io/cpp-argon/<version>
> ```

The documentation for this project can be generated using Doxygen, styled with a custom [fork](https://github.com/SpectraL519/doxygen-awesome-css/tree/theme-alignment) of the [doxygen-awesome-css](https://github.com/jothepro/doxygen-awesome-css) theme.
Expand Down
Binary file added docs/img/cpp-argon-hex.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading