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
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Linux.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,11 +20,12 @@ sudo rm -rf /var/lib/apt/lists/*

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Windows.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -15,11 +15,12 @@ pacman --noconfirm -S \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-macOS.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,11 +10,12 @@ brew install \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
27 changes: 18 additions & 9 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,21 +63,20 @@ jobs:
sudo apt-get install -y \
build-essential \
cmake \
doxygen \
graphviz \
ninja-build \
nlohmann-json3-dev

- name: Setup Dependencies macOS
if: runner.os == 'macOS'
run: |
brew install \
boost \
cmake \
doxygen \
graphviz \
nlohmann-json \
ninja \
boost \
nlohmann-json
node \

- name: Setup Dependencies Windows
if: runner.os == 'Windows'
Expand All@@ -91,6 +90,7 @@ jobs:
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-graphviz
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-nodejs
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-boost
mingw-w64-ucrt-x86_64-nlohmann-json
Expand DownExpand Up@@ -177,18 +177,27 @@ jobs:
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
run: |
mkdir -p build
cd build

if [ "${{ runner.os }}" = "Linux" ]; then
# Doxygen from Ubuntu is too old, need Doxygen >= 1.10
DOCS=OFF
else
DOCS=ON
fi

cmake \
-DBUILD_DOCS=${DOCS} \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-B build \
-G Ninja \
..
ninja
-S .
ninja -C build

- name: Run tests
id: test
working-directory: build
working-directory: build/tests
run: |
./tests/test_libdisplaydevice --gtest_color=yes
./test_libdisplaydevice --gtest_color=yes

- name: Generate gcov report
# any except canceled or skipped
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,5 +41,8 @@
build/
cmake-*/

# doxyconfig
docs/*-doxyconfig*

# CTest
Testing/
8 changes: 4 additions & 4 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
[submodule "third-party/doxygen-awesome-css"]
path = third-party/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
branch = main
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
branch = master
[submodule "third-party/googletest"]
path = third-party/googletest
url = https://github.com/google/googletest.git
Expand Down
26 changes: 19 additions & 7 deletions .readthedocs.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,25 +3,37 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python
build:
os: ubuntu-24.04
tools:
python: "miniconda-latest"
commands:
# because we are overriding the build commands, we need to setup the environment ourselves
- cat docs/environment.yml
- conda env create --quiet --name $READTHEDOCS_VERSION --file docs/environment.yml
- cmake -B build -S .
- cmake --build build --target docs
- cat third-party/doxyconfig/environment.yml
- conda env create --quiet --name ${READTHEDOCS_VERSION} --file third-party/doxyconfig/environment.yml
- npm install "@fortawesome/fontawesome-free"
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp node_modules/@fortawesome/fontawesome-free/css/all.min.css ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- cp node_modules/@fortawesome/fontawesome-free/js/all.min.js ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp -r node_modules/@fortawesome/fontawesome-free/webfonts ${READTHEDOCS_OUTPUT}html/assets/fontawesome/
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/favicon.ico" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.ico
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/logo-128x128.png" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.png
- cp ./third-party/doxyconfig/Doxyfile ./docs/Doxyfile-doxyconfig
- cp ./third-party/doxyconfig/header.html ./docs/header-doxyconfig.html
- cat ./docs/Doxyfile >> ./docs/Doxyfile-doxyconfig
- cd docs && doxygen Doxyfile-doxyconfig

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: docs/environment.yml
environment: third-party/doxyconfig/environment.yml

submodules:
include: all
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()

# Add our custom CMake modules to the global path
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

#
# Project optional configuration
Expand All@@ -28,7 +28,7 @@ option(BUILD_TESTS "Build tests" ON)
# Documentation
#
if(BUILD_DOCS)
add_subdirectory(docs)
add_subdirectory(third-party/doxyconfig docs)
endif()

#
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,8 +23,7 @@ Ensure [git](https://git-scm.com/) is installed and run the following:
```bash
git clone https://github.com/lizardbyte/libdisplaydevice.git --recurse-submodules
cd libdisplaydevice
mkdir build
cd build
mkdir -p build
```

### Windows
Expand DownExpand Up@@ -54,18 +53,17 @@ pacman -S \

### Build

> [!WARNING]
> Ensure you are in the build directory created during the clone step earlier before continuing.
@warning{Ensure you are in the build directory created during the clone step earlier before continuing.}

```bash
cmake -G Ninja ..
ninja
cmake -G Ninja -B build -S .
ninja -C build
```

### Test

```bash
tests\test_libdisplaydevice
./build/tests/test_libdisplaydevice
```

## Support
Expand Down
41 changes: 0 additions & 41 deletions docs/CMakeLists.txt

This file was deleted.

80 changes: 11 additions & 69 deletions docs/Doxyfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,80 +21,22 @@
# replacement variables:
# doxygen -x_noenv [configFile]

# must be first
DOXYFILE_ENCODING = UTF-8

# files and directories to process
INPUT = ../README.md \
../src

ALIASES = ""
ALIASES += "examples=^^**Examples**^^@code{.cpp}"
ALIASES += "examples_end=@endcode^^"
ALIASES += "rst=^^\verbatim embed:rst:leading-asterisk^^"
ALIASES += "rst_end=\endverbatim"

CASE_SENSE_NAMES = YES
DISABLE_INDEX = NO
DOCBOOK_OUTPUT = doxydocbook
# project metadata
DOCSET_BUNDLE_ID = dev.lizardbyte.libdisplaydevice
DOCSET_PUBLISHER_ID = dev.lizardbyte.libdisplaydevice.documentation
DOCSET_PUBLISHER_NAME = LizardByte
DOT_GRAPH_MAX_NODES = 50
DOT_IMAGE_FORMAT = svg

# TODO: On Windows, Doxygen hangs when creating dot graphs if this is set to 0
DOT_NUM_THREADS = 1

EXTRACT_ALL = NO
FULL_SIDEBAR = NO
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = YES
GENERATE_XML = NO
HAVE_DOT = YES
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
HTML_COPY_CLIPBOARD = NO # required for Doxygen >= 1.10.0
HTML_EXTRA_FILES = ../third-party/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-interactive-toc.js
HTML_EXTRA_STYLESHEET = ../third-party/doxygen-awesome-css/doxygen-awesome.css
HTML_HEADER = doxygen/header.html
HTML_OUTPUT = html
# INCLUDE_PATH = ../
INTERACTIVE_SVG = YES
LATEX_OUTPUT = latex
MACRO_EXPANSION = YES
MAN_OUTPUT = man
NUM_PROC_THREADS = 1
PREDEFINED = DOXYGEN
PREDEFINED += __APPLE__
PREDEFINED += linux
PREDEFINED += __linux
PREDEFINED += __linux__
PREDEFINED += __MACH__
PREDEFINED += _WIN32
PROJECT_BRIEF = "C++ library to modify display devices."
PROJECT_ICON = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.ico
PROJECT_NUMBER = $(LDD_PROJECT_VERSION)
PROJECT_LOGO = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.png
PROJECT_NAME = libdisplaydevice
OUTPUT_DIRECTORY = $(LDD_DOXYGEN_BUILD_DIR)
RECURSIVE = YES
RTF_OUTPUT = rtf
SORT_BRIEF_DOCS = YES
STRIP_FROM_INC_PATH = ../
STRIP_FROM_PATH = ../
WARN_AS_ERROR = FAIL_ON_WARNINGS

# project specific settings
DOT_GRAPH_MAX_NODES = 50
# IMAGE_PATH = ../docs/images
INCLUDE_PATH =

# TODO: Enable this when we have complete documentation
WARN_IF_UNDOCUMENTED = NO

WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_IF_UNDOC_ENUM_VAL = YES
WARN_NO_PARAMDOC = YES
WARNINGS = YES

XML_OUTPUT = xml
# files and directories to process
USE_MDFILE_AS_MAINPAGE = ../README.md
INPUT = ../README.md \
../third-party/doxyconfig/docs/source_code.md \
../src
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
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
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Linux.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,11 +20,12 @@ sudo rm -rf /var/lib/apt/lists/*

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Windows.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -15,11 +15,12 @@ pacman --noconfirm -S \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-macOS.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,11 +10,12 @@ brew install \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
27 changes: 18 additions & 9 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,21 +63,20 @@ jobs:
sudo apt-get install -y \
build-essential \
cmake \
doxygen \
graphviz \
ninja-build \
nlohmann-json3-dev

- name: Setup Dependencies macOS
if: runner.os == 'macOS'
run: |
brew install \
boost \
cmake \
doxygen \
graphviz \
nlohmann-json \
ninja \
boost \
nlohmann-json
node \

- name: Setup Dependencies Windows
if: runner.os == 'Windows'
Expand All@@ -91,6 +90,7 @@ jobs:
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-graphviz
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-nodejs
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-boost
mingw-w64-ucrt-x86_64-nlohmann-json
Expand DownExpand Up@@ -177,18 +177,27 @@ jobs:
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
run: |
mkdir -p build
cd build

if [ "${{ runner.os }}" = "Linux" ]; then
# Doxygen from Ubuntu is too old, need Doxygen >= 1.10
DOCS=OFF
else
DOCS=ON
fi

cmake \
-DBUILD_DOCS=${DOCS} \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-B build \
-G Ninja \
..
ninja
-S .
ninja -C build

- name: Run tests
id: test
working-directory: build
working-directory: build/tests
run: |
./tests/test_libdisplaydevice --gtest_color=yes
./test_libdisplaydevice --gtest_color=yes

- name: Generate gcov report
# any except canceled or skipped
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,5 +41,8 @@
build/
cmake-*/

