Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
tintou committed Nov 22, 2024
0 parents commit 060115d
Show file tree
Hide file tree
Showing 1,949 changed files with 603,625 additions and 0 deletions.
44 changes: 44 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Zola on GitHub Pages

on:
push:
branches:
- main

jobs:
build:
permissions:
pages: write
id-token: write
name: Publish site
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build and Deploy
uses: shalzz/[email protected]
env:
BUILD_ONLY: true
- name: Move Documentation
run: |
rm -R public/docs/developer/libical
mv public/apidocs public/docs/developer/libical
rm -R public/docs/developer/libical-glib
mv public/libical-glib public/docs/developer/libical-glib
- name: Upload Artifact
uses: actions/upload-pages-artifact@v2
with:
# upload entire directory
path: 'public'

deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
steps:
- name: Deploy artifact
id: deployment
uses: actions/deploy-pages@v1
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "themes/adidoks"]
path = themes/adidoks
url = https://github.com/aaranxu/adidoks.git
33 changes: 33 additions & 0 deletions config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# The URL the site will be built for
base_url = "https://libical.github.io"
title = "libical"
description = "Open Source implementation of the iCalendar protocols and protocol data units."

# Whether to automatically compile all Sass files in the sass directory
compile_sass = true

# Whether to build a search index to be used later on by a JavaScript library
build_search_index = true

theme = "adidoks"

[markdown]
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = true

[extra]
# Put all your custom variables here
edit_page = false
docs_repo = "https://github.com/libical/io.github.libical"
repo_branch = "main"

[extra.footer]
info = 'Powered by <a href="https://www.getzola.org/">Zola</a>, and <a href="https://github.com/aaranxu/adidoks">AdiDoks</a>'

[[extra.menu.social]]
name = "GitHub"
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>'
url = "https://github.com/libical/libical"
post = "v0.1.0"
weight = 20
29 changes: 29 additions & 0 deletions content/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
+++
title = "The iCalendar library"


# The homepage contents
[extra]
lead = '<b>libical</b> is an Open Source implementation of the iCalendar protocols and protocol data units.'
url = "/docs/getting-started/introduction/"
url_button = "Get started"
repo_version = "v3.0.18"
repo_license = "MPL v2.0 or LGPL v2.1 —"
repo_url = "https://github.com/aaranxu/adidoks"

# Menu items
[[extra.menu.main]]
name = "Docs"
section = "docs"
url = "/docs/getting-started/introduction/"
weight = 10

[[extra.list]]
title = "Based on Standards"
content = 'Implements RFC2445, RFC2446 and some of RFC2447 the CalDav scheduling extensions in RFC6638 and RFC7986; plus the iCalendar iMIP protocol in RFC6047.'

[[extra.list]]
title = "Used by many"
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>.'

+++
7 changes: 7 additions & 0 deletions content/docs/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
+++
title = "Docs"
description = "The documents of the AdiDoks theme."
sort_by = "weight"
weight = 1
template = "docs/section.html"
+++
8 changes: 8 additions & 0 deletions content/docs/contributing/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
+++
title = "Contributing"
description = "Find out how to contribute."
template = "docs/section.html"
sort_by = "weight"
weight = 4
draft = false
+++
68 changes: 68 additions & 0 deletions content/docs/contributing/code-quality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
+++
title = "Code Quality"
description = "Ensuring good overall code quality."
date = 2021-05-01T18:20:00+00:00
updated = 2021-05-01T18:20:00+00:00
draft = false
weight = 420
sort_by = "weight"
template = "docs/page.html"

[extra]
lead = "Ensuring good overall code quality."
toc = true
top = false
+++
### Introduction ###

> I insist on code quality — Allen
This means:

