Skip to content

Commit 5619939

Browse files
committed
Initial commit
0 parents  commit 5619939

File tree

1,949 files changed

+603625
-0
lines changed

Some content is hidden

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

1,949 files changed

+603625
-0
lines changed

.github/workflows/main.yml

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Zola on GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build:
10+
name: Publish site
11+
runs-on: ubuntu-latest
12+
if: github.ref == 'refs/heads/main'
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
- name: Build and Deploy
17+
uses: shalzz/[email protected]
18+
env:
19+
BUILD_ONLY: true
20+
- name: Move Documentation
21+
run: |
22+
sudo rm -R public/docs/developer/libical
23+
sudo mv public/apidocs public/docs/developer/libical
24+
sudo rm -R public/docs/developer/libical-glib
25+
sudo mv public/libical-glib public/docs/developer/libical-glib
26+
- name: Upload Artifact
27+
uses: actions/upload-pages-artifact@v4
28+
with:
29+
# upload entire directory
30+
path: 'public'
31+
32+
deploy:
33+
permissions:
34+
pages: write
35+
id-token: write
36+
runs-on: ubuntu-latest
37+
needs: build
38+
environment:
39+
name: github-pages
40+
url: ${{steps.deployment.outputs.page_url}}
41+
steps:
42+
- name: Deploy artifact
43+
id: deployment
44+
uses: actions/deploy-pages@v4

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "themes/adidoks"]
2+
path = themes/adidoks
3+
url = https://github.com/aaranxu/adidoks.git

config.toml

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# The URL the site will be built for
2+
base_url = "https://libical.github.io"
3+
title = "libical"
4+
description = "Open Source implementation of the iCalendar protocols and protocol data units."
5+
6+
# Whether to automatically compile all Sass files in the sass directory
7+
compile_sass = true
8+
9+
# Whether to build a search index to be used later on by a JavaScript library
10+
build_search_index = true
11+
12+
theme = "adidoks"
13+
14+
[markdown]
15+
# Whether to do syntax highlighting
16+
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
17+
highlight_code = true
18+
19+
[extra]
20+
# Put all your custom variables here
21+
edit_page = false
22+
docs_repo = "https://github.com/libical/io.github.libical"
23+
repo_branch = "main"
24+
25+
[extra.footer]
26+
info = 'Powered by <a href="https://www.getzola.org/">Zola</a>, and <a href="https://github.com/aaranxu/adidoks">AdiDoks</a>'
27+
28+
[[extra.menu.social]]
29+
name = "GitHub"
30+
pre = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>'
31+
url = "https://github.com/libical/libical"
32+
post = "v0.1.0"
33+
weight = 20

content/_index.md

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
+++
2+
title = "The iCalendar library"
3+
4+
5+
# The homepage contents
6+
[extra]
7+
lead = '<b>libical</b> is an Open Source implementation of the iCalendar protocols and protocol data units.'
8+
url = "/docs/getting-started/introduction/"
9+
url_button = "Get started"
10+
repo_version = "v3.0.18"
11+
repo_license = "MPL v2.0 or LGPL v2.1 —"
12+
repo_url = "https://github.com/aaranxu/adidoks"
13+
14+
# Menu items
15+
[[extra.menu.main]]
16+
name = "Docs"
17+
section = "docs"
18+
url = "/docs/getting-started/introduction/"
19+
weight = 10
20+
21+
[[extra.list]]
22+
title = "Based on Standards"
23+
content = 'Implements RFC2445, RFC2446 and some of RFC2447 the CalDav scheduling extensions in RFC6638 and RFC7986; plus the iCalendar iMIP protocol in RFC6047.'
24+
25+
[[extra.list]]
26+
title = "Used by many"
27+
content = 'libical is at the base of the <a href="https://www.cyrusimap.org">Cyrus Server</a>, <a href="https://kontact.kde.org">KDE&apos;s KContact Suite</a>, <a href="https://gitlab.gnome.org/GNOME/evolution-data-server">GNOME&apos;s Evolution Data Server</a>, <a href="https://syncevolution.org">syncEvolution</a> and <a href="https://flexibits.com/fantastical">Fantastical</a>.'
28+
29+
+++