# doxyconfig
docs/*-doxyconfig*

# CTest
Testing/
8 changes: 4 additions & 4 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
[submodule "third-party/doxygen-awesome-css"]
path = third-party/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
branch = main
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
branch = master
[submodule "third-party/googletest"]
path = third-party/googletest
url = https://github.com/google/googletest.git
Expand Down
26 changes: 19 additions & 7 deletions .readthedocs.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,25 +3,37 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python
build:
os: ubuntu-24.04
tools:
python: "miniconda-latest"
commands:
# because we are overriding the build commands, we need to setup the environment ourselves
- cat docs/environment.yml
- conda env create --quiet --name $READTHEDOCS_VERSION --file docs/environment.yml
- cmake -B build -S .
- cmake --build build --target docs
- cat third-party/doxyconfig/environment.yml
- conda env create --quiet --name ${READTHEDOCS_VERSION} --file third-party/doxyconfig/environment.yml
- npm install "@fortawesome/fontawesome-free"
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp node_modules/@fortawesome/fontawesome-free/css/all.min.css ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- cp node_modules/@fortawesome/fontawesome-free/js/all.min.js ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp -r node_modules/@fortawesome/fontawesome-free/webfonts ${READTHEDOCS_OUTPUT}html/assets/fontawesome/
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/favicon.ico" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.ico
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/logo-128x128.png" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.png
- cp ./third-party/doxyconfig/Doxyfile ./docs/Doxyfile-doxyconfig
- cp ./third-party/doxyconfig/header.html ./docs/header-doxyconfig.html
- cat ./docs/Doxyfile >> ./docs/Doxyfile-doxyconfig
- cd docs && doxygen Doxyfile-doxyconfig

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: docs/environment.yml
environment: third-party/doxyconfig/environment.yml

submodules:
include: all
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()

# Add our custom CMake modules to the global path
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

#
# Project optional configuration
Expand All@@ -28,7 +28,7 @@ option(BUILD_TESTS "Build tests" ON)
# Documentation
#
if(BUILD_DOCS)
add_subdirectory(docs)
add_subdirectory(third-party/doxyconfig docs)
endif()

#
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,8 +23,7 @@ Ensure [git](https://git-scm.com/) is installed and run the following:
```bash
git clone https://github.com/lizardbyte/libdisplaydevice.git --recurse-submodules
cd libdisplaydevice
mkdir build
cd build
mkdir -p build
```

### Windows
Expand DownExpand Up@@ -54,18 +53,17 @@ pacman -S \

### Build

> [!WARNING]
> Ensure you are in the build directory created during the clone step earlier before continuing.
@warning{Ensure you are in the build directory created during the clone step earlier before continuing.}

```bash
cmake -G Ninja ..
ninja
cmake -G Ninja -B build -S .
ninja -C build
```

### Test

```bash
tests\test_libdisplaydevice
./build/tests/test_libdisplaydevice
```

## Support
Expand Down
41 changes: 0 additions & 41 deletions docs/CMakeLists.txt

This file was deleted.

80 changes: 11 additions & 69 deletions docs/Doxyfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,80 +21,22 @@
# replacement variables:
# doxygen -x_noenv [configFile]

# must be first
DOXYFILE_ENCODING = UTF-8

# files and directories to process
INPUT = ../README.md \
../src

ALIASES = ""
ALIASES += "examples=^^**Examples**^^@code{.cpp}"
ALIASES += "examples_end=@endcode^^"
ALIASES += "rst=^^\verbatim embed:rst:leading-asterisk^^"
ALIASES += "rst_end=\endverbatim"

CASE_SENSE_NAMES = YES
DISABLE_INDEX = NO
DOCBOOK_OUTPUT = doxydocbook
# project metadata
DOCSET_BUNDLE_ID = dev.lizardbyte.libdisplaydevice
DOCSET_PUBLISHER_ID = dev.lizardbyte.libdisplaydevice.documentation
DOCSET_PUBLISHER_NAME = LizardByte
DOT_GRAPH_MAX_NODES = 50
DOT_IMAGE_FORMAT = svg

# TODO: On Windows, Doxygen hangs when creating dot graphs if this is set to 0
DOT_NUM_THREADS = 1

EXTRACT_ALL = NO
FULL_SIDEBAR = NO
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = YES
GENERATE_XML = NO
HAVE_DOT = YES
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
HTML_COPY_CLIPBOARD = NO # required for Doxygen >= 1.10.0
HTML_EXTRA_FILES = ../third-party/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-interactive-toc.js
HTML_EXTRA_STYLESHEET = ../third-party/doxygen-awesome-css/doxygen-awesome.css
HTML_HEADER = doxygen/header.html
HTML_OUTPUT = html
# INCLUDE_PATH = ../
INTERACTIVE_SVG = YES
LATEX_OUTPUT = latex
MACRO_EXPANSION = YES
MAN_OUTPUT = man
NUM_PROC_THREADS = 1
PREDEFINED = DOXYGEN
PREDEFINED += __APPLE__
PREDEFINED += linux
PREDEFINED += __linux
PREDEFINED += __linux__
PREDEFINED += __MACH__
PREDEFINED += _WIN32
PROJECT_BRIEF = "C++ library to modify display devices."
PROJECT_ICON = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.ico
PROJECT_NUMBER = $(LDD_PROJECT_VERSION)
PROJECT_LOGO = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.png
PROJECT_NAME = libdisplaydevice
OUTPUT_DIRECTORY = $(LDD_DOXYGEN_BUILD_DIR)
RECURSIVE = YES
RTF_OUTPUT = rtf
SORT_BRIEF_DOCS = YES
STRIP_FROM_INC_PATH = ../
STRIP_FROM_PATH = ../
WARN_AS_ERROR = FAIL_ON_WARNINGS

# project specific settings
DOT_GRAPH_MAX_NODES = 50
# IMAGE_PATH = ../docs/images
INCLUDE_PATH =

# TODO: Enable this when we have complete documentation
WARN_IF_UNDOCUMENTED = NO

WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_IF_UNDOC_ENUM_VAL = YES
WARN_NO_PARAMDOC = YES
WARNINGS = YES

XML_OUTPUT = xml
# files and directories to process
USE_MDFILE_AS_MAINPAGE = ../README.md
INPUT = ../README.md \
../third-party/doxyconfig/docs/source_code.md \
../src
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Linux.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,11 +20,12 @@ sudo rm -rf /var/lib/apt/lists/*

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Windows.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -15,11 +15,12 @@ pacman --noconfirm -S \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-macOS.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,11 +10,12 @@ brew install \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
27 changes: 18 additions & 9 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,21 +63,20 @@ jobs:
sudo apt-get install -y \
build-essential \
cmake \
doxygen \
graphviz \
ninja-build \
nlohmann-json3-dev

- name: Setup Dependencies macOS
if: runner.os == 'macOS'
run: |
brew install \
boost \
cmake \
doxygen \
graphviz \
nlohmann-json \
ninja \
boost \
nlohmann-json
node \

- name: Setup Dependencies Windows
if: runner.os == 'Windows'
Expand All@@ -91,6 +90,7 @@ jobs:
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-graphviz
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-nodejs
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-boost
mingw-w64-ucrt-x86_64-nlohmann-json
Expand DownExpand Up@@ -177,18 +177,27 @@ jobs:
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
run: |
mkdir -p build
cd build

if [ "${{ runner.os }}" = "Linux" ]; then
# Doxygen from Ubuntu is too old, need Doxygen >= 1.10
DOCS=OFF
else
DOCS=ON
fi

cmake \
-DBUILD_DOCS=${DOCS} \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-B build \
-G Ninja \
..
ninja
-S .
ninja -C build

- name: Run tests
id: test
working-directory: build
working-directory: build/tests
run: |
./tests/test_libdisplaydevice --gtest_color=yes
./test_libdisplaydevice --gtest_color=yes

- name: Generate gcov report
# any except canceled or skipped
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,5 +41,8 @@
build/
cmake-*/