1. No build failures on supported platforms (obviously including our [Continuous Integration ("CI") systems](https://travis-ci.org/libical/libical))
2. No compiler warnings allowed using "strict" (strict being a relative term) compiler warning options
3. No [splint](http://www.splint.org) issues using -weak checking
4. No serious [Coverity Scan](http://scan.coverity.com) issues
5. No serious [scan-build](http://clang-analyzer.llvm.org/scan-build.html) issues
6. No [Krazy](https://github.com/Krazy-collection/krazy) issues
7. No failed regression tests
8. Coding Style is very strictly enforced
9. (A goal) API documentation must be complete
10. Each source file must have a proper license and copyright header (Krazy tests for this)
11. Other stuff as I think of it

We want to be as portable as possible. We welcome ports to platforms we haven't encountered previously.

#### Compiler Warnings ####

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.

#### Continuous Integration ####

We use [Travis](https://travis-ci.org/libical/libical) to perform CI for libical on Linux and OSX.
For Windows we use the [Appveyor](https://ci.appveyor.com/project/winterz/libical) CI

#### Lint Checking ####

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.

#### Static Analysis ####

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.

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

By the way, [cppcheck](http://cppcheck.sourceforge.net) is another tool I like for static code analysis. Occasionally we should run cppcheck as well.

#### Krazy Analysis ####

[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".

#### Coding Style ####

[Coding Style](@/docs/contributing/coding-style.md) is enforced.

#### API Documentation ####

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.

38 changes: 38 additions & 0 deletions content/docs/contributing/coding-style.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
+++
title = "Coding Style Rules"
description = "Rules for the style used the codebase."
date = 2021-05-01T18:20:00+00:00
updated = 2021-05-01T18:20:00+00:00
draft = false
weight = 420
sort_by = "weight"
template = "docs/page.html"

[extra]
lead = "Follow these Coding Style Rules. Strictly Enforced. The relevant GNU indent options are in parens."
toc = true
top = false
+++

* Use spaces for indenting. No tabs (-nut)
* Indent level is 4 spaces (-i4)
* Maximum line length is 100 characters (-l100 -lc100)
* Do not put a space after every ’(’ and before every ’)’ (-nprs)
* Do not put space after the function in function calls (-npcs)
* Do not put a space after cast operators (-ncs)
* Do not put a space between '#' and preprocessor directives (-nlps)
* Put braces on line with if, etc. (-br)
* Cuddle else and preceding ‘}’ (-ce)
* Put the type of a procedure on the same line as its name (-npsl)
* Put braces on line following function definition line (-blf)
* Put braces on the line after struct declaration lines (-bls)
* Do not force newlines after commas in declarations (-nbc)
* Zero width indentation for parameters (-nip)
* Do not indent parameter types (-ip0)
* Do not indent case labels (-cli0)
* Line up continued lines at parentheses (-lp)
* Do not prefer to break long lines before boolean operators (-nbbo)
* Force blank lines after procedure bodies (-bap)
* Force blank lines after the declarations (-bad)
* Swallow optional blank lines (-sob)

23 changes: 23 additions & 0 deletions content/docs/contributing/get-involved.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
+++
title = "Get Involved"
description = "Follow the project and contribute."
date = 2021-05-01T18:10:00+00:00
updated = 2021-05-01T18:10:00+00:00
draft = false
weight = 410
sort_by = "weight"
template = "docs/page.html"

[extra]
lead = "Follow the project and contribute."
toc = true
top = false
+++

Subscribe to our mailing lists:

* For developer discussions [libical-devel](http://lists.infradead.org/mailman/listinfo/libical-devel)

* For general discussions about libical and related projects [libical-interest](http://lists.infradead.org/mailman/listinfo/libical-interest)

Report bugs to [our issue tracker in GitHub](https://github.com/libical/libical/issues)
8 changes: 8 additions & 0 deletions content/docs/developer/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
+++
title = "References"
description = "Developer documentation."
template = "docs/section.html"
sort_by = "weight"
weight = 7
draft = false
+++
11 changes: 11 additions & 0 deletions content/docs/developer/libical-glib.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
+++
title = "libical-glib"
description = "Developer documentation."
date = 2021-05-01T19:30:00+00:00
updated = 2021-05-01T19:30:00+00:00
draft = false
weight = 40
sort_by = "weight"
template = "docs/page.html"
+++

11 changes: 11 additions & 0 deletions content/docs/developer/libical.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
+++
title = "libical"
description = "Developer documentation."
date = 2021-05-01T19:30:00+00:00
updated = 2021-05-01T19:30:00+00:00
draft = false
weight = 30
sort_by = "weight"
template = "docs/page.html"
+++

8 changes: 8 additions & 0 deletions content/docs/getting-started/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
+++
title = "Getting Started"
description = "Quick start and guides for installing the AdiDoks theme on your preferred operating system."
template = "docs/section.html"
sort_by = "weight"
weight = 1
draft = false
+++
59 changes: 59 additions & 0 deletions content/docs/getting-started/for-different-platform.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
+++
title = "Build for Different Platforms"
description = "Help to build libical for various platforms and compilers."
date = 2021-05-01T08:20:00+00:00
updated = 2021-05-01T08:20:00+00:00
draft = false
weight = 31
sort_by = "weight"
template = "docs/page.html"

[extra]
lead = "Help to build libical for various platforms and compilers."
toc = true
top = false
+++

## Cross-compiling

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.

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)

Libical can cross-compile ok if you disable building libical-glib by passing `-DICAL_GLIB=False` to CMake.

If you want/need libical-glib for your cross-compile then:

- build and install a native build of libical into (for example) `/usr/local`
- then pass `-DIMPORT_ICAL_GLIB_SRC_GENERATOR=/usr/local/lib64/cmake/LibIcal/IcalGlibSrcGenerator.cmake` to CMake for the cross-compile build.

Read the cmake-toolchains documentation to help you write your own Toolchain file if needed.

Look in the libical/cmake folder for some Toolchain files that may or may not work out-of-the-box.

## iOS arm7, arm64, x386

Add the following inside CMakeList.txt:

```cmake
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch armv7")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch armv7")
```

Then run `cmake ..`

Modify the following line from the build/CMakeCache.txt that's generated by cmake command:

```bash
// The product will be built against the headers and libraries located
// inside the indicated SDK.
CMAKE_OSX_SYSROOT:PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
```

(Change it into iPhoneOS.sdk or iPhoneOS8.4.sdk)

run `make`, and `make install` as noted in the installation from libical.

use `lipo -info` to check the generated lib .a files, it will say it is armv7.

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.
29 changes: 29 additions & 0 deletions content/docs/getting-started/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
+++
title = "Introduction"
description = "Libical is an Open Source implementation of the iCalendar protocols and protocol data units."
date = 2021-05-01T08:00:00+00:00
updated = 2021-05-01T08:00:00+00:00
draft = false
weight = 10
sort_by = "weight"
template = "docs/page.html"

[extra]
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. '
toc = true
top = false
+++

## Quick Start

One page summary of how to start with the library. [Quick Start →](@/docs/getting-started/quick-start.md)

## Contributing

Find out how to contribute to. [Contributing →](@docs/contributing/get-involved.md)

## Developer references

[libical Reference Documentation →](../../developer/libical/)

[libical-glib Reference Documentation →](../../developer/libical-glib/)
Loading

0 comments on commit 060115d

Please sign in to comment.