Skip to content

Commit 779b02a

Browse files
authored
Merge docs into master for proper documentation (PR #4)
2 parents f5ba67d + 4fc081a commit 779b02a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+2615
-385
lines changed

.gitignore

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,16 @@ dkms.conf
6767
Makefile
6868
main-*
6969
layout.*
70+
!layout.rst
7071
/_skbuild
7172

7273
# CMake
73-
*.cmake
7474
CMakeCache.txt
7575
/CMakeTmp
7676
*CMakeTmp*
7777
*CMakeFiles*
7878
*CMakeCache.txt
79+
*cmake_install.cmake
7980
install_manifest.txt
8081

8182
# Python packages
@@ -84,8 +85,17 @@ install_manifest.txt
8485
/dist
8586
*.pyc
8687
MANIFEST
88+
/venv
8789

8890
# Executables
8991
/record
9092
/main
9193
/ambilight
94+
95+
# Documentation
96+
/docs/_build
97+
/docs/html
98+
/docs/_doctrees
99+
/docs/doxygen/xml
100+
/html
101+
/latex

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Author: RedFantom
22
# License: GNU GPLv3
3-
# Copyright (c) 2018 RedFantom
3+
# Copyright (c) 2018-2019 RedFantom
44
cmake_minimum_required(VERSION 3.9)
55
set(CMAKE_C_FLAGS "-std=c99")
66
include(libmk/CMakeLists.txt)
7-
if (SKBUILD) # The masterkeys package can only be built with scikit-build
7+
if(SKBUILD) # The masterkeys package can only be built with scikit-build
88
include(masterkeys/CMakeLists.txt)
99
else()
1010
include(examples/CMakeLists.txt)

FindLibUSB.txt renamed to FindLibUSB.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Author: RedFantom
22
# License: GNU GPLv3
3-
# Copyright (c) 2018 RedFantom
3+
# Copyright (c) 2018-2019 RedFantom
44

55
# LibUSB include directory on Linux
66
set(LIBUSB_INCLUDE_DIR /usr/include/libusb-1.0)

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
[![Build Status](https://travis-ci.com/RedFantom/masterkeys-linux.svg?token=UBcv5ZyxSrELyQhSpadq&branch=master)](https://travis-ci.com/RedFantom/masterkeys-linux)
33
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
44
[![PyPI version](https://badge.fury.io/py/masterkeys.svg)](https://pypi.org/project/masterkeys/)
5+
[![Documentation](https://readthedocs.org/projects/masterkeys-linux/badge/?version=latest)](https://masterkeys-linux.readthedocs.io/en/latest)
56

67
Cooler Master provides an SDK for its MasterKeys series of keyboards
78
for use under Windows, but not for Linux. The SDK communicates with an

docs/CMakeLists.txt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Author: RedFantom
2+
# License: GNU GPLv3
3+
# Copyright (c) 2018-2019 RedFantom
4+
# Source: https://eb2.co/blog/2012/03
5+
cmake_minimum_required(VERSION 3.9)
6+
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
7+
find_package(Sphinx REQUIRED)
8+
if(NOT DEFINED SPHINX_THEME)
9+
set(SPHINX_THEME readthedocs)
10+
endif()
11+
if(NOT DEFINED SPHINX_THEME_DIR)
12+
set(SPHINX_THEME_DIR)
13+
endif()
14+
15+
set(BINARY_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build")
16+
set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees")
17+
set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build/html")
18+
set(SPHINX_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
19+
20+
configure_file(
21+
"${CMAKE_CURRENT_SOURCE_DIR}/conf.py"
22+
"${BINARY_BUILD_DIR}/conf.py"
23+
@ONLY)
24+
add_custom_target(libmk_docs ALL
25+
${SPHINX_EXECUTABLE}
26+
-q -b html
27+
-c "${BINARY_BUILD_DIR}"
28+
-d "${SPHINX_CACHE_DIR}"
29+
"${SPHINX_SOURCE_DIR}"
30+
"${SPHINX_HTML_DIR}"
31+
DEPENDS doxygen
32+
COMMENT "Building HTML documentation")
33+
34+
add_custom_target(doxygen
35+
COMMAND doxygen doxygen.conf
36+
COMMENT "Building Doxygen XML files")

docs/FindSphinx.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Author: RedFantom
2+
# License: GNU GPLv3
3+
# Copyright (c) 2018-2019 RedFantom
4+
# Source: https://eb2.co/blog/2012/03
5+
find_program(SPHINX_EXECUTABLE NAMES sphinx-build
6+
HINTS $ENV{SPHINX_DIR} PATH_SUFFIXES BIN
7+
DOC "Sphinx Documentation Generator")
8+
include(FindPackageHandleStandardArgs)
9+
find_package_handle_standard_args(Sphinx DEFAULT_MSG SPHINX_EXECUTABLE)
10+
mark_as_advanced(SPHINX_EXECUTABLE)

docs/conf.py

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
#
4+
# libmk documentation build configuration file, created by
5+
# sphinx-quickstart on Wed Feb 27 11:02:22 2019.
6+
#
7+
8+
import subprocess
9+
import os
10+
import sys
11+
12+
rtd_build = os.environ.get('READTHEDOCS', None) == 'True'
13+
if rtd_build:
14+
subprocess.call("doxygen doxygen.conf", shell=True)
15+
16+
17+
os.chdir(".." if rtd_build else "../..")
18+
print("Building documentation from:", os.getcwd())
19+
sys.path.append(os.getcwd())
20+
21+
22+
# -- General configuration ------------------------------------------------
23+
24+
# If your documentation needs a minimal Sphinx version, state it here.
25+
#
26+
# needs_sphinx = "1.0"
27+
28+
# Add any Sphinx extension module names here, as strings. They can be
29+
# extensions coming with Sphinx (named "sphinx.ext.*") or your custom
30+
# ones.
31+
extensions = [
32+
"sphinx.ext.autodoc",
33+
"sphinx.ext.autosummary",
34+
"sphinx.ext.viewcode",
35+
"breathe"]
36+
37+
# Add any paths that contain templates here, relative to this directory.
38+
templates_path = ["_templates"]
39+
40+
# The suffix(es) of source filenames.
41+
# You can specify multiple suffix as a list of string:
42+
#
43+
# source_suffix = [".rst", ".md"]
44+
source_suffix = ".rst"
45+
46+
# The master toctree document.
47+
master_doc = "index"
48+
49+
# General information about the project.
50+
project = "libmk"
51+
copyright = "2019, RedFantom"
52+
author = "RedFantom"
53+
54+
# The version info for the project you"re documenting, acts as replacement for
55+
# |version| and |release|, also used in various other places throughout the
56+
# built documents.
57+
#
58+
# The short X.Y version.
59+
version = "0.1.1"
60+
# The full version, including alpha/beta/rc tags.
61+
release = "0.1.1"
62+
63+
# The language for content autogenerated by Sphinx. Refer to documentation
64+
# for a list of supported languages.
65+
#
66+
# This is also used if you do content translation via gettext catalogs.
67+
# Usually you set "language" from the command line for these cases.
68+
language = None
69+
70+
# List of patterns, relative to source directory, that match files and
71+
# directories to ignore when looking for source files.
72+
# This patterns also effect to html_static_path and html_extra_path
73+
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
74+
75+
# The name of the Pygments (syntax highlighting) style to use.
76+
pygments_style = "sphinx"
77+
78+
# If true, `todo` and `todoList` produce output, else they produce nothing.
79+
todo_include_todos = True
80+
81+
# -- Options for HTML output ----------------------------------------------
82+
83+
# The theme to use for HTML and HTML Help pages. See the documentation for
84+
# a list of builtin themes.
85+
#
86+
html_theme = "sphinx_rtd_theme"
87+
html_theme_path = [""]
88+
89+
# Theme options are theme-specific and customize the look and feel of a theme
90+
# further. For a list of options available for each theme, see the
91+
# documentation.
92+
#
93+
# html_theme_options = {}
94+
95+
# Add any paths that contain custom static files (such as style sheets) here,
96+
# relative to this directory. They are copied after the builtin static files,
97+
# so a file named "default.css" will overwrite the builtin "default.css".
98+
html_static_path = ["_static"]
99+
100+
# Custom sidebar templates, must be a dictionary that maps document names
101+
# to template names.
102+
#
103+
# This is required for the alabaster theme
104+
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
105+
html_sidebars = {
106+
"**": [
107+
"relations.html", # needs "show_related": True theme option to display
108+
"searchbox.html",
109+
]
110+
}
111+
112+
# -- Options for manual page output ---------------------------------------
113+
114+
# One entry per manual page. List of tuples
115+
# (source start file, name, description, authors, manual section).
116+
man_pages = [
117+
(master_doc, "libmk", "libmk Documentation",
118+
[author], 1)
119+
]
120+
121+
# -- Options for Breathe Extension ----------------------------------------
122+
breathe_projects = {
123+
"libmk": "../doxygen/xml" if not rtd_build else "doxygen/xml"
124+
}
125+
breathe_default_project = "libmk"

0 commit comments

Comments
 (0)