# doxyconfig
docs/*-doxyconfig*

# CTest
Testing/
8 changes: 4 additions & 4 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
[submodule "third-party/doxygen-awesome-css"]
path = third-party/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
branch = main
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
branch = master
[submodule "third-party/googletest"]
path = third-party/googletest
url = https://github.com/google/googletest.git
Expand Down
26 changes: 19 additions & 7 deletions .readthedocs.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,25 +3,37 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python
build:
os: ubuntu-24.04
tools:
python: "miniconda-latest"
commands:
# because we are overriding the build commands, we need to setup the environment ourselves
- cat docs/environment.yml
- conda env create --quiet --name $READTHEDOCS_VERSION --file docs/environment.yml
- cmake -B build -S .
- cmake --build build --target docs
- cat third-party/doxyconfig/environment.yml
- conda env create --quiet --name ${READTHEDOCS_VERSION} --file third-party/doxyconfig/environment.yml
- npm install "@fortawesome/fontawesome-free"
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp node_modules/@fortawesome/fontawesome-free/css/all.min.css ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- cp node_modules/@fortawesome/fontawesome-free/js/all.min.js ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp -r node_modules/@fortawesome/fontawesome-free/webfonts ${READTHEDOCS_OUTPUT}html/assets/fontawesome/
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/favicon.ico" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.ico
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/logo-128x128.png" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.png
- cp ./third-party/doxyconfig/Doxyfile ./docs/Doxyfile-doxyconfig
- cp ./third-party/doxyconfig/header.html ./docs/header-doxyconfig.html
- cat ./docs/Doxyfile >> ./docs/Doxyfile-doxyconfig
- cd docs && doxygen Doxyfile-doxyconfig

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: docs/environment.yml
environment: third-party/doxyconfig/environment.yml

submodules:
include: all
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()

# Add our custom CMake modules to the global path
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

#
# Project optional configuration
Expand All@@ -28,7 +28,7 @@ option(BUILD_TESTS "Build tests" ON)
# Documentation
#
if(BUILD_DOCS)
add_subdirectory(docs)
add_subdirectory(third-party/doxyconfig docs)
endif()

#
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,8 +23,7 @@ Ensure [git](https://git-scm.com/) is installed and run the following:
```bash
git clone https://github.com/lizardbyte/libdisplaydevice.git --recurse-submodules
cd libdisplaydevice
mkdir build
cd build
mkdir -p build
```

### Windows
Expand DownExpand Up@@ -54,18 +53,17 @@ pacman -S \

### Build

> [!WARNING]
> Ensure you are in the build directory created during the clone step earlier before continuing.
@warning{Ensure you are in the build directory created during the clone step earlier before continuing.}

```bash
cmake -G Ninja ..
ninja
cmake -G Ninja -B build -S .
ninja -C build
```

### Test

```bash
tests\test_libdisplaydevice
./build/tests/test_libdisplaydevice
```

## Support
Expand Down
41 changes: 0 additions & 41 deletions docs/CMakeLists.txt

This file was deleted.

80 changes: 11 additions & 69 deletions docs/Doxyfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,80 +21,22 @@
# replacement variables:
# doxygen -x_noenv [configFile]

# must be first
DOXYFILE_ENCODING = UTF-8

# files and directories to process
INPUT = ../README.md \
../src

ALIASES = ""
ALIASES += "examples=^^**Examples**^^@code{.cpp}"
ALIASES += "examples_end=@endcode^^"
ALIASES += "rst=^^\verbatim embed:rst:leading-asterisk^^"
ALIASES += "rst_end=\endverbatim"

CASE_SENSE_NAMES = YES
DISABLE_INDEX = NO
DOCBOOK_OUTPUT = doxydocbook
# project metadata
DOCSET_BUNDLE_ID = dev.lizardbyte.libdisplaydevice
DOCSET_PUBLISHER_ID = dev.lizardbyte.libdisplaydevice.documentation
DOCSET_PUBLISHER_NAME = LizardByte
DOT_GRAPH_MAX_NODES = 50
DOT_IMAGE_FORMAT = svg

# TODO: On Windows, Doxygen hangs when creating dot graphs if this is set to 0
DOT_NUM_THREADS = 1

EXTRACT_ALL = NO
FULL_SIDEBAR = NO
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = YES
GENERATE_XML = NO
HAVE_DOT = YES
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
HTML_COPY_CLIPBOARD = NO # required for Doxygen >= 1.10.0
HTML_EXTRA_FILES = ../third-party/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-interactive-toc.js
HTML_EXTRA_STYLESHEET = ../third-party/doxygen-awesome-css/doxygen-awesome.css
HTML_HEADER = doxygen/header.html
HTML_OUTPUT = html
# INCLUDE_PATH = ../
INTERACTIVE_SVG = YES
LATEX_OUTPUT = latex
MACRO_EXPANSION = YES
MAN_OUTPUT = man
NUM_PROC_THREADS = 1
PREDEFINED = DOXYGEN
PREDEFINED += __APPLE__
PREDEFINED += linux
PREDEFINED += __linux
PREDEFINED += __linux__
PREDEFINED += __MACH__
PREDEFINED += _WIN32
PROJECT_BRIEF = "C++ library to modify display devices."
PROJECT_ICON = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.ico
PROJECT_NUMBER = $(LDD_PROJECT_VERSION)
PROJECT_LOGO = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.png
PROJECT_NAME = libdisplaydevice
OUTPUT_DIRECTORY = $(LDD_DOXYGEN_BUILD_DIR)
RECURSIVE = YES
RTF_OUTPUT = rtf
SORT_BRIEF_DOCS = YES
STRIP_FROM_INC_PATH = ../
STRIP_FROM_PATH = ../
WARN_AS_ERROR = FAIL_ON_WARNINGS

# project specific settings
DOT_GRAPH_MAX_NODES = 50
# IMAGE_PATH = ../docs/images
INCLUDE_PATH =

# TODO: Enable this when we have complete documentation
WARN_IF_UNDOCUMENTED = NO

WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_IF_UNDOC_ENUM_VAL = YES
WARN_NO_PARAMDOC = YES
WARNINGS = YES

XML_OUTPUT = xml
# files and directories to process
USE_MDFILE_AS_MAINPAGE = ../README.md
INPUT = ../README.md \
../third-party/doxyconfig/docs/source_code.md \
../src
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Linux.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,11 +20,12 @@ sudo rm -rf /var/lib/apt/lists/*

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Windows.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -15,11 +15,12 @@ pacman --noconfirm -S \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-macOS.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,11 +10,12 @@ brew install \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
27 changes: 18 additions & 9 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,21 +63,20 @@ jobs:
sudo apt-get install -y \
build-essential \
cmake \
doxygen \
graphviz \
ninja-build \
nlohmann-json3-dev

- name: Setup Dependencies macOS
if: runner.os == 'macOS'
run: |
brew install \
boost \
cmake \
doxygen \
graphviz \
nlohmann-json \
ninja \
boost \
nlohmann-json
node \

- name: Setup Dependencies Windows
if: runner.os == 'Windows'
Expand All@@ -91,6 +90,7 @@ jobs:
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-graphviz
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-nodejs
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-boost
mingw-w64-ucrt-x86_64-nlohmann-json
Expand DownExpand Up@@ -177,18 +177,27 @@ jobs:
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
run: |
mkdir -p build
cd build

if [ "${{ runner.os }}" = "Linux" ]; then
# Doxygen from Ubuntu is too old, need Doxygen >= 1.10
DOCS=OFF
else
DOCS=ON
fi

cmake \
-DBUILD_DOCS=${DOCS} \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-B build \
-G Ninja \
..
ninja
-S .
ninja -C build

- name: Run tests
id: test
working-directory: build
working-directory: build/tests
run: |
./tests/test_libdisplaydevice --gtest_color=yes
./test_libdisplaydevice --gtest_color=yes

- name: Generate gcov report
# any except canceled or skipped
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,5 +41,8 @@
build/
cmake-*/