content/docs/_index.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
+++
2+
title = "Docs"
3+
description = "The documents of the AdiDoks theme."
4+
sort_by = "weight"
5+
weight = 1
6+
template = "docs/section.html"
7+
+++

content/docs/contributing/_index.md

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
+++
2+
title = "Contributing"
3+
description = "Find out how to contribute."
4+
template = "docs/section.html"
5+
sort_by = "weight"
6+
weight = 4
7+
draft = false
8+
+++
+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
+++
2+
title = "Code Quality"
3+
description = "Ensuring good overall code quality."
4+
date = 2021-05-01T18:20:00+00:00
5+
updated = 2021-05-01T18:20:00+00:00
6+
draft = false
7+
weight = 420
8+
sort_by = "weight"
9+
template = "docs/page.html"
10+
11+
[extra]
12+
lead = "Ensuring good overall code quality."
13+
toc = true
14+
top = false
15+
+++
16+
### Introduction ###
17+
18+
> I insist on code quality — Allen
19+
20+
This means:
21+
22+
1. No build failures on supported platforms (obviously including our [Continuous Integration ("CI") systems](https://travis-ci.org/libical/libical))
23+
2. No compiler warnings allowed using "strict" (strict being a relative term) compiler warning options
24+
3. No [splint](http://www.splint.org) issues using -weak checking
25+
4. No serious [Coverity Scan](http://scan.coverity.com) issues
26+
5. No serious [scan-build](http://clang-analyzer.llvm.org/scan-build.html) issues
27+
6. No [Krazy](https://github.com/Krazy-collection/krazy) issues
28+
7. No failed regression tests
29+
8. Coding Style is very strictly enforced
30+
9. (A goal) API documentation must be complete
31+
10. Each source file must have a proper license and copyright header (Krazy tests for this)
32+
11. Other stuff as I think of it
33+
34+
We want to be as portable as possible. We welcome ports to platforms we haven't encountered previously.
35+
36+
#### Compiler Warnings ####
37+
38+
See the top-level CMakeLists.txt for the options we use for each compiler. Expect those options to get stricter over time. Feel free to suggest compiler options that increase our code quality.
39+
40+
#### Continuous Integration ####
41+
42+
We use [Travis](https://travis-ci.org/libical/libical) to perform CI for libical on Linux and OSX.
43+
For Windows we use the [Appveyor](https://ci.appveyor.com/project/winterz/libical) CI
44+
45+
#### Lint Checking ####
46+
47+
We use [Splint](https://www.splint.org) for lint checking our source code. I'd love to have lint-checking as part of the CI reporting, but until then we run it by hand and fix the issues as part of the pre-release checklist.
48+
49+
#### Static Analysis ####
50+
51+
We're grateful to the good folks at [Coverity](https://coverity.com) for giving the FOSS world free access to their wonderful static analysis tool, Coverity Scan. As a goal, I'd like to get the number of Coverity Scan issues down to zero. It might take a few major releases to get there.
52+
53+
[scan-build](http://clang-analyzer.llvm.org/scan-build.html) is also good for static analysis checking but I've seen quite some false positives. Good for a free tool, however.
54+
55+
By the way, [cppcheck](http://cppcheck.sourceforge.net) is another tool I like for static code analysis. Occasionally we should run cppcheck as well.
56+
57+
#### Krazy Analysis ####
58+
59+
[Krazy](https://github.com/Krazy-collection/krazy) is another static analysis tool, but it checks mostly for non-C specific stuff, like it ensures Copyrights and License headers, looks for spelling mistakes and also coding style problems. We must be 100% "Krazy clean".
60+
61+
#### Coding Style ####
62+
63+
[Coding Style](@/docs/contributing/coding-style.md) is enforced.
64+
65+
#### API Documentation ####
66+
67+
We use [Doxygen](http://www.doxygen.org) to generate our [API Documentation](@/docs/developer/libical.md) and put the result on our [GitHub provided webspace](http://libical.github.io). At this time our API Documentation is horrible and needs a lot of attention (see [libical#175](https://github.com/libical/libical/issues/175)), so one of our long term goals is to get the API Documentation into shape with full coverage.
68+
+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
+++
2+
title = "Coding Style Rules"
3+
description = "Rules for the style used the codebase."
4+
date = 2021-05-01T18:20:00+00:00
5+
updated = 2021-05-01T18:20:00+00:00
6+
draft = false
7+
weight = 420
8+
sort_by = "weight"
9+
template = "docs/page.html"
10+
11+
[extra]
12+
lead = "Follow these Coding Style Rules. Strictly Enforced. The relevant GNU indent options are in parens."
13+
toc = true
14+
top = false
15+
+++
16+
17+
* Use spaces for indenting. No tabs (-nut)
18+
* Indent level is 4 spaces (-i4)
19+
* Maximum line length is 100 characters (-l100 -lc100)
20+
* Do not put a space after every ’(’ and before every ’)’ (-nprs)
21+
* Do not put space after the function in function calls (-npcs)
22+
* Do not put a space after cast operators (-ncs)
23+
* Do not put a space between '#' and preprocessor directives (-nlps)
24+
* Put braces on line with if, etc. (-br)
25+
* Cuddle else and preceding ‘}’ (-ce)
26+
* Put the type of a procedure on the same line as its name (-npsl)
27+
* Put braces on line following function definition line (-blf)
28+
* Put braces on the line after struct declaration lines (-bls)
29+
* Do not force newlines after commas in declarations (-nbc)
30+
* Zero width indentation for parameters (-nip)
31+
* Do not indent parameter types (-ip0)
32+
* Do not indent case labels (-cli0)
33+
* Line up continued lines at parentheses (-lp)
34+
* Do not prefer to break long lines before boolean operators (-nbbo)
35+
* Force blank lines after procedure bodies (-bap)
36+
* Force blank lines after the declarations (-bad)
37+
* Swallow optional blank lines (-sob)
38+
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
+++
2+
title = "Get Involved"
3+
description = "Follow the project and contribute."
4+
date = 2021-05-01T18:10:00+00:00
5+
updated = 2021-05-01T18:10:00+00:00
6+
draft = false
7+
weight = 410
8+
sort_by = "weight"
9+
template = "docs/page.html"
10+
11+
[extra]
12+
lead = "Follow the project and contribute."
13+
toc = true
14+
top = false
15+
+++
16+
17+
Subscribe to our mailing lists:
18+
19+
* For developer discussions [libical-devel](http://lists.infradead.org/mailman/listinfo/libical-devel)
20+
21+
* For general discussions about libical and related projects [libical-interest](http://lists.infradead.org/mailman/listinfo/libical-interest)
22+
23+
Report bugs to [our issue tracker in GitHub](https://github.com/libical/libical/issues)

content/docs/developer/_index.md

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
+++
2+
title = "References"
3+
description = "Developer documentation."
4+
template = "docs/section.html"
5+
sort_by = "weight"
6+
weight = 7
7+
draft = false
8+
+++
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
+++
2+
title = "libical-glib"
3+
description = "Developer documentation."
4+
date = 2021-05-01T19:30:00+00:00
5+
updated = 2021-05-01T19:30:00+00:00
6+
draft = false
7+
weight = 40
8+
sort_by = "weight"
9+
template = "docs/page.html"
10+
+++
11+

content/docs/developer/libical.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
+++
2+
title = "libical"
3+
description = "Developer documentation."
4+
date = 2021-05-01T19:30:00+00:00
5+
updated = 2021-05-01T19:30:00+00:00
6+
draft = false
7+
weight = 30
8+
sort_by = "weight"
9+
template = "docs/page.html"
10+
+++
11+
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
+++
2+
title = "Getting Started"
3+
description = "Quick start and guides for installing the AdiDoks theme on your preferred operating system."
4+
template = "docs/section.html"
5+
sort_by = "weight"
6+
weight = 1
7+
draft = false
8+
+++
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
+++
2+
title = "Build for Different Platforms"
3+
description = "Help to build libical for various platforms and compilers."
4+
date = 2021-05-01T08:20:00+00:00
5+
updated = 2021-05-01T08:20:00+00:00
6+
draft = false
7+
weight = 31
8+
sort_by = "weight"
9+
template = "docs/page.html"
10+
11+
[extra]
12+
lead = "Help to build libical for various platforms and compilers."
13+
toc = true
14+
top = false
15+
+++
16+
17+
## Cross-compiling
18+
19+
When cross-compiling, executables built for the host architecture cannot be run on the build architecture. CMake doesn't provide something like `CC_FOR_BUILD` from autotools, and recommended way to handle this case is the export the required binary from the native build for use by the cross-compiled build.
20+
21+
See the "Searching and finding external software" section of [CMake cross-compiling guide](https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/CrossCompiling#using-executables-in-the-build-created-during-the-build)
22+
23+
Libical can cross-compile ok if you disable building libical-glib by passing `-DICAL_GLIB=False` to CMake.
24+
25+
If you want/need libical-glib for your cross-compile then:
26+
27+
- build and install a native build of libical into (for example) `/usr/local`
28+
- then pass `-DIMPORT_ICAL_GLIB_SRC_GENERATOR=/usr/local/lib64/cmake/LibIcal/IcalGlibSrcGenerator.cmake` to CMake for the cross-compile build.
29+
30+
Read the cmake-toolchains documentation to help you write your own Toolchain file if needed.
31+
32+
Look in the libical/cmake folder for some Toolchain files that may or may not work out-of-the-box.
33+
34+
## iOS arm7, arm64, x386
35+
36+
Add the following inside CMakeList.txt:
37+
38+
```cmake
39+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch armv7")
40+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch armv7")
41+
```
42+
43+
Then run `cmake ..`
44+
45+
Modify the following line from the build/CMakeCache.txt that's generated by cmake command:
46+
47+
```bash
48+
// The product will be built against the headers and libraries located
49+
// inside the indicated SDK.
50+
CMAKE_OSX_SYSROOT:PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
51+
```
52+
53+
(Change it into iPhoneOS.sdk or iPhoneOS8.4.sdk)
54+
55+
run `make`, and `make install` as noted in the installation from libical.
56+
57+
use `lipo -info` to check the generated lib .a files, it will say it is armv7.
58+
59+
Use the same method to generate .a for arm64 and also i386 (for different simulators, etc), and use `lipo -create` to combine all of the into one FAT.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
+++
2+
title = "Introduction"
3+
description = "Libical is an Open Source implementation of the iCalendar protocols and protocol data units."
4+
date = 2021-05-01T08:00:00+00:00
5+
updated = 2021-05-01T08:00:00+00:00
6+
draft = false
7+
weight = 10
8+
sort_by = "weight"
9+
template = "docs/page.html"
10+
11+
[extra]
12+
lead = 'Libical is an Open Source implementation of the iCalendar protocols and protocol data units. The iCalendar specification describes how calendar clients can communicate with calendar servers so users can store their calendar data and arrange meetings with other users. '
13+
toc = true
14+
top = false
15+
+++
16+
17+
## Quick Start
18+
19+
One page summary of how to start with the library. [Quick Start →](@/docs/getting-started/quick-start.md)
20+
21+
## Contributing
22+
23+
Find out how to contribute to. [Contributing →](@docs/contributing/get-involved.md)
24+
25+
## Developer references
26+
27+
[libical Reference Documentation →](../../developer/libical/)
28+
29+
[libical-glib Reference Documentation →](../../developer/libical-glib/)

0 commit comments

Comments
 (0)