Skip to content

Commit fb14bbd

Browse files
committed
Initial commit
0 parents  commit fb14bbd

File tree

1,949 files changed

+603626
-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

+603626
-0
lines changed

.github/workflows/main.yml

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

.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)