# doxyconfig
docs/*-doxyconfig*

# CTest
Testing/
8 changes: 4 additions & 4 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
[submodule "third-party/doxygen-awesome-css"]
path = third-party/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
branch = main
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
branch = master
[submodule "third-party/googletest"]
path = third-party/googletest
url = https://github.com/google/googletest.git
Expand Down
26 changes: 19 additions & 7 deletions .readthedocs.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,25 +3,37 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python
build:
os: ubuntu-24.04
tools:
python: "miniconda-latest"
commands:
# because we are overriding the build commands, we need to setup the environment ourselves
- cat docs/environment.yml
- conda env create --quiet --name $READTHEDOCS_VERSION --file docs/environment.yml
- cmake -B build -S .
- cmake --build build --target docs
- cat third-party/doxyconfig/environment.yml
- conda env create --quiet --name ${READTHEDOCS_VERSION} --file third-party/doxyconfig/environment.yml
- npm install "@fortawesome/fontawesome-free"
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp node_modules/@fortawesome/fontawesome-free/css/all.min.css ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- cp node_modules/@fortawesome/fontawesome-free/js/all.min.js ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp -r node_modules/@fortawesome/fontawesome-free/webfonts ${READTHEDOCS_OUTPUT}html/assets/fontawesome/
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/favicon.ico" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.ico
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/logo-128x128.png" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.png
- cp ./third-party/doxyconfig/Doxyfile ./docs/Doxyfile-doxyconfig
- cp ./third-party/doxyconfig/header.html ./docs/header-doxyconfig.html
- cat ./docs/Doxyfile >> ./docs/Doxyfile-doxyconfig
- cd docs && doxygen Doxyfile-doxyconfig

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: docs/environment.yml
environment: third-party/doxyconfig/environment.yml

submodules:
include: all
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()

# Add our custom CMake modules to the global path
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

#
# Project optional configuration
Expand All@@ -28,7 +28,7 @@ option(BUILD_TESTS "Build tests" ON)
# Documentation
#
if(BUILD_DOCS)
add_subdirectory(docs)
add_subdirectory(third-party/doxyconfig docs)
endif()

#
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,8 +23,7 @@ Ensure [git](https://git-scm.com/) is installed and run the following:
```bash
git clone https://github.com/lizardbyte/libdisplaydevice.git --recurse-submodules
cd libdisplaydevice
mkdir build
cd build
mkdir -p build
```

### Windows
Expand DownExpand Up@@ -54,18 +53,17 @@ pacman -S \

### Build

> [!WARNING]
> Ensure you are in the build directory created during the clone step earlier before continuing.
@warning{Ensure you are in the build directory created during the clone step earlier before continuing.}

```bash
cmake -G Ninja ..
ninja
cmake -G Ninja -B build -S .
ninja -C build
```

### Test

```bash
tests\test_libdisplaydevice
./build/tests/test_libdisplaydevice
```

## Support
Expand Down
41 changes: 0 additions & 41 deletions docs/CMakeLists.txt

This file was deleted.

80 changes: 11 additions & 69 deletions docs/Doxyfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,80 +21,22 @@
# replacement variables:
# doxygen -x_noenv [configFile]

# must be first
DOXYFILE_ENCODING = UTF-8

# files and directories to process
INPUT = ../README.md \
../src

ALIASES = ""
ALIASES += "examples=^^**Examples**^^@code{.cpp}"
ALIASES += "examples_end=@endcode^^"
ALIASES += "rst=^^\verbatim embed:rst:leading-asterisk^^"
ALIASES += "rst_end=\endverbatim"

CASE_SENSE_NAMES = YES
DISABLE_INDEX = NO
DOCBOOK_OUTPUT = doxydocbook
# project metadata
DOCSET_BUNDLE_ID = dev.lizardbyte.libdisplaydevice
DOCSET_PUBLISHER_ID = dev.lizardbyte.libdisplaydevice.documentation
DOCSET_PUBLISHER_NAME = LizardByte
DOT_GRAPH_MAX_NODES = 50
DOT_IMAGE_FORMAT = svg

# TODO: On Windows, Doxygen hangs when creating dot graphs if this is set to 0
DOT_NUM_THREADS = 1

EXTRACT_ALL = NO
FULL_SIDEBAR = NO
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = YES
GENERATE_XML = NO
HAVE_DOT = YES
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
HTML_COPY_CLIPBOARD = NO # required for Doxygen >= 1.10.0
HTML_EXTRA_FILES = ../third-party/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-interactive-toc.js
HTML_EXTRA_STYLESHEET = ../third-party/doxygen-awesome-css/doxygen-awesome.css
HTML_HEADER = doxygen/header.html
HTML_OUTPUT = html
# INCLUDE_PATH = ../
INTERACTIVE_SVG = YES
LATEX_OUTPUT = latex
MACRO_EXPANSION = YES
MAN_OUTPUT = man
NUM_PROC_THREADS = 1
PREDEFINED = DOXYGEN
PREDEFINED += __APPLE__
PREDEFINED += linux
PREDEFINED += __linux
PREDEFINED += __linux__
PREDEFINED += __MACH__
PREDEFINED += _WIN32
PROJECT_BRIEF = "C++ library to modify display devices."
PROJECT_ICON = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.ico
PROJECT_NUMBER = $(LDD_PROJECT_VERSION)
PROJECT_LOGO = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.png
PROJECT_NAME = libdisplaydevice
OUTPUT_DIRECTORY = $(LDD_DOXYGEN_BUILD_DIR)
RECURSIVE = YES
RTF_OUTPUT = rtf
SORT_BRIEF_DOCS = YES
STRIP_FROM_INC_PATH = ../
STRIP_FROM_PATH = ../
WARN_AS_ERROR = FAIL_ON_WARNINGS

# project specific settings
DOT_GRAPH_MAX_NODES = 50
# IMAGE_PATH = ../docs/images
INCLUDE_PATH =

# TODO: Enable this when we have complete documentation
WARN_IF_UNDOCUMENTED = NO

WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_IF_UNDOC_ENUM_VAL = YES
WARN_NO_PARAMDOC = YES
WARNINGS = YES

XML_OUTPUT = xml
# files and directories to process
USE_MDFILE_AS_MAINPAGE = ../README.md
INPUT = ../README.md \
../third-party/doxyconfig/docs/source_code.md \
../src
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
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
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Linux.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,11 +20,12 @@ sudo rm -rf /var/lib/apt/lists/*

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Windows.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -15,11 +15,12 @@ pacman --noconfirm -S \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-macOS.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,11 +10,12 @@ brew install \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
27 changes: 18 additions & 9 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,21 +63,20 @@ jobs:
sudo apt-get install -y \
build-essential \
cmake \
doxygen \
graphviz \
ninja-build \
nlohmann-json3-dev

- name: Setup Dependencies macOS
if: runner.os == 'macOS'
run: |
brew install \
boost \
cmake \
doxygen \
graphviz \
nlohmann-json \
ninja \
boost \
nlohmann-json
node \

- name: Setup Dependencies Windows
if: runner.os == 'Windows'
Expand All@@ -91,6 +90,7 @@ jobs:
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-graphviz
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-nodejs
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-boost
mingw-w64-ucrt-x86_64-nlohmann-json
Expand DownExpand Up@@ -177,18 +177,27 @@ jobs:
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
run: |
mkdir -p build
cd build

if [ "${{ runner.os }}" = "Linux" ]; then
# Doxygen from Ubuntu is too old, need Doxygen >= 1.10
DOCS=OFF
else
DOCS=ON
fi

cmake \
-DBUILD_DOCS=${DOCS} \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-B build \
-G Ninja \
..
ninja
-S .
ninja -C build

- name: Run tests
id: test
working-directory: build
working-directory: build/tests
run: |
./tests/test_libdisplaydevice --gtest_color=yes
./test_libdisplaydevice --gtest_color=yes

- name: Generate gcov report
# any except canceled or skipped
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,5 +41,8 @@
build/
cmake-*/

