forked from semios/semios-packages
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c540480e7e |
@@ -1,24 +0,0 @@
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <https://unlicense.org/>
|
||||
@@ -1,47 +0,0 @@
|
||||
# SemiOS Packages
|
||||
|
||||
This is the SemiOS source package collection.
|
||||
|
||||
## Usage
|
||||
|
||||
To build a package for your native target, run:
|
||||
|
||||
```shell
|
||||
./x build <package name>
|
||||
```
|
||||
|
||||
To cross-build a package for another target, run:
|
||||
|
||||
```shell
|
||||
./x --target <target triple> build <package name>
|
||||
```
|
||||
|
||||
After a package is successfully built, you can find the build artifacts
|
||||
at `./packages/<package name>/target/*.pkg`.
|
||||
|
||||
To clean building files for a package, run:
|
||||
|
||||
```shell
|
||||
./x clean <package name> # Clean a package
|
||||
./x clean --all # Clean all packages
|
||||
```
|
||||
|
||||
## Targets
|
||||
|
||||
This repository is for SemiOS targets only. Other targets are not guaranteed to work.
|
||||
Currently, we support:
|
||||
|
||||
- aarch64-semios-linux
|
||||
- riscv64-semios-linux
|
||||
- x86_64-semios-linux
|
||||
|
||||
## Atom Builds
|
||||
|
||||
*Atom Build* is a technology to make reproducible building environments. To build a
|
||||
package in its atom environment, run:
|
||||
|
||||
```shell
|
||||
./x --atombuild build <package name>
|
||||
```
|
||||
|
||||
You can use the `--atombuild` flag with other flags described above.
|
||||
@@ -0,0 +1,99 @@
|
||||
import os
|
||||
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
|
||||
version("1.18.4")
|
||||
description("a 2D graphics library with support for multiple output devices")
|
||||
maintainer("sisungo <[email protected]>")
|
||||
source_url("https://cairographics.org/releases/cairo-1.18.4.tar.xz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/meson")
|
||||
builddep("pkgconf")
|
||||
builddep(f"glib-dev @{arch.get_target()}")
|
||||
builddep(f"libfontconfig-dev @{arch.get_target()}")
|
||||
builddep(f"libfreetype-dev @{arch.get_target()}")
|
||||
builddep(f"libpng-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.meson_setup([
|
||||
f"--libdir={get_prefix('libcairo')}/lib",
|
||||
f"--includedir={get_prefix('libcairo-dev')}/include",
|
||||
f"--bindir={get_prefix('libcairo-dev')}/bin",
|
||||
"-Dfontconfig=enabled",
|
||||
"-Dfreetype=enabled",
|
||||
"-Dpng=enabled",
|
||||
"-Dtee=enabled",
|
||||
"-Dglib=enabled",
|
||||
])
|
||||
cpp.meson_compile()
|
||||
cpp.meson_install()
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_libcairo(composer):
|
||||
composer.makedir("lib")
|
||||
for i in os.listdir("lib"):
|
||||
if ".so" in i and "gobject" not in i:
|
||||
composer.addfile(f"lib/{i}", f"lib/{i}")
|
||||
composer.add_dir("lib/cairo", "lib/cairo")
|
||||
|
||||
def pack_libcairo_dev(composer):
|
||||
composer.makedirs("lib/pkgconfig")
|
||||
for i in os.listdir("lib/pkgconfig"):
|
||||
if "gobject" not in i:
|
||||
composer.addfile(f"lib/pkgconfig/{i}", f"lib/pkgconfig/{i}")
|
||||
composer.makedirs("include/cairo")
|
||||
for i in os.listdir("include/cairo"):
|
||||
if "gobject" not in i:
|
||||
composer.addfile(f"include/cairo/{i}", f"include/cairo/{i}")
|
||||
composer.add_dir("bin", "bin")
|
||||
|
||||
def pack_libcairo_gobject(composer):
|
||||
composer.makedir("lib")
|
||||
for i in os.listdir("lib"):
|
||||
if ".so" in i and "gobject" in i:
|
||||
composer.addfile(f"lib/{i}", f"lib/{i}")
|
||||
|
||||
def pack_libcairo_gobject_dev(composer):
|
||||
composer.makedirs("lib/pkgconfig")
|
||||
for i in os.listdir("lib/pkgconfig"):
|
||||
if "gobject" in i:
|
||||
composer.addfile(f"lib/pkgconfig/{i}", f"lib/pkgconfig/{i}")
|
||||
composer.makedirs("include/cairo")
|
||||
for i in os.listdir("include/cairo"):
|
||||
if "gobject" in i:
|
||||
composer.addfile(f"include/cairo/{i}", f"include/cairo/{i}")
|
||||
|
||||
|
||||
package("libcairo")
|
||||
dep("libfontconfig @same-arch")
|
||||
dep("libpng @same-arch")
|
||||
dep("libpixman @same-arch")
|
||||
dep("libfreetype @same-arch")
|
||||
dep("libz @same-arch")
|
||||
on_pack(pack_libcairo)
|
||||
|
||||
package("libcairo-dev")
|
||||
dep("libcairo (same)")
|
||||
dep("libfontconfig-dev @same-arch")
|
||||
dep("libpng-dev @same-arch")
|
||||
dep("libpixman-dev @same-arch")
|
||||
dep("libfreetype-dev @same-arch")
|
||||
dep("libz-dev @same-arch")
|
||||
on_pack(pack_libcairo_dev)
|
||||
|
||||
package("libcairo-gobject")
|
||||
dep("libcairo (same)")
|
||||
dep("libglib @same-arch")
|
||||
dep("libgobject @same-arch")
|
||||
on_pack(pack_libcairo_gobject)
|
||||
|
||||
package("libcairo-gobject-dev")
|
||||
dep("libcairo-dev (same)")
|
||||
dep("glib-dev @same-arch")
|
||||
on_pack(pack_libcairo_gobject)
|
||||
Reference in New Issue
Block a user