# doxyconfig
docs/*-doxyconfig*

# CTest
Testing/
8 changes: 4 additions & 4 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
[submodule "third-party/doxygen-awesome-css"]
path = third-party/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
branch = main
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
branch = master
[submodule "third-party/googletest"]
path = third-party/googletest
url = https://github.com/google/googletest.git
Expand Down
26 changes: 19 additions & 7 deletions .readthedocs.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,25 +3,37 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python
build:
os: ubuntu-24.04
tools:
python: "miniconda-latest"
commands:
# because we are overriding the build commands, we need to setup the environment ourselves
- cat docs/environment.yml
- conda env create --quiet --name $READTHEDOCS_VERSION --file docs/environment.yml
- cmake -B build -S .
- cmake --build build --target docs
- cat third-party/doxyconfig/environment.yml
- conda env create --quiet --name ${READTHEDOCS_VERSION} --file third-party/doxyconfig/environment.yml
- npm install "@fortawesome/fontawesome-free"
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp node_modules/@fortawesome/fontawesome-free/css/all.min.css ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- cp node_modules/@fortawesome/fontawesome-free/js/all.min.js ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp -r node_modules/@fortawesome/fontawesome-free/webfonts ${READTHEDOCS_OUTPUT}html/assets/fontawesome/
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/favicon.ico" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.ico
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/logo-128x128.png" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.png
- cp ./third-party/doxyconfig/Doxyfile ./docs/Doxyfile-doxyconfig
- cp ./third-party/doxyconfig/header.html ./docs/header-doxyconfig.html
- cat ./docs/Doxyfile >> ./docs/Doxyfile-doxyconfig
- cd docs && doxygen Doxyfile-doxyconfig

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: docs/environment.yml
environment: third-party/doxyconfig/environment.yml

submodules:
include: all
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()

# Add our custom CMake modules to the global path
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

#
# Project optional configuration
Expand All@@ -28,7 +28,7 @@ option(BUILD_TESTS "Build tests" ON)
# Documentation
#
if(BUILD_DOCS)
add_subdirectory(docs)
add_subdirectory(third-party/doxyconfig docs)
endif()

#
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,8 +23,7 @@ Ensure [git](https://git-scm.com/) is installed and run the following:
```bash
git clone https://github.com/lizardbyte/libdisplaydevice.git --recurse-submodules
cd libdisplaydevice
mkdir build
cd build
mkdir -p build
```

### Windows
Expand DownExpand Up@@ -54,18 +53,17 @@ pacman -S \

### Build

> [!WARNING]
> Ensure you are in the build directory created during the clone step earlier before continuing.
@warning{Ensure you are in the build directory created during the clone step earlier before continuing.}

```bash
cmake -G Ninja ..
ninja
cmake -G Ninja -B build -S .
ninja -C build
```

### Test

```bash
tests\test_libdisplaydevice
./build/tests/test_libdisplaydevice
```

## Support
Expand Down
41 changes: 0 additions & 41 deletions docs/CMakeLists.txt

This file was deleted.

80 changes: 11 additions & 69 deletions docs/Doxyfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,80 +21,22 @@
# replacement variables:
# doxygen -x_noenv [configFile]

# must be first
DOXYFILE_ENCODING = UTF-8

# files and directories to process
INPUT = ../README.md \
../src

ALIASES = ""
ALIASES += "examples=^^**Examples**^^@code{.cpp}"
ALIASES += "examples_end=@endcode^^"
ALIASES += "rst=^^\verbatim embed:rst:leading-asterisk^^"
ALIASES += "rst_end=\endverbatim"

CASE_SENSE_NAMES = YES
DISABLE_INDEX = NO
DOCBOOK_OUTPUT = doxydocbook
# project metadata
DOCSET_BUNDLE_ID = dev.lizardbyte.libdisplaydevice
DOCSET_PUBLISHER_ID = dev.lizardbyte.libdisplaydevice.documentation
DOCSET_PUBLISHER_NAME = LizardByte
DOT_GRAPH_MAX_NODES = 50
DOT_IMAGE_FORMAT = svg

# TODO: On Windows, Doxygen hangs when creating dot graphs if this is set to 0
DOT_NUM_THREADS = 1

EXTRACT_ALL = NO
FULL_SIDEBAR = NO
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = YES
GENERATE_XML = NO
HAVE_DOT = YES
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
HTML_COPY_CLIPBOARD = NO # required for Doxygen >= 1.10.0
HTML_EXTRA_FILES = ../third-party/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-interactive-toc.js
HTML_EXTRA_STYLESHEET = ../third-party/doxygen-awesome-css/doxygen-awesome.css
HTML_HEADER = doxygen/header.html
HTML_OUTPUT = html
# INCLUDE_PATH = ../
INTERACTIVE_SVG = YES
LATEX_OUTPUT = latex
MACRO_EXPANSION = YES
MAN_OUTPUT = man
NUM_PROC_THREADS = 1
PREDEFINED = DOXYGEN
PREDEFINED += __APPLE__
PREDEFINED += linux
PREDEFINED += __linux
PREDEFINED += __linux__
PREDEFINED += __MACH__
PREDEFINED += _WIN32
PROJECT_BRIEF = "C++ library to modify display devices."
PROJECT_ICON = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.ico
PROJECT_NUMBER = $(LDD_PROJECT_VERSION)
PROJECT_LOGO = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.png
PROJECT_NAME = libdisplaydevice
OUTPUT_DIRECTORY = $(LDD_DOXYGEN_BUILD_DIR)
RECURSIVE = YES
RTF_OUTPUT = rtf
SORT_BRIEF_DOCS = YES
STRIP_FROM_INC_PATH = ../
STRIP_FROM_PATH = ../
WARN_AS_ERROR = FAIL_ON_WARNINGS

# project specific settings
DOT_GRAPH_MAX_NODES = 50
# IMAGE_PATH = ../docs/images
INCLUDE_PATH =

# TODO: Enable this when we have complete documentation
WARN_IF_UNDOCUMENTED = NO

WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_IF_UNDOC_ENUM_VAL = YES
WARN_NO_PARAMDOC = YES
WARNINGS = YES

XML_OUTPUT = xml
# files and directories to process
USE_MDFILE_AS_MAINPAGE = ../README.md
INPUT = ../README.md \
../third-party/doxyconfig/docs/source_code.md \
../src
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Linux.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,11 +20,12 @@ sudo rm -rf /var/lib/apt/lists/*

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Windows.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -15,11 +15,12 @@ pacman --noconfirm -S \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-macOS.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,11 +10,12 @@ brew install \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
27 changes: 18 additions & 9 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,21 +63,20 @@ jobs:
sudo apt-get install -y \
build-essential \
cmake \
doxygen \
graphviz \
ninja-build \
nlohmann-json3-dev

- name: Setup Dependencies macOS
if: runner.os == 'macOS'
run: |
brew install \
boost \
cmake \
doxygen \
graphviz \
nlohmann-json \
ninja \
boost \
nlohmann-json
node \

- name: Setup Dependencies Windows
if: runner.os == 'Windows'
Expand All@@ -91,6 +90,7 @@ jobs:
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-graphviz
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-nodejs
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-boost
mingw-w64-ucrt-x86_64-nlohmann-json
Expand DownExpand Up@@ -177,18 +177,27 @@ jobs:
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
run: |
mkdir -p build
cd build

if [ "${{ runner.os }}" = "Linux" ]; then
# Doxygen from Ubuntu is too old, need Doxygen >= 1.10
DOCS=OFF
else
DOCS=ON
fi

cmake \
-DBUILD_DOCS=${DOCS} \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-B build \
-G Ninja \
..
ninja
-S .
ninja -C build

- name: Run tests
id: test
working-directory: build
working-directory: build/tests
run: |
./tests/test_libdisplaydevice --gtest_color=yes
./test_libdisplaydevice --gtest_color=yes

- name: Generate gcov report
# any except canceled or skipped
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,5 +41,8 @@
build/
cmake-*/

# doxyconfig
docs/*-doxyconfig*

# CTest
Testing/
8 changes: 4 additions & 4 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
[submodule "third-party/doxygen-awesome-css"]
path = third-party/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
branch = main
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
branch = master
[submodule "third-party/googletest"]
path = third-party/googletest
url = https://github.com/google/googletest.git
Expand Down
26 changes: 19 additions & 7 deletions .readthedocs.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,25 +3,37 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python
build:
os: ubuntu-24.04
tools:
python: "miniconda-latest"
commands:
# because we are overriding the build commands, we need to setup the environment ourselves
- cat docs/environment.yml
- conda env create --quiet --name $READTHEDOCS_VERSION --file docs/environment.yml
- cmake -B build -S .
- cmake --build build --target docs
- cat third-party/doxyconfig/environment.yml
- conda env create --quiet --name ${READTHEDOCS_VERSION} --file third-party/doxyconfig/environment.yml
- npm install "@fortawesome/fontawesome-free"
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp node_modules/@fortawesome/fontawesome-free/css/all.min.css ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- cp node_modules/@fortawesome/fontawesome-free/js/all.min.js ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp -r node_modules/@fortawesome/fontawesome-free/webfonts ${READTHEDOCS_OUTPUT}html/assets/fontawesome/
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/favicon.ico" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.ico
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/logo-128x128.png" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.png
- cp ./third-party/doxyconfig/Doxyfile ./docs/Doxyfile-doxyconfig
- cp ./third-party/doxyconfig/header.html ./docs/header-doxyconfig.html
- cat ./docs/Doxyfile >> ./docs/Doxyfile-doxyconfig
- cd docs && doxygen Doxyfile-doxyconfig

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: docs/environment.yml
environment: third-party/doxyconfig/environment.yml

submodules:
include: all
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()

# Add our custom CMake modules to the global path
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

#
# Project optional configuration
Expand All@@ -28,7 +28,7 @@ option(BUILD_TESTS "Build tests" ON)
# Documentation
#
if(BUILD_DOCS)
add_subdirectory(docs)
add_subdirectory(third-party/doxyconfig docs)
endif()

#
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,8 +23,7 @@ Ensure [git](https://git-scm.com/) is installed and run the following:
```bash
git clone https://github.com/lizardbyte/libdisplaydevice.git --recurse-submodules
cd libdisplaydevice
mkdir build
cd build
mkdir -p build
```

### Windows
Expand DownExpand Up@@ -54,18 +53,17 @@ pacman -S \

### Build

> [!WARNING]
> Ensure you are in the build directory created during the clone step earlier before continuing.
@warning{Ensure you are in the build directory created during the clone step earlier before continuing.}

```bash
cmake -G Ninja ..
ninja
cmake -G Ninja -B build -S .
ninja -C build
```

### Test

```bash
tests\test_libdisplaydevice
./build/tests/test_libdisplaydevice
```

## Support
Expand Down
41 changes: 0 additions & 41 deletions docs/CMakeLists.txt

This file was deleted.

80 changes: 11 additions & 69 deletions docs/Doxyfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,80 +21,22 @@
# replacement variables:
# doxygen -x_noenv [configFile]

# must be first
DOXYFILE_ENCODING = UTF-8

# files and directories to process
INPUT = ../README.md \
../src

ALIASES = ""
ALIASES += "examples=^^**Examples**^^@code{.cpp}"
ALIASES += "examples_end=@endcode^^"
ALIASES += "rst=^^\verbatim embed:rst:leading-asterisk^^"
ALIASES += "rst_end=\endverbatim"

CASE_SENSE_NAMES = YES
DISABLE_INDEX = NO
DOCBOOK_OUTPUT = doxydocbook
# project metadata
DOCSET_BUNDLE_ID = dev.lizardbyte.libdisplaydevice
DOCSET_PUBLISHER_ID = dev.lizardbyte.libdisplaydevice.documentation
DOCSET_PUBLISHER_NAME = LizardByte
DOT_GRAPH_MAX_NODES = 50
DOT_IMAGE_FORMAT = svg

# TODO: On Windows, Doxygen hangs when creating dot graphs if this is set to 0
DOT_NUM_THREADS = 1

EXTRACT_ALL = NO
FULL_SIDEBAR = NO
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = YES
GENERATE_XML = NO
HAVE_DOT = YES
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
HTML_COPY_CLIPBOARD = NO # required for Doxygen >= 1.10.0
HTML_EXTRA_FILES = ../third-party/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-interactive-toc.js
HTML_EXTRA_STYLESHEET = ../third-party/doxygen-awesome-css/doxygen-awesome.css
HTML_HEADER = doxygen/header.html
HTML_OUTPUT = html
# INCLUDE_PATH = ../
INTERACTIVE_SVG = YES
LATEX_OUTPUT = latex
MACRO_EXPANSION = YES
MAN_OUTPUT = man
NUM_PROC_THREADS = 1
PREDEFINED = DOXYGEN
PREDEFINED += __APPLE__
PREDEFINED += linux
PREDEFINED += __linux
PREDEFINED += __linux__
PREDEFINED += __MACH__
PREDEFINED += _WIN32
PROJECT_BRIEF = "C++ library to modify display devices."
PROJECT_ICON = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.ico
PROJECT_NUMBER = $(LDD_PROJECT_VERSION)
PROJECT_LOGO = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.png
PROJECT_NAME = libdisplaydevice
OUTPUT_DIRECTORY = $(LDD_DOXYGEN_BUILD_DIR)
RECURSIVE = YES
RTF_OUTPUT = rtf
SORT_BRIEF_DOCS = YES
STRIP_FROM_INC_PATH = ../
STRIP_FROM_PATH = ../
WARN_AS_ERROR = FAIL_ON_WARNINGS

# project specific settings
DOT_GRAPH_MAX_NODES = 50
# IMAGE_PATH = ../docs/images
INCLUDE_PATH =

# TODO: Enable this when we have complete documentation
WARN_IF_UNDOCUMENTED = NO

WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_IF_UNDOC_ENUM_VAL = YES
WARN_NO_PARAMDOC = YES
WARNINGS = YES

XML_OUTPUT = xml
# files and directories to process
USE_MDFILE_AS_MAINPAGE = ../README.md
INPUT = ../README.md \
../third-party/doxyconfig/docs/source_code.md \
../src
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Linux.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,11 +20,12 @@ sudo rm -rf /var/lib/apt/lists/*

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Windows.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -15,11 +15,12 @@ pacman --noconfirm -S \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-macOS.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,11 +10,12 @@ brew install \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
27 changes: 18 additions & 9 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,21 +63,20 @@ jobs:
sudo apt-get install -y \
build-essential \
cmake \
doxygen \
graphviz \
ninja-build \
nlohmann-json3-dev

- name: Setup Dependencies macOS
if: runner.os == 'macOS'
run: |
brew install \
boost \
cmake \
doxygen \
graphviz \
nlohmann-json \
ninja \
boost \
nlohmann-json
node \

- name: Setup Dependencies Windows
if: runner.os == 'Windows'
Expand All@@ -91,6 +90,7 @@ jobs:
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-graphviz
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-nodejs
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-boost
mingw-w64-ucrt-x86_64-nlohmann-json
Expand DownExpand Up@@ -177,18 +177,27 @@ jobs:
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
run: |
mkdir -p build
cd build

if [ "${{ runner.os }}" = "Linux" ]; then
# Doxygen from Ubuntu is too old, need Doxygen >= 1.10
DOCS=OFF
else
DOCS=ON
fi

cmake \
-DBUILD_DOCS=${DOCS} \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-B build \
-G Ninja \
..
ninja
-S .
ninja -C build

- name: Run tests
id: test
working-directory: build
working-directory: build/tests
run: |
./tests/test_libdisplaydevice --gtest_color=yes
./test_libdisplaydevice --gtest_color=yes

- name: Generate gcov report
# any except canceled or skipped
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,5 +41,8 @@
build/
cmake-*/

# doxyconfig
docs/*-doxyconfig*

# CTest
Testing/
8 changes: 4 additions & 4 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
[submodule "third-party/doxygen-awesome-css"]
path = third-party/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
branch = main
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
branch = master
[submodule "third-party/googletest"]
path = third-party/googletest
url = https://github.com/google/googletest.git
Expand Down
26 changes: 19 additions & 7 deletions .readthedocs.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,25 +3,37 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python
build:
os: ubuntu-24.04
tools:
python: "miniconda-latest"
commands:
# because we are overriding the build commands, we need to setup the environment ourselves
- cat docs/environment.yml
- conda env create --quiet --name $READTHEDOCS_VERSION --file docs/environment.yml
- cmake -B build -S .
- cmake --build build --target docs
- cat third-party/doxyconfig/environment.yml
- conda env create --quiet --name ${READTHEDOCS_VERSION} --file third-party/doxyconfig/environment.yml
- npm install "@fortawesome/fontawesome-free"
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp node_modules/@fortawesome/fontawesome-free/css/all.min.css ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- cp node_modules/@fortawesome/fontawesome-free/js/all.min.js ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp -r node_modules/@fortawesome/fontawesome-free/webfonts ${READTHEDOCS_OUTPUT}html/assets/fontawesome/
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/favicon.ico" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.ico
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/logo-128x128.png" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.png
- cp ./third-party/doxyconfig/Doxyfile ./docs/Doxyfile-doxyconfig
- cp ./third-party/doxyconfig/header.html ./docs/header-doxyconfig.html
- cat ./docs/Doxyfile >> ./docs/Doxyfile-doxyconfig
- cd docs && doxygen Doxyfile-doxyconfig

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: docs/environment.yml
environment: third-party/doxyconfig/environment.yml

submodules:
include: all
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()

# Add our custom CMake modules to the global path
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

#
# Project optional configuration
Expand All@@ -28,7 +28,7 @@ option(BUILD_TESTS "Build tests" ON)
# Documentation
#
if(BUILD_DOCS)
add_subdirectory(docs)
add_subdirectory(third-party/doxyconfig docs)
endif()

#
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,8 +23,7 @@ Ensure [git](https://git-scm.com/) is installed and run the following:
```bash
git clone https://github.com/lizardbyte/libdisplaydevice.git --recurse-submodules
cd libdisplaydevice
mkdir build
cd build
mkdir -p build
```

### Windows
Expand DownExpand Up@@ -54,18 +53,17 @@ pacman -S \

### Build

> [!WARNING]
> Ensure you are in the build directory created during the clone step earlier before continuing.
@warning{Ensure you are in the build directory created during the clone step earlier before continuing.}

```bash
cmake -G Ninja ..
ninja
cmake -G Ninja -B build -S .
ninja -C build
```

### Test

```bash
tests\test_libdisplaydevice
./build/tests/test_libdisplaydevice
```

## Support
Expand Down
41 changes: 0 additions & 41 deletions docs/CMakeLists.txt

This file was deleted.

80 changes: 11 additions & 69 deletions docs/Doxyfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,80 +21,22 @@
# replacement variables:
# doxygen -x_noenv [configFile]

# must be first
DOXYFILE_ENCODING = UTF-8

# files and directories to process
INPUT = ../README.md \
../src

ALIASES = ""
ALIASES += "examples=^^**Examples**^^@code{.cpp}"
ALIASES += "examples_end=@endcode^^"
ALIASES += "rst=^^\verbatim embed:rst:leading-asterisk^^"
ALIASES += "rst_end=\endverbatim"

CASE_SENSE_NAMES = YES
DISABLE_INDEX = NO
DOCBOOK_OUTPUT = doxydocbook
# project metadata
DOCSET_BUNDLE_ID = dev.lizardbyte.libdisplaydevice
DOCSET_PUBLISHER_ID = dev.lizardbyte.libdisplaydevice.documentation
DOCSET_PUBLISHER_NAME = LizardByte
DOT_GRAPH_MAX_NODES = 50
DOT_IMAGE_FORMAT = svg

# TODO: On Windows, Doxygen hangs when creating dot graphs if this is set to 0
DOT_NUM_THREADS = 1

EXTRACT_ALL = NO
FULL_SIDEBAR = NO
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = YES
GENERATE_XML = NO
HAVE_DOT = YES
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
HTML_COPY_CLIPBOARD = NO # required for Doxygen >= 1.10.0
HTML_EXTRA_FILES = ../third-party/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-interactive-toc.js
HTML_EXTRA_STYLESHEET = ../third-party/doxygen-awesome-css/doxygen-awesome.css
HTML_HEADER = doxygen/header.html
HTML_OUTPUT = html
# INCLUDE_PATH = ../
INTERACTIVE_SVG = YES
LATEX_OUTPUT = latex
MACRO_EXPANSION = YES
MAN_OUTPUT = man
NUM_PROC_THREADS = 1
PREDEFINED = DOXYGEN
PREDEFINED += __APPLE__
PREDEFINED += linux
PREDEFINED += __linux
PREDEFINED += __linux__
PREDEFINED += __MACH__
PREDEFINED += _WIN32
PROJECT_BRIEF = "C++ library to modify display devices."
PROJECT_ICON = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.ico
PROJECT_NUMBER = $(LDD_PROJECT_VERSION)
PROJECT_LOGO = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.png
PROJECT_NAME = libdisplaydevice
OUTPUT_DIRECTORY = $(LDD_DOXYGEN_BUILD_DIR)
RECURSIVE = YES
RTF_OUTPUT = rtf
SORT_BRIEF_DOCS = YES
STRIP_FROM_INC_PATH = ../
STRIP_FROM_PATH = ../
WARN_AS_ERROR = FAIL_ON_WARNINGS

# project specific settings
DOT_GRAPH_MAX_NODES = 50
# IMAGE_PATH = ../docs/images
INCLUDE_PATH =

# TODO: Enable this when we have complete documentation
WARN_IF_UNDOCUMENTED = NO

WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_IF_UNDOC_ENUM_VAL = YES
WARN_NO_PARAMDOC = YES
WARNINGS = YES

XML_OUTPUT = xml
# files and directories to process
USE_MDFILE_AS_MAINPAGE = ../README.md
INPUT = ../README.md \
../third-party/doxyconfig/docs/source_code.md \
../src
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
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
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Linux.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,11 +20,12 @@ sudo rm -rf /var/lib/apt/lists/*

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-Windows.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -15,11 +15,12 @@ pacman --noconfirm -S \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
7 changes: 4 additions & 3 deletions .codeql-prebuild-cpp-macOS.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,11 +10,12 @@ brew install \

# build
mkdir -p build
cd build || exit 1
cmake \
-DBUILD_DOCS=OFF \
-G Ninja ..
ninja
-B build \
-G Ninja \
-S .
ninja -C build

# skip autobuild
echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
27 changes: 18 additions & 9 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,21 +63,20 @@ jobs:
sudo apt-get install -y \
build-essential \
cmake \
doxygen \
graphviz \
ninja-build \
nlohmann-json3-dev

- name: Setup Dependencies macOS
if: runner.os == 'macOS'
run: |
brew install \
boost \
cmake \
doxygen \
graphviz \
nlohmann-json \
ninja \
boost \
nlohmann-json
node \

- name: Setup Dependencies Windows
if: runner.os == 'Windows'
Expand All@@ -91,6 +90,7 @@ jobs:
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-graphviz
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-nodejs
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-boost
mingw-w64-ucrt-x86_64-nlohmann-json
Expand DownExpand Up@@ -177,18 +177,27 @@ jobs:
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
run: |
mkdir -p build
cd build

if [ "${{ runner.os }}" = "Linux" ]; then
# Doxygen from Ubuntu is too old, need Doxygen >= 1.10
DOCS=OFF
else
DOCS=ON
fi

cmake \
-DBUILD_DOCS=${DOCS} \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-B build \
-G Ninja \
..
ninja
-S .
ninja -C build

- name: Run tests
id: test
working-directory: build
working-directory: build/tests
run: |
./tests/test_libdisplaydevice --gtest_color=yes
./test_libdisplaydevice --gtest_color=yes

- name: Generate gcov report
# any except canceled or skipped
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,5 +41,8 @@
build/
cmake-*/

# doxyconfig
docs/*-doxyconfig*

# CTest
Testing/
8 changes: 4 additions & 4 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
[submodule "third-party/doxygen-awesome-css"]
path = third-party/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
branch = main
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
branch = master
[submodule "third-party/googletest"]
path = third-party/googletest
url = https://github.com/google/googletest.git
Expand Down
26 changes: 19 additions & 7 deletions .readthedocs.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,25 +3,37 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python
build:
os: ubuntu-24.04
tools:
python: "miniconda-latest"
commands:
# because we are overriding the build commands, we need to setup the environment ourselves
- cat docs/environment.yml
- conda env create --quiet --name $READTHEDOCS_VERSION --file docs/environment.yml
- cmake -B build -S .
- cmake --build build --target docs
- cat third-party/doxyconfig/environment.yml
- conda env create --quiet --name ${READTHEDOCS_VERSION} --file third-party/doxyconfig/environment.yml
- npm install "@fortawesome/fontawesome-free"
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- mkdir -p ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp node_modules/@fortawesome/fontawesome-free/css/all.min.css ${READTHEDOCS_OUTPUT}html/assets/fontawesome/css
- cp node_modules/@fortawesome/fontawesome-free/js/all.min.js ${READTHEDOCS_OUTPUT}html/assets/fontawesome/js
- cp -r node_modules/@fortawesome/fontawesome-free/webfonts ${READTHEDOCS_OUTPUT}html/assets/fontawesome/
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/favicon.ico" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.ico
- |
wget "https://raw.githubusercontent.com/LizardByte/.github/master/branding/logos/logo-128x128.png" \
-O ${READTHEDOCS_OUTPUT}lizardbyte.png
- cp ./third-party/doxyconfig/Doxyfile ./docs/Doxyfile-doxyconfig
- cp ./third-party/doxyconfig/header.html ./docs/header-doxyconfig.html
- cat ./docs/Doxyfile >> ./docs/Doxyfile-doxyconfig
- cd docs && doxygen Doxyfile-doxyconfig

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: docs/environment.yml
environment: third-party/doxyconfig/environment.yml

submodules:
include: all
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()

# Add our custom CMake modules to the global path
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

#
# Project optional configuration
Expand All@@ -28,7 +28,7 @@ option(BUILD_TESTS "Build tests" ON)
# Documentation
#
if(BUILD_DOCS)
add_subdirectory(docs)
add_subdirectory(third-party/doxyconfig docs)
endif()

#
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,8 +23,7 @@ Ensure [git](https://git-scm.com/) is installed and run the following:
```bash
git clone https://github.com/lizardbyte/libdisplaydevice.git --recurse-submodules
cd libdisplaydevice
mkdir build
cd build
mkdir -p build
```

### Windows
Expand DownExpand Up@@ -54,18 +53,17 @@ pacman -S \

### Build

> [!WARNING]
> Ensure you are in the build directory created during the clone step earlier before continuing.
@warning{Ensure you are in the build directory created during the clone step earlier before continuing.}

```bash
cmake -G Ninja ..
ninja
cmake -G Ninja -B build -S .
ninja -C build
```

### Test

```bash
tests\test_libdisplaydevice
./build/tests/test_libdisplaydevice
```

## Support
Expand Down
41 changes: 0 additions & 41 deletions docs/CMakeLists.txt

This file was deleted.

80 changes: 11 additions & 69 deletions docs/Doxyfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,80 +21,22 @@
# replacement variables:
# doxygen -x_noenv [configFile]

# must be first
DOXYFILE_ENCODING = UTF-8

# files and directories to process
INPUT = ../README.md \
../src

ALIASES = ""
ALIASES += "examples=^^**Examples**^^@code{.cpp}"
ALIASES += "examples_end=@endcode^^"
ALIASES += "rst=^^\verbatim embed:rst:leading-asterisk^^"
ALIASES += "rst_end=\endverbatim"

CASE_SENSE_NAMES = YES
DISABLE_INDEX = NO
DOCBOOK_OUTPUT = doxydocbook
# project metadata
DOCSET_BUNDLE_ID = dev.lizardbyte.libdisplaydevice
DOCSET_PUBLISHER_ID = dev.lizardbyte.libdisplaydevice.documentation
DOCSET_PUBLISHER_NAME = LizardByte
DOT_GRAPH_MAX_NODES = 50
DOT_IMAGE_FORMAT = svg

# TODO: On Windows, Doxygen hangs when creating dot graphs if this is set to 0
DOT_NUM_THREADS = 1

EXTRACT_ALL = NO
FULL_SIDEBAR = NO
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_TREEVIEW = YES
GENERATE_XML = NO
HAVE_DOT = YES
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
HTML_COPY_CLIPBOARD = NO # required for Doxygen >= 1.10.0
HTML_EXTRA_FILES = ../third-party/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
HTML_EXTRA_FILES += ../third-party/doxygen-awesome-css/doxygen-awesome-interactive-toc.js
HTML_EXTRA_STYLESHEET = ../third-party/doxygen-awesome-css/doxygen-awesome.css
HTML_HEADER = doxygen/header.html
HTML_OUTPUT = html
# INCLUDE_PATH = ../
INTERACTIVE_SVG = YES
LATEX_OUTPUT = latex
MACRO_EXPANSION = YES
MAN_OUTPUT = man
NUM_PROC_THREADS = 1
PREDEFINED = DOXYGEN
PREDEFINED += __APPLE__
PREDEFINED += linux
PREDEFINED += __linux
PREDEFINED += __linux__
PREDEFINED += __MACH__
PREDEFINED += _WIN32
PROJECT_BRIEF = "C++ library to modify display devices."
PROJECT_ICON = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.ico
PROJECT_NUMBER = $(LDD_PROJECT_VERSION)
PROJECT_LOGO = $(LDD_DOXYGEN_BUILD_DIR)/lizardbyte.png
PROJECT_NAME = libdisplaydevice
OUTPUT_DIRECTORY = $(LDD_DOXYGEN_BUILD_DIR)
RECURSIVE = YES
RTF_OUTPUT = rtf
SORT_BRIEF_DOCS = YES
STRIP_FROM_INC_PATH = ../
STRIP_FROM_PATH = ../
WARN_AS_ERROR = FAIL_ON_WARNINGS

# project specific settings
DOT_GRAPH_MAX_NODES = 50
# IMAGE_PATH = ../docs/images
INCLUDE_PATH =

# TODO: Enable this when we have complete documentation
WARN_IF_UNDOCUMENTED = NO

WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_IF_UNDOC_ENUM_VAL = YES
WARN_NO_PARAMDOC = YES
WARNINGS = YES

XML_OUTPUT = xml
# files and directories to process
USE_MDFILE_AS_MAINPAGE = ../README.md
INPUT = ../README.md \
../third-party/doxyconfig/docs/source_code.md \
../src
Loading