aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDEC05EBA <dec05eba@protonmail.com>2020-01-01 09:13:18 +0100
committerDEC05EBA <dec05eba@protonmail.com>2020-01-01 09:13:18 +0100
commit8d8e23320e48f1d8fd98c3c914696f6fe0f7161e (patch)
tree3550f131afa5b62e160076dcc7df9ae8262da8cf
parent0f8f6ffe2e6cf6a9210da489a030b25a1ef307a3 (diff)
Ignore comments, ignore end tags without a start tag.
Fixes tags closing too soon
-rw-r--r--include/HtmlParser.h2
-rw-r--r--src/HtmlParser.c42
-rw-r--r--tests/github.html1592
-rw-r--r--tests/main.c46
4 files changed, 1670 insertions, 12 deletions
diff --git a/include/HtmlParser.h b/include/HtmlParser.h
index 48660da..b01a59e 100644
--- a/include/HtmlParser.h
+++ b/include/HtmlParser.h
@@ -51,4 +51,4 @@ void html_parser_deinit(HtmlParser *self);
void html_parser_parse(HtmlParser *self);
-#endif /* HTML_PARSER_H */ \ No newline at end of file
+#endif /* HTML_PARSER_H */
diff --git a/src/HtmlParser.c b/src/HtmlParser.c
index 81104b7..7c91a77 100644
--- a/src/HtmlParser.c
+++ b/src/HtmlParser.c
@@ -125,7 +125,8 @@ static char html_parser_peek_char(HtmlParser *self) {
}
static void html_parser_advance_char(HtmlParser *self) {
- ++self->offset;
+ if(self->offset < self->source_len)
+ ++self->offset;
}
static int is_alpha(char c) {
@@ -248,7 +249,7 @@ static void html_parser_goto_script_end_tag(HtmlParser *self) {
if(c == '"' || c == '\'') {
html_parser_advance_char(self);
html_parser_goto_end_of_js_string(self, c);
- } else if(c == '<' && self->offset + 7 < self->source_len && strncmp(self->source + self->offset + 1, "/script", 7) == 0) {
+ } else if(c == '<' && self->offset + 7 < self->source_len && memcmp(self->source + self->offset + 1, "/script", 7) == 0) {
self->text.size = (self->source + self->offset) - self->text.data;
strip(self->text.data, self->text.size, &self->text.data, &self->text.size, is_whitespace);
self->offset += 7;
@@ -276,6 +277,16 @@ static void html_parser_goto_script_end_tag(HtmlParser *self) {
self->parse_callback(self, HTML_PARSE_JAVASCRIPT_CODE, self->callback_userdata);
}
+static void html_parser_goto_comment_end(HtmlParser *self) {
+ for(;;) {
+ if(self->source_len - self->offset >= 3 && memcmp(self->source + self->offset, "-->", 3) == 0) {
+ self->offset += 3;
+ break;
+ }
+ html_parser_advance_char(self);
+ }
+}
+
static void html_parser_parse_tag_start(HtmlParser *self) {
int tag_name_found = 0;
for(;;) {
@@ -340,6 +351,10 @@ static void html_parser_parse_tag_start(HtmlParser *self) {
/* tag name */
self->tag_name = identifier;
tag_name_found = 1;
+ if(self->tag_name.size == 3 && memcmp(self->tag_name.data, "!--", 3) == 0) {
+ html_parser_goto_comment_end(self);
+ return;
+ }
self->is_tag_void = is_void_tag(&self->tag_name);
if(!self->is_tag_void) {
html_parser_try_append_unclosed_tag(self, self->tag_name.data, self->tag_name.size);
@@ -373,20 +388,29 @@ static void html_parser_parse_tag_end(HtmlParser *self) {
}
}
tag_end_name.size = (self->source + self->offset) - tag_end_name.data;
+ tag_name_found = 1;
/* void tags close themselves, this is probably invalid html but we choose to ignore it silently */
if(is_void_tag(&tag_end_name)) {
- fprintf(stderr, "Warning: got end tag for void tag '%.*s'\n", tag_end_name.size, tag_end_name.data);
+ fprintf(stderr, "Warning: got end tag for void tag '%.*s'\n", (int)tag_end_name.size, tag_end_name.data);
continue;
}
- HtmlStringView top_unclosed_tag;
- while(html_parser_try_get_top_unclosed_tag(self, &top_unclosed_tag)) {
- self->tag_name = top_unclosed_tag;
- self->parse_callback(self, HTML_PARSE_TAG_END, self->callback_userdata);
- html_parser_pop_unclosed_tag(self);
- if(string_view_equals(&top_unclosed_tag, &tag_end_name))
+ ssize_t found_start_tag_index = -1;
+ for(ssize_t i = self->unclosed_tags_offset - 1; i >= 0; --i) {
+ if(string_view_equals(&self->unclosed_tags[i], &tag_end_name)) {
+ found_start_tag_index = i;
break;
+ }
+ }
+
+ if(found_start_tag_index != -1) {
+ for(; self->unclosed_tags_offset > (size_t)found_start_tag_index; --self->unclosed_tags_offset) {
+ self->tag_name = self->unclosed_tags[self->unclosed_tags_offset - 1];
+ self->parse_callback(self, HTML_PARSE_TAG_END, self->callback_userdata);
+ }
+ } else {
+ fprintf(stderr, "Warning: start tag not found for end tag '%.*s'\n", (int)tag_end_name.size, tag_end_name.data);
}
} else if(c == '\0') {
return;
diff --git a/tests/github.html b/tests/github.html
new file mode 100644
index 0000000..b0f8bfb
--- /dev/null
+++ b/tests/github.html
@@ -0,0 +1,1592 @@
+
+
+
+
+
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <link rel="dns-prefetch" href="https://github.githubassets.com">
+ <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
+ <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
+ <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
+ <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
+ <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
+ <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
+
+
+
+ <link crossorigin="anonymous" media="all" integrity="sha512-hddDYPWR0gBbqLRmIZP242WMEiYsVkYI2UCYCVUHB4h5DhD2cbtFJYG+HPh21dZGb+sbgDHxQBNJCBq7YbmlBQ==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-02a3eaa24db2bd1ed9b64450595fc2cf.css" />
+ <link crossorigin="anonymous" media="all" integrity="sha512-8BxpFTogSyEi7yQb7rCnH1J/gTxVdHNk1Rrg92rh2zMf++XM8Us8Pcp+5GzjxqRxkax0Ckz52LufuEGch2uE7w==" rel="stylesheet" href="https://github.githubassets.com/assets/site-1faffb77dc8b20778aa60ecb5998972e.css" />
+ <link crossorigin="anonymous" media="all" integrity="sha512-Fr8GYcjC9Pwm6dQmefd4vXX2fXl7gylXrhSo2aMCxM0Ilrme82PXVtfHOzcnvR9vUmfvO8t8XVmNxW1FRnoYSg==" rel="stylesheet" href="https://github.githubassets.com/assets/github-8f8f40cebc9aea61f6dac776b58ccad9.css" />
+
+
+
+
+
+
+ <meta name="viewport" content="width=device-width">
+
+ <title>GitHub - DEC05EBA/sibs: Simple build system for native languages. Similar to rusts cargo, but for c, c++ and zig . Mirror of https://gitlab.com/DEC05EBA/sibs</title>
+ <meta name="description" content="Simple build system for native languages. Similar to rusts cargo, but for c, c++ and zig . Mirror of https://gitlab.com/DEC05EBA/sibs - DEC05EBA/sibs">
+ <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
+ <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
+ <meta property="fb:app_id" content="1401488693436528">
+
+ <meta name="twitter:image:src" content="https://avatars3.githubusercontent.com/u/3404331?s=400&amp;v=4" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="DEC05EBA/sibs" /><meta name="twitter:description" content="Simple build system for native languages. Similar to rusts cargo, but for c, c++ and zig . Mirror of https://gitlab.com/DEC05EBA/sibs - DEC05EBA/sibs" />
+ <meta property="og:image" content="https://avatars3.githubusercontent.com/u/3404331?s=400&amp;v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="DEC05EBA/sibs" /><meta property="og:url" content="https://github.com/DEC05EBA/sibs" /><meta property="og:description" content="Simple build system for native languages. Similar to rusts cargo, but for c, c++ and zig . Mirror of https://gitlab.com/DEC05EBA/sibs - DEC05EBA/sibs" />
+
+ <link rel="assets" href="https://github.githubassets.com/">
+
+
+
+ <meta name="request-id" content="C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832" data-pjax-transient>
+
+
+
+
+
+ <meta name="selected-link" value="repo_source" data-pjax-transient>
+
+ <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
+ <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
+ <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
+
+ <meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-request_id" content="C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832" /><meta name="octolytics-dimension-region_edge" content="ams" /><meta name="octolytics-dimension-region_render" content="iad" /><meta name="octolytics-dimension-ga_id" content="" class="js-octo-ga-id" /><meta name="octolytics-dimension-visitor_id" content="965901166779844658" />
+
+<meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;" data-pjax-transient="true" />
+
+
+
+ <meta name="google-analytics" content="UA-3769691-2">
+
+
+<meta class="js-ga-set" name="dimension1" content="Logged Out">
+
+
+
+
+
+ <meta name="hostname" content="github.com">
+ <meta name="user-login" content="">
+
+ <meta name="expected-hostname" content="github.com">
+
+ <meta name="js-proxy-site-detection-payload" content="OTgyY2Y0ZjQ2MzMyOWE5OWZmZGIyZWZhMWQ1OGViMTgwNTRkYWFhZWNhY2M4OGYzMGJhNDUxMzRmM2U0MmU3YXx7InJlbW90ZV9hZGRyZXNzIjoiMzEuMjA5LjE0LjE1MyIsInJlcXVlc3RfaWQiOiJDNjBDOjNCQjdFOjhDMEFERjA6RDVBQUMxMjo1RTBDNDgzMiIsInRpbWVzdGFtcCI6MTU3Nzg2MzIxOSwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==">
+
+ <meta name="enabled-features" content="MARKETPLACE_FEATURED_BLOG_POSTS,MARKETPLACE_INVOICED_BILLING,MARKETPLACE_SOCIAL_PROOF_CUSTOMERS,MARKETPLACE_TRENDING_SOCIAL_PROOF,MARKETPLACE_RECOMMENDATIONS,MARKETPLACE_PENDING_INSTALLATIONS">
+
+ <meta name="html-safe-nonce" content="492a3bb82f6760b413d207de9475da778ad6d95e">
+
+ <meta http-equiv="x-pjax-version" content="88749827de37e0e1ebd70bc0919cebf3">
+
+
+ <link href="https://github.com/DEC05EBA/sibs/commits/master.atom" rel="alternate" title="Recent Commits to sibs:master" type="application/atom+xml">
+
+ <meta name="go-import" content="github.com/DEC05EBA/sibs git https://github.com/DEC05EBA/sibs.git">
+
+ <meta name="octolytics-dimension-user_id" content="3404331" /><meta name="octolytics-dimension-user_login" content="DEC05EBA" /><meta name="octolytics-dimension-repository_id" content="113503905" /><meta name="octolytics-dimension-repository_nwo" content="DEC05EBA/sibs" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="113503905" /><meta name="octolytics-dimension-repository_network_root_nwo" content="DEC05EBA/sibs" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />
+
+
+ <link rel="canonical" href="https://github.com/DEC05EBA/sibs" data-pjax-transient>
+
+
+ <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
+
+ <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
+
+ <link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
+ <link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://github.githubassets.com/favicon.ico">
+
+<meta name="theme-color" content="#1e2327">
+
+
+
+
+
+ <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
+
+ </head>
+
+ <body class="logged-out env-production min-width-lg">
+
+
+ <div class="position-relative js-header-wrapper ">
+ <a href="#start-of-content" tabindex="1" class="px-2 py-4 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
+ <span class="Progress progress-pjax-loader position-fixed width-full js-pjax-loader-bar">
+ <span class="progress-pjax-loader-bar top-0 left-0" style="width: 0%;"></span>
+ </span>
+
+
+
+
+
+
+ <header class="Header-old header-logged-out position-relative f4 py-2" role="banner">
+ <div class="container-lg d-flex px-3">
+ <div class="d-flex flex-justify-between flex-items-center">
+ <a class="mr-4" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
+ <svg height="32" class="octicon octicon-mark-github text-white" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
+ </a>
+ </div>
+
+ <div class="HeaderMenu HeaderMenu--logged-out d-flex flex-justify-between flex-items-center flex-auto">
+ <div class="d-none">
+ <button class="btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
+ <svg height="24" class="octicon octicon-x text-gray" viewBox="0 0 12 16" version="1.1" width="18" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
+ </button>
+ </div>
+
+ <nav class="mt-0" aria-label="Global">
+ <ul class="d-flex list-style-none">
+ <li class=" mr-3 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
+ <details class="HeaderMenu-details details-overlay details-reset width-full">
+ <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-inline-block">
+ Why GitHub?
+ <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-relative">
+ <path d="M1,1l6.2,6L13,1"></path>
+ </svg>
+ </summary>
+ <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 mt-0 p-4 left-n4 position-absolute">
+ <a href="/features" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Features">Features <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a>
+ <ul class="list-style-none f5 pb-3">
+ <li class="edge-item-fix"><a href="/features/code-review/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code review">Code review</a></li>
+ <li class="edge-item-fix"><a href="/features/project-management/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Project management">Project management</a></li>
+ <li class="edge-item-fix"><a href="/features/integrations" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Integrations">Integrations</a></li>
+ <li class="edge-item-fix"><a href="/features/actions" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Actions">Actions</a></li>
+ <li class="edge-item-fix"><a href="/features/packages" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Packages">Packages</a></li>
+ <li class="edge-item-fix"><a href="/features/security" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Security">Security</a></li>
+ <li class="edge-item-fix"><a href="/features#team-management" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Team management">Team management</a></li>
+ <li class="edge-item-fix"><a href="/features#hosting" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code hosting">Hosting</a></li>
+ </ul>
+
+ <ul class="list-style-none mb-0 border-lg-top pt-lg-3">
+ <li class="edge-item-fix"><a href="/customer-stories" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Customer stories">Customer stories <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ <li class="edge-item-fix"><a href="/security" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Security">Security <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ </ul>
+ </div>
+ </details>
+ </li>
+ <li class=" mr-3 mr-lg-3">
+ <a href="/enterprise" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Enterprise">Enterprise</a>
+ </li>
+
+ <li class=" mr-3 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
+ <details class="HeaderMenu-details details-overlay details-reset width-full">
+ <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-inline-block">
+ Explore
+ <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-relative">
+ <path d="M1,1l6.2,6L13,1"></path>
+ </svg>
+ </summary>
+
+ <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-0 mt-0 p-4 left-n4 position-absolute">
+ <ul class="list-style-none mb-3">
+ <li class="edge-item-fix"><a href="/explore" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Explore">Explore GitHub <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ </ul>
+
+ <h4 class="text-gray-light text-normal text-mono f5 mb-2 border-top pt-3">Learn &amp; contribute</h4>
+ <ul class="list-style-none mb-3">
+ <li class="edge-item-fix"><a href="/topics" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Topics">Topics</a></li>
+ <li class="edge-item-fix"><a href="/collections" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Collections">Collections</a></li>
+ <li class="edge-item-fix"><a href="/trending" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Trending">Trending</a></li>
+ <li class="edge-item-fix"><a href="https://lab.github.com/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Learning lab">Learning Lab</a></li>
+ <li class="edge-item-fix"><a href="https://opensource.guide" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Open source guides">Open source guides</a></li>
+ </ul>
+
+ <h4 class="text-gray-light text-normal text-mono f5 mb-2 border-top pt-3">Connect with others</h4>
+ <ul class="list-style-none mb-0">
+ <li class="edge-item-fix"><a href="https://github.com/events" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Events">Events</a></li>
+ <li class="edge-item-fix"><a href="https://github.community" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Community forum">Community forum</a></li>
+ <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Education">GitHub Education</a></li>
+ </ul>
+ </div>
+ </details>
+ </li>
+
+ <li class=" mr-3 mr-lg-3">
+ <a href="/marketplace" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Marketplace">Marketplace</a>
+ </li>
+
+ <li class=" mr-3 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
+ <details class="HeaderMenu-details details-overlay details-reset width-full">
+ <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-inline-block">
+ Pricing
+ <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-relative">
+ <path d="M1,1l6.2,6L13,1"></path>
+ </svg>
+ </summary>
+
+ <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-4 mt-0 p-4 left-n4 position-absolute">
+ <a href="/pricing" class="pb-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Pricing">Plans <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a>
+
+ <ul class="list-style-none mb-3">
+ <li class="edge-item-fix"><a href="/pricing#feature-comparison" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Compare plans">Compare plans</a></li>
+ <li class="edge-item-fix"><a href="https://enterprise.github.com/contact" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Contact Sales">Contact Sales</a></li>
+ </ul>
+
+ <ul class="list-style-none mb-0 border-top pt-3">
+ <li class="edge-item-fix"><a href="/nonprofit" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Nonprofits">Nonprofit <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Education">Education <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ </ul>
+ </div>
+ </details>
+ </li>
+ </ul>
+ </nav>
+
+ <div class="d-flex flex-items-center px-0 text-center text-left">
+ <div class="d-lg-flex ">
+ <div class="header-search mr-3 scoped-search site-scoped-search js-site-search position-relative js-jump-to"
+ role="combobox"
+ aria-owns="jump-to-results"
+ aria-label="Search or jump to"
+ aria-haspopup="listbox"
+ aria-expanded="false"
+>
+ <div class="position-relative">
+ <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="113503905" data-scoped-search-url="/DEC05EBA/sibs/search" data-unscoped-search-url="/search" action="/DEC05EBA/sibs/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
+ <label class="form-control input-sm header-search-wrapper p-0 header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container">
+ <input type="text"
+ class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
+ data-hotkey="s,/"
+ name="q"
+ value=""
+ placeholder="Search"
+ data-unscoped-placeholder="Search GitHub"
+ data-scoped-placeholder="Search"
+ autocapitalize="off"
+ aria-autocomplete="list"
+ aria-controls="jump-to-results"
+ aria-label="Search"
+ data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations#csrf-token=oY6+ppOi7iCrr633k0Srm46uywSkE16rRi2/qEwIyOCJ0eFRVY3ZSQ9gNQs1s4Mo5f9dXBgqseeYrHQeOb3A8A=="
+ spellcheck="false"
+ autocomplete="off"
+ >
+ <input type="hidden" class="js-site-search-type-field" name="type" >
+ <img src="https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash">
+
+ <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
+
+<ul class="d-none js-jump-to-suggestions-template-container">
+
+
+<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
+ <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
+ <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
+ <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
+ </div>
+
+ <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
+
+ <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
+ </div>
+
+ <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
+ <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
+ In this repository
+ </span>
+ <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
+ All GitHub
+ </span>
+ <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+
+ <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
+ Jump to
+ <span class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+ </a>
+</li>
+
+</ul>
+
+<ul class="d-none js-jump-to-no-results-template-container">
+ <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
+ <span class="text-gray">No suggested jump to results</span>
+ </li>
+</ul>
+
+<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
+
+
+<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
+ <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
+ <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
+ <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
+ </div>
+
+ <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
+
+ <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
+ </div>
+
+ <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
+ <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
+ In this repository
+ </span>
+ <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
+ All GitHub
+ </span>
+ <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+
+ <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
+ Jump to
+ <span class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+ </a>
+</li>
+
+
+
+<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
+ <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
+ <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
+ <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
+ </div>
+
+ <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
+
+ <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
+ </div>
+
+ <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
+ <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
+ In this repository
+ </span>
+ <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
+ All GitHub
+ </span>
+ <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+
+ <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
+ Jump to
+ <span class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+ </a>
+</li>
+
+
+</ul>
+
+ </div>
+ </label>
+</form> </div>
+</div>
+
+ </div>
+
+ <a href="/login?return_to=%2FDEC05EBA%2Fsibs"
+ class="HeaderMenu-link no-underline mr-3"
+ data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7d189c4f2e17580ae6569f7c309530891508d7efe34b3db6e38df52c4f9582b1"
+ data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">
+ Sign&nbsp;in
+ </a>
+ <a href="/join?source_repo=DEC05EBA%2Fsibs"
+ class="HeaderMenu-link d-inline-block no-underline border border-gray-dark rounded-1 px-2 py-1"
+ data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7d189c4f2e17580ae6569f7c309530891508d7efe34b3db6e38df52c4f9582b1"
+ data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">
+ Sign&nbsp;up
+ </a>
+ </div>
+ </div>
+ </div>
+</header>
+
+ </div>
+
+ <div id="start-of-content" class="show-on-focus"></div>
+
+
+ <div id="js-flash-container">
+
+</div>
+
+
+
+ <div class="application-main " data-commit-hovercards-enabled>
+ <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
+ <main id="js-repo-pjax-container" data-pjax-container >
+
+
+
+
+
+
+
+
+
+
+
+
+ <div class=" pagehead repohead readability-menu experiment-repo-nav ">
+ <div class="repohead-details-container clearfix container">
+
+ <ul class="pagehead-actions">
+
+
+
+
+ <li>
+
+ <a class="tooltipped tooltipped-s btn btn-sm btn-with-count" aria-label="You must be signed in to watch a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;notification subscription menu watch&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ef48579f68306a1f61269caf173867893f6e3fb0b2c072fa23609e107b0c7640" href="/login?return_to=%2FDEC05EBA%2Fsibs">
+ <svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
+ Watch
+</a> <a class="social-count" href="/DEC05EBA/sibs/watchers"
+ aria-label="2 users are watching this repository">
+ 2
+ </a>
+
+ </li>
+
+ <li>
+ <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to star a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:113503905,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b502cd45afac89b716da5a6d02e5a14a1b62d797e535a9edfadc4eae17bd954b" href="/login?return_to=%2FDEC05EBA%2Fsibs">
+ <svg aria-label="star" height="16" class="octicon octicon-star v-align-text-bottom" viewBox="0 0 14 16" version="1.1" width="14" role="img"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"/></svg>
+
+ Star
+</a>
+ <a class="social-count js-social-count" href="/DEC05EBA/sibs/stargazers"
+ aria-label="2 users starred this repository">
+ 2
+ </a>
+
+ </li>
+
+ <li>
+ <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to fork a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;repo details fork button&quot;,&quot;repository_id&quot;:113503905,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5dfe96bfdd4c905e2d3b2a510c0852efc6536bafe9c83cfea30ed13f6e003694" href="/login?return_to=%2FDEC05EBA%2Fsibs">
+ <svg class="octicon octicon-repo-forked v-align-text-bottom" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 00-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 002 1a1.993 1.993 0 00-1 3.72V6.5l3 3v1.78A1.993 1.993 0 005 15a1.993 1.993 0 001-3.72V9.5l3-3V4.72A1.993 1.993 0 008 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
+ Fork
+</a>
+ <a href="/DEC05EBA/sibs/network/members" class="social-count"
+ aria-label="1 user forked this repository">
+ 1
+ </a>
+ </li>
+</ul>
+
+ <h1 class="public ">
+ <svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
+ <span class="author" itemprop="author"><a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/DEC05EBA/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/DEC05EBA">DEC05EBA</a></span><!--
+--><span class="path-divider">/</span><!--
+--><strong itemprop="name"><a data-pjax="#js-repo-pjax-container" href="/DEC05EBA/sibs">sibs</a></strong>
+
+
+</h1>
+
+ </div>
+
+<nav class="hx_reponav reponav js-repo-nav js-sidenav-container-pjax container"
+ itemscope
+ itemtype="http://schema.org/BreadcrumbList"
+ aria-label="Repository"
+ data-pjax="#js-repo-pjax-container">
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a class="js-selected-navigation-item selected reponav-item" itemprop="url" data-hotkey="g c" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /DEC05EBA/sibs" href="/DEC05EBA/sibs">
+ <div class="d-inline"><svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg></div>
+ <span itemprop="name">Code</span>
+ <meta itemprop="position" content="1">
+</a> </span>
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a itemprop="url" data-hotkey="g i" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /DEC05EBA/sibs/issues" href="/DEC05EBA/sibs/issues">
+ <div class="d-inline"><svg class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></div>
+ <span itemprop="name">Issues</span>
+ <span class="Counter">0</span>
+ <meta itemprop="position" content="2">
+</a> </span>
+
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a data-hotkey="g p" data-skip-pjax="true" itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /DEC05EBA/sibs/pulls" href="/DEC05EBA/sibs/pulls">
+ <div class="d-inline"><svg class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0010 15a1.993 1.993 0 001-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 00-1 3.72v6.56A1.993 1.993 0 002 15a1.993 1.993 0 001-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg></div>
+ <span itemprop="name">Pull requests</span>
+ <span class="Counter">0</span>
+ <meta itemprop="position" content="4">
+</a> </span>
+
+
+ <a data-hotkey="g b" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /DEC05EBA/sibs/projects" href="/DEC05EBA/sibs/projects">
+ <div class="d-inline"><svg class="octicon octicon-project" viewBox="0 0 15 16" version="1.1" width="15" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg></div>
+ Projects
+ <span class="Counter" >0</span>
+</a>
+
+
+ <a data-skip-pjax="true" class="js-selected-navigation-item reponav-item" data-selected-links="security alerts policy code_scanning /DEC05EBA/sibs/security/advisories" href="/DEC05EBA/sibs/security/advisories">
+ <div class="d-inline"><svg class="octicon octicon-shield" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 2l7-2 7 2v6.02C14 12.69 8.69 16 7 16c-1.69 0-7-3.31-7-7.98V2zm1 .75L7 1l6 1.75v5.268C13 12.104 8.449 15 7 15c-1.449 0-6-2.896-6-6.982V2.75zm1 .75L7 2v12c-1.207 0-5-2.482-5-5.985V3.5z"/></svg></div>
+ Security
+</a>
+ <a class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors dependency_graph pulse people /DEC05EBA/sibs/pulse" href="/DEC05EBA/sibs/pulse">
+ <div class="d-inline"><svg class="octicon octicon-graph" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg></div>
+ Insights
+</a>
+
+</nav>
+
+
+ </div>
+<div class="container-lg clearfix new-discussion-timeline experiment-repo-nav px-3">
+ <div class="repository-content ">
+
+
+
+ <div class="signup-prompt-bg rounded-1">
+ <div class="signup-prompt p-4 text-center mb-4 rounded-1">
+ <div class="position-relative">
+ <!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/prompt_dismissals/signup" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="e3dBc+oabNl9gwKIc1tR1I7JvTfcy/0PUPOmn777p1AHBKh4N2eaeO9BL4Azj9tLe2sRidPH/kZHEA0LmUE3BQ==" />
+ <button type="submit" class="position-absolute top-0 right-0 btn-link link-gray" data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, text:dismiss">
+ Dismiss
+ </button>
+</form> <h3 class="pt-2">Join GitHub today</h3>
+ <p class="col-6 mx-auto">GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.</p>
+ <a class="btn btn-primary" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;files signup prompt&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2e14e7b46a88742c21395f5ba8afd7bc348eed8904b88da87a7dd09acc749e19" data-ga-click="(Logged out) Sign up prompt, clicked Sign up, text:sign-up" href="/join?source=prompt-code&amp;source_repo=DEC05EBA%2Fsibs">Sign up</a>
+ </div>
+ </div>
+ </div>
+
+
+ <div class=""> <div class="f4">
+ <span class="text-gray-dark mr-2" itemprop="about">
+ Simple build system for native languages. Similar to rusts cargo, but for c, c++ and zig . Mirror of <a href="https://gitlab.com/DEC05EBA/sibs" rel="nofollow">https://gitlab.com/DEC05EBA/sibs</a>
+
+ </span>
+ </div>
+</div>
+
+ <div class="repository-topics-container mt-2 mb-3 js-topics-list-container"> <div class="list-topics-container f6">
+ <a class="topic-tag topic-tag-link " href="/topics/cpp" title="Topic: cpp" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:cpp">
+ cpp
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/ninja" title="Topic: ninja" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:ninja">
+ ninja
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/buildsystem" title="Topic: buildsystem" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:buildsystem">
+ buildsystem
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/package-manager" title="Topic: package-manager" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:package-manager">
+ package-manager
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/build-system" title="Topic: build-system" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:build-system">
+ build-system
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/sibs" title="Topic: sibs" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:sibs">
+ sibs
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/libarchive" title="Topic: libarchive" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:libarchive">
+ libarchive
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/libcurl" title="Topic: libcurl" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:libcurl">
+ libcurl
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/dependency-management" title="Topic: dependency-management" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:dependency-management">
+ dependency-management
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/c" title="Topic: c" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:c">
+ c
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/zig" title="Topic: zig" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:zig">
+ zig
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/cmake" title="Topic: cmake" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:cmake">
+ cmake
+</a>
+
+ <a class="topic-tag topic-tag-link " href="/topics/cargo" title="Topic: cargo" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:cargo">
+ cargo
+</a>
+
+ </div>
+</div>
+
+
+
+ <div class="overall-summary overall-summary-bottomless">
+ <ul class="numbers-summary">
+ <li class="commits">
+ <a data-pjax href="/DEC05EBA/sibs/commits/master">
+ <svg class="octicon octicon-history" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 13H6V6h5v2H8v5zM7 1C4.81 1 2.87 2.02 1.59 3.59L0 2v4h4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7s7-3.14 7-7-3.14-7-7-7z"/></svg>
+ <span class="num text-emphasized">
+ 248
+ </span>
+ commits
+ </a>
+ </li>
+ <li>
+ <a data-pjax href="/DEC05EBA/sibs/branches">
+ <svg class="octicon octicon-git-branch" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 5c0-1.11-.89-2-2-2a1.993 1.993 0 00-1 3.72v.3c-.02.52-.23.98-.63 1.38-.4.4-.86.61-1.38.63-.83.02-1.48.16-2 .45V4.72a1.993 1.993 0 00-1-3.72C.88 1 0 1.89 0 3a2 2 0 001 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2 1.11 0 2-.89 2-2 0-.53-.2-1-.53-1.36.09-.06.48-.41.59-.47.25-.11.56-.17.94-.17 1.05-.05 1.95-.45 2.75-1.25S8.95 7.77 9 6.73h-.02C9.59 6.37 10 5.73 10 5zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm0 12.41c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm6-8c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
+ <span class="num text-emphasized">
+ 2
+ </span>
+ branches
+ </a>
+ </li>
+
+ <li>
+ <a data-pjax href="/DEC05EBA/sibs/packages" data-ga-click="Repository, packages click, location:repo overview">
+ <svg class="octicon octicon-package" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="num text-emphasized">
+ 0
+ </span>
+ packages
+ </a>
+
+ </li>
+
+ <li>
+ <a href="/DEC05EBA/sibs/releases">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="num text-emphasized">
+ 7
+ </span>
+ releases
+ </a>
+ </li>
+
+
+ <li >
+ <a href="/DEC05EBA/sibs/graphs/contributors">
+ <svg class="octicon octicon-organization" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 12.999c0 .439-.45 1-1 1H7.995c-.539 0-.994-.447-.995-.999H1c-.54 0-1-.561-1-1 0-2.634 3-4 3-4s.229-.409 0-1c-.841-.621-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.442.58 2.5 3c.058 2.41-.159 2.379-1 3-.229.59 0 1 0 1s1.549.711 2.42 2.088C9.196 9.369 10 8.999 10 8.999s.229-.409 0-1c-.841-.62-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.437.581 2.495 3c.059 2.41-.158 2.38-1 3-.229.59 0 1 0 1s3.005 1.366 3.005 4z"/></svg>
+ <span class="num text-emphasized">
+ 1
+ </span>
+ contributor
+</a>
+ </li>
+
+ <li>
+ <a href="/DEC05EBA/sibs/blob/master/LICENSE">
+ <svg class="octicon octicon-law" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 4c-.83 0-1.5-.67-1.5-1.5S6.17 1 7 1s1.5.67 1.5 1.5S7.83 4 7 4zm7 6c0 1.11-.89 2-2 2h-1c-1.11 0-2-.89-2-2l2-4h-1c-.55 0-1-.45-1-1H8v8c.42 0 1 .45 1 1h1c.42 0 1 .45 1 1H3c0-.55.58-1 1-1h1c0-.55.58-1 1-1h.03L6 5H5c0 .55-.45 1-1 1H3l2 4c0 1.11-.89 2-2 2H2c-1.11 0-2-.89-2-2l2-4H1V5h3c0-.55.45-1 1-1h4c.55 0 1 .45 1 1h3v1h-1l2 4zM2.5 7L1 10h3L2.5 7zM13 10l-1.5-3-1.5 3h3z"/></svg>
+ GPL-3.0
+ </a>
+ </li>
+ </ul>
+ </div>
+
+ <details class="details-reset">
+ <summary title="Click for language details" data-ga-click="Repository, language bar stats toggle, location:repo overview">
+ <div class="d-flex repository-lang-stats-graph">
+ <span class="language-color" aria-label="C++ 95.6%" style="width:95.6%; background-color:#f34b7d;" itemprop="keywords">C++</span>
+ <span class="language-color" aria-label="Python 2.8%" style="width:2.8%; background-color:#3572A5;" itemprop="keywords">Python</span>
+ <span class="language-color" aria-label="Shell 1.3%" style="width:1.3%; background-color:#89e051;" itemprop="keywords">Shell</span>
+ <span class="language-color" aria-label="CMake 0.3%" style="width:0.3%; background-color:#ccc;" itemprop="keywords">CMake</span>
+ </div>
+ </summary>
+ <div class="repository-lang-stats">
+ <ol class="repository-lang-stats-numbers">
+ <li>
+ <a href="/DEC05EBA/sibs/search?l=c%2B%2B" data-ga-click="Repository, language stats search click, location:repo overview">
+ <span class="color-block language-color" style="background-color:#f34b7d;"></span>
+ <span class="lang">C++</span>
+ <span class="percent">95.6%</span>
+ </a>
+ </li>
+ <li>
+ <a href="/DEC05EBA/sibs/search?l=python" data-ga-click="Repository, language stats search click, location:repo overview">
+ <span class="color-block language-color" style="background-color:#3572A5;"></span>
+ <span class="lang">Python</span>
+ <span class="percent">2.8%</span>
+ </a>
+ </li>
+ <li>
+ <a href="/DEC05EBA/sibs/search?l=shell" data-ga-click="Repository, language stats search click, location:repo overview">
+ <span class="color-block language-color" style="background-color:#89e051;"></span>
+ <span class="lang">Shell</span>
+ <span class="percent">1.3%</span>
+ </a>
+ </li>
+ <li>
+ <a href="/DEC05EBA/sibs/search?l=cmake" data-ga-click="Repository, language stats search click, location:repo overview">
+ <span class="color-block language-color" style="background-color:#ccc;"></span>
+ <span class="lang">CMake</span>
+ <span class="percent">0.3%</span>
+ </a>
+ </li>
+ </ol>
+ </div>
+ </details>
+
+
+
+
+
+
+ <div class="file-navigation in-mid-page d-flex flex-items-start">
+
+<details class="details-reset details-overlay select-menu branch-select-menu hx_rsm" id="branch-select-menu">
+ <summary class="btn btn-sm select-menu-button css-truncate"
+ data-hotkey="w"
+ title="Switch branches or tags">
+ <i>Branch:</i>
+ <span class="css-truncate-target" data-menu-button>master</span>
+ </summary>
+
+ <details-menu class="select-menu-modal hx_rsm-modal position-absolute" style="z-index: 99;" src="/DEC05EBA/sibs/refs/master?source_action=disambiguate&amp;source_controller=files" preload>
+ <include-fragment class="select-menu-loading-overlay anim-pulse">
+ <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
+ </include-fragment>
+ </details-menu>
+</details>
+
+
+ <button type="button" class="btn btn-sm disabled tooltipped tooltipped-n new-pull-request-btn" aria-label="You must be signed in to create a pull request">
+ New pull request
+ </button>
+
+ <div class="breadcrumb flex-auto">
+
+ </div>
+
+ <div class="BtnGroup">
+
+ <a class="btn btn-sm empty-icon float-right BtnGroup-item" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;FIND_FILE_BUTTON&quot;,&quot;repository_id&quot;:113503905,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="594c6973d5e84043a218ac6142c2844bc13c96b0a3b1cbdfeed61503f4d94000" data-ga-click="Repository, find file, location:repo overview" data-hotkey="t" data-pjax="true" href="/DEC05EBA/sibs/find/master">Find file</a>
+ </div>
+
+
+
+
+
+
+ <details class="get-repo-select-menu js-get-repo-select-menu js-anon-get-repo-select-menu position-relative details-overlay details-reset">
+ <summary class="btn btn-sm ml-2 btn-primary" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;repository_id&quot;:113503905,&quot;target&quot;:&quot;CLONE_OR_DOWNLOAD_BUTTON&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4f48db899460783e6769aca3f2e5861279965217972ae3608c6ffbe5616a0a9a">
+ Clone or download
+ <span class="dropdown-caret"></span>
+</summary> <div class="position-relative">
+ <div class="get-repo-modal dropdown-menu dropdown-menu-sw pb-0 js-toggler-container js-get-repo-modal">
+
+ <div class="get-repo-modal-options">
+ <div class="clone-options https-clone-options">
+
+ <h4 class="mb-1">
+ Clone with HTTPS
+ <a class="muted-link" href="https://help.github.com/articles/which-remote-url-should-i-use" target="_blank" title="Which remote URL should I use?">
+ <svg class="octicon octicon-question" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 10h2v2H6v-2zm4-3.5C10 8.64 8 9 8 9H6c0-.55.45-1 1-1h.5c.28 0 .5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7H4c0-1.5 1.5-3 3-3s3 1 3 2.5zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z"/></svg>
+ </a>
+ </h4>
+ <p class="mb-2 get-repo-decription-text">
+ Use Git or checkout with SVN using the web URL.
+ </p>
+
+ <div class="input-group">
+ <input type="text" class="form-control input-monospace input-sm" data-autoselect value="https://github.com/DEC05EBA/sibs.git" aria-label="Clone this repository at https://github.com/DEC05EBA/sibs.git" readonly>
+ <div class="input-group-button">
+ <clipboard-copy value="https://github.com/DEC05EBA/sibs.git" aria-label="Copy to clipboard" class="btn btn-sm" data-hydro-click="{&quot;event_type&quot;:&quot;clone_or_download.click&quot;,&quot;payload&quot;:{&quot;feature_clicked&quot;:&quot;COPY_URL&quot;,&quot;git_repository_type&quot;:&quot;REPOSITORY&quot;,&quot;repository_id&quot;:113503905,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="fa3ac453d59cd56ab2219d2c74d9af34ca67777090f327690bad423229fa3e2c"><svg class="octicon octicon-clippy" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg></clipboard-copy>
+ </div>
+</div>
+
+ </div>
+
+ <div class="mt-2">
+
+<a class="btn btn-outline get-repo-btn js-anon-download-zip-link " rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;clone_or_download.click&quot;,&quot;payload&quot;:{&quot;feature_clicked&quot;:&quot;DOWNLOAD_ZIP&quot;,&quot;git_repository_type&quot;:&quot;REPOSITORY&quot;,&quot;repository_id&quot;:113503905,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2685816e9d1ea027f3db0612efd00f83d2366e8f60af61b175af536755505c8e" data-ga-click="Repository, download zip, location:repo overview" href="/DEC05EBA/sibs/archive/master.zip">Download ZIP</a>
+
+ </div>
+ </div>
+
+ <div class="js-modal-downloading" hidden>
+ <div class="py-2 px-3">
+ <h4 class="lh-condensed mb-3">Downloading<span class="AnimatedEllipsis"></span></h4>
+ <p class="text-gray">
+ Want to be notified of new releases in
+ <span class="text-bold">DEC05EBA/sibs</span>?
+ </p>
+ </div>
+ <div class="width-full d-flex">
+ <a rel="nofollow" class="get-repo-btn btn btn-outline" style="width: 50%" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;download popover&quot;,&quot;repository_id&quot;:113503905,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d103c2eaf567fb2b6967ddc80957fcd7b9497b9befa525741cff9d4ae73ad57e" href="/login?return_to=https%3A%2F%2Fgithub.com%2FDEC05EBA%2Fsibs">Sign in</a>
+ <a rel="nofollow" class="get-repo-btn btn btn-primary" style="width: 50%" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;download popover&quot;,&quot;repository_id&quot;:113503905,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b77e31f629e28252308ea2805a11a6ddaae44b7b262d4ebed3fdedb8d03d2914" href="/join?branch=master&amp;source=download&amp;source_repo=DEC05EBA%2Fsibs">Sign up</a>
+ </div>
+ </div>
+
+ <div class="js-modal-download-mac py-2 px-3 d-none">
+ <h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="AnimatedEllipsis"></span></h4>
+ <p class="text-gray">If nothing happens, <a href="https://desktop.github.com/">download GitHub Desktop</a> and try again.</p>
+ <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
+ </div>
+
+ <div class="js-modal-download-windows py-2 px-3 d-none">
+ <h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="AnimatedEllipsis"></span></h4>
+ <p class="text-gray">If nothing happens, <a href="https://desktop.github.com/">download GitHub Desktop</a> and try again.</p>
+ <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
+ </div>
+
+ <div class="js-modal-download-xcode py-2 px-3 d-none">
+ <h4 class="lh-condensed mb-3">Launching Xcode<span class="AnimatedEllipsis"></span></h4>
+ <p class="text-gray">If nothing happens, <a href="https://developer.apple.com/xcode/">download Xcode</a> and try again.</p>
+ <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
+ </div>
+
+ <div class="js-modal-download-visual-studio py-2 px-3 d-none">
+ <h4 class="lh-condensed mb-3">Launching Visual Studio<span class="AnimatedEllipsis"></span></h4>
+ <p class="text-gray">If nothing happens, <a href="https://visualstudio.github.com/">download the GitHub extension for Visual Studio</a> and try again.</p>
+ <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
+ </div>
+
+ </div>
+ </div>
+</details>
+
+</div>
+
+
+
+
+
+ <div class="commit-tease js-details-container Details d-flex rounded-top-1" data-issue-and-pr-hovercards-enabled>
+
+<div class="AvatarStack flex-self-start ">
+ <div class="AvatarStack-body" aria-label="DEC05EBA">
+ <a class="avatar" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/DEC05EBA/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/DEC05EBA">
+ <img height="20" width="20" alt="@DEC05EBA" src="https://avatars3.githubusercontent.com/u/3404331?s=60&amp;v=4" />
+</a> </div>
+</div>
+
+ <div class="flex-auto f6 mr-3">
+
+ <a href="/DEC05EBA/sibs/commits?author=DEC05EBA"
+ class="commit-author tooltipped tooltipped-s user-mention"
+ aria-label="View all commits by DEC05EBA">DEC05EBA</a>
+
+
+
+
+
+ <a data-pjax="true" title="Add error_on_warning option to allow turning compiler warnings to errors" class="message text-inherit" href="/DEC05EBA/sibs/commit/00007a7ff541997970b5330ce11d7a9948a8c455">Add error_on_warning option to allow turning compiler warnings to errors</a>
+
+ </div>
+ <div class="no-wrap d-flex flex-self-start flex-items-baseline">
+ <span class="mr-2 flex-self-center">
+ <include-fragment accept="text/html; fragment" src="/DEC05EBA/sibs/commit/00007a7ff541997970b5330ce11d7a9948a8c455/rollup" class="d-inline"></include-fragment>
+ </span>
+ <span class="mr-1">Latest commit</span>
+ <a class="commit-tease-sha mr-1" href="/DEC05EBA/sibs/commit/00007a7ff541997970b5330ce11d7a9948a8c455" data-pjax>
+ 00007a7
+ </a>
+ <span itemprop="dateModified"><relative-time datetime="2019-12-31T08:36:54Z" class="no-wrap">Dec 31, 2019</relative-time></span>
+ </div>
+ </div>
+
+
+
+<div class="file-wrap">
+ <a class="d-none js-permalink-shortcut" data-hotkey="y" href="/DEC05EBA/sibs/tree/00007a7ff541997970b5330ce11d7a9948a8c455">Permalink</a>
+
+ <table class="files js-navigation-container js-active-navigation-container" data-pjax>
+ <thead>
+ <tr>
+ <th><span class="sr-only">Type</span></th>
+ <th><span class="sr-only">Name</span></th>
+ <th><span class="sr-only">Latest commit message</span></th>
+ <th><span class="sr-only">Commit time</span></th>
+ </tr>
+ </thead>
+
+
+ <tbody>
+ <tr class="warning include-fragment-error">
+ <td class="icon"><svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg></td>
+ <td class="content" colspan="3">Failed to load latest commit information.</td>
+ </tr>
+
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="backend" id="b43fdd98b1fd705ae4c3a10cf25aad8a-a803afe6e4e25856b33d4b457174cf0a29b2e166" href="/DEC05EBA/sibs/tree/master/backend">backend</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Add error_on_warning option to allow turning compiler warnings to errors" class="link-gray" href="/DEC05EBA/sibs/commit/00007a7ff541997970b5330ce11d7a9948a8c455">Add error_on_warning option to allow turning compiler warnings to errors</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-31T08:36:54Z" class="no-wrap">Dec 31, 2019</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="cmake" id="272ceadb8458515b2ae4b5630a6029cc-e1d9f73340c4bea2a9749810591ccb319f9ad63e" href="/DEC05EBA/sibs/tree/master/cmake">cmake</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Add OpenBSD support" class="link-gray" href="/DEC05EBA/sibs/commit/637ff3632ec181d5dd5f6b39fd31771094e5498c">Add OpenBSD support</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-09-30T21:54:28Z" class="no-wrap">Sep 30, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="depends" id="847c8ebb0e477b63fbc34fc0cd42b404-ef75c126380ada5d4a6e8062ef83eb1ebd92a9ac" href="/DEC05EBA/sibs/tree/master/depends">depends</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Temporary always build binaries" class="link-gray" href="/DEC05EBA/sibs/commit/73241e4540f43df667d99678e07e96f1aa0188c0">Temporary always build binaries</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-11-25T14:26:29Z" class="no-wrap">Nov 25, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="examples" id="bfebe34154a0dfd9fc7b447fc9ed74e9-2e6662e3c7c5c8247cc691f3c4da14d5564d7ce0" href="/DEC05EBA/sibs/tree/master/examples">examples</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Move build files into platform specific location" class="link-gray" href="/DEC05EBA/sibs/commit/dbc8eaed06c3078738479f4e181de496ee95a2f4">Move build files into platform specific location</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-11-09T11:06:08Z" class="no-wrap">Nov 9, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="external" id="6a21b6995a068148bbb65c8f949b3fb2-18e2794fd77773780342d40dd67e2e375322e1c2" href="/DEC05EBA/sibs/tree/master/external">external</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Use packages list to find packages" class="link-gray" href="/DEC05EBA/sibs/commit/f272bd554bdc9df2b91cecdf7ba6c201ce6e195f">Use packages list to find packages</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-01-04T00:01:42Z" class="no-wrap">Jan 4, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="include" id="d436eb0fd9de10b54a828ce6435f7e81-5db66b0f22e721bdee8d3002746584b3be8f3c45" href="/DEC05EBA/sibs/tree/master/include">include</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Add error_on_warning option to allow turning compiler warnings to errors" class="link-gray" href="/DEC05EBA/sibs/commit/00007a7ff541997970b5330ce11d7a9948a8c455">Add error_on_warning option to allow turning compiler warnings to errors</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-31T08:36:54Z" class="no-wrap">Dec 31, 2019</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="msvc" id="3a69e825de46a19a06d800acd98739a9-5576bc6f4f960b98042120da2a505417086f5ea7" href="/DEC05EBA/sibs/tree/master/msvc">msvc</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Add more include paths for msvc" class="link-gray" href="/DEC05EBA/sibs/commit/002faf0800a6c027634a6bd1bde825fdc6425685">Add more include paths for msvc</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-10-27T16:21:15Z" class="no-wrap">Oct 27, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="scripts" id="d6c5855a62cf32a4dadbc2831f0f295f-bf766da6bdeb05b0b20f9372957e8f9b3ca885f2" href="/DEC05EBA/sibs/tree/master/scripts">scripts</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Compile cmake sub project as cmake" class="link-gray" href="/DEC05EBA/sibs/commit/72968d448199381949d6b78368742e7e74e68559">Compile cmake sub project as cmake</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2019-06-08T20:04:41Z" class="no-wrap">Jun 8, 2019</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="src" id="25d902c24283ab8cfbac54dfa101ad31-7f92a4ece18563fc6783b0d3e382c89a71d827d1" href="/DEC05EBA/sibs/tree/master/src">src</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Add error_on_warning option to allow turning compiler warnings to errors" class="link-gray" href="/DEC05EBA/sibs/commit/00007a7ff541997970b5330ce11d7a9948a8c455">Add error_on_warning option to allow turning compiler warnings to errors</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-31T08:36:54Z" class="no-wrap">Dec 31, 2019</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="This path skips through empty directories" id="41b852ec20092b38a265f0bcf8d27d2c-1f3ff73c5e6070cfb100d819fc3bf2bf8ef4731a" href="/DEC05EBA/sibs/tree/master/static/windows"><span class="simplified-path">static/</span>windows</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Fix bundle for non system libraries" class="link-gray" href="/DEC05EBA/sibs/commit/f276b50b6a62bb56971356d7c66fd7677a357c2e">Fix bundle for non system libraries</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-10-02T19:15:16Z" class="no-wrap">Oct 2, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="tests" id="b61a6d542f9036550ba9c401c80f00ef-de1eed4dad8bf526136e2a1a865d31c68ed403ca" href="/DEC05EBA/sibs/tree/master/tests">tests</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Fix version range not ending at next major version when not defining end" class="link-gray" href="/DEC05EBA/sibs/commit/f3d534c68a4159ea2649f1ba4197a873faaf01a3">Fix version range not ending at next major version when not defining end</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-10-18T08:08:52Z" class="no-wrap">Oct 18, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".gitignore" id="a084b794bc0759e7a6b77810e01874f2-a0c1f8d1ed1c39480dcff9ee42eac874367ae282" href="/DEC05EBA/sibs/blob/master/.gitignore">.gitignore</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Fix for windows &amp; mingw" class="link-gray" href="/DEC05EBA/sibs/commit/42101a063dfa74d70df8eb2532c529eeb57efaf6">Fix for windows &amp; mingw</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-10-05T05:15:59Z" class="no-wrap">Oct 5, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".gitmodules" id="8903239df476d7401cf9e76af0252622-9f3d5bc85048ff51a9ff3ef2ba5cb2c5dc876405" href="/DEC05EBA/sibs/blob/master/.gitmodules">.gitmodules</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Use ninja library to generate build instead of raw string" class="link-gray" href="/DEC05EBA/sibs/commit/d5173a9f6ef3203085f4b985ebf4b0670be72088">Use ninja library to generate build instead of raw string</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-09-20T12:57:40Z" class="no-wrap">Sep 20, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="CMakeLists.txt" id="af3b638bc2a3e6c650974192a53c7291-1febc5e4a0a68e0dccfa06eab15c5162085c5bdf" href="/DEC05EBA/sibs/blob/master/CMakeLists.txt">CMakeLists.txt</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Use ranges for dependency version" class="link-gray" href="/DEC05EBA/sibs/commit/bf6880b98cb79d7a40e8556364e92df29ed460d4">Use ranges for dependency version</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-10-18T05:07:19Z" class="no-wrap">Oct 18, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="LICENSE" id="9879d6db96fd29134fc802214163b95a-94a9ed024d3859793618152ea559a168bbcbb5e2" itemprop="license" href="/DEC05EBA/sibs/blob/master/LICENSE">LICENSE</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Initial commit" class="link-gray" href="/DEC05EBA/sibs/commit/104f43cdbbe7378ff8bbb77e7cd5d8f93f4ac459">Initial commit</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2017-12-07T22:14:45Z" class="no-wrap">Dec 7, 2017</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="README.md" id="04c6e90faac2675aa89e2176d2eec7d8-b6b562a1353936e1c91c35e6ed056e32836e0d90" href="/DEC05EBA/sibs/blob/master/README.md">README.md</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Add error_on_warning option to allow turning compiler warnings to errors" class="link-gray" href="/DEC05EBA/sibs/commit/00007a7ff541997970b5330ce11d7a9948a8c455">Add error_on_warning option to allow turning compiler warnings to errors</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-31T08:36:54Z" class="no-wrap">Dec 31, 2019</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="install.sh" id="3fbb47e318cd8802bd325e7da9aaabe8-05c6b8fd1af964839237b5016e073a8e6d9d0c65" href="/DEC05EBA/sibs/blob/master/install.sh">install.sh</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Move build files into platform specific location" class="link-gray" href="/DEC05EBA/sibs/commit/dbc8eaed06c3078738479f4e181de496ee95a2f4">Move build files into platform specific location</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-11-09T11:06:08Z" class="no-wrap">Nov 9, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="preview.png" id="154e07e3ace7fed93dc0a112d442dee5-e5c72344feab3fbd279278fd5a73fbcc840d58a8" href="/DEC05EBA/sibs/blob/master/preview.png">preview.png</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Update README with info about IDE support" class="link-gray" href="/DEC05EBA/sibs/commit/e53ed73eb0b6a7cc07c4c4a2588c619a22173383">Update README with info about IDE support</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-10-10T02:56:09Z" class="no-wrap">Oct 10, 2018</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="project.conf" id="9b93f6960d5d4b711b8e0f1ed6364d67-f7915a8edd5176baa55da3772a26a1002ea9ca17" href="/DEC05EBA/sibs/blob/master/project.conf">project.conf</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Update version" class="link-gray" href="/DEC05EBA/sibs/commit/ec6d760688fca5ca73626642588f49d38ef21e24">Update version</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2019-04-09T15:36:32Z" class="no-wrap">Apr 9, 2019</time-ago></span>
+ </td>
+ </tr>
+ <tr class="js-navigation-item">
+ <td class="icon">
+ <svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
+ <img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
+ </td>
+ <td class="content">
+ <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="sibs_multilib.kdev4" id="a8a6b29fc27ca2d31d558d33f00940fb-298eb300d026a0abfa6b15812612abf34564d5e9" href="/DEC05EBA/sibs/blob/master/sibs_multilib.kdev4">sibs_multilib.kdev4</a></span>
+ </td>
+ <td class="message">
+ <span class="css-truncate css-truncate-target">
+ <a data-pjax="true" title="Add sanitize build/test option, currently ignored if gcc is not used" class="link-gray" href="/DEC05EBA/sibs/commit/ad2bcd29178d8f54af5d2ea0763c46b38fc3f131">Add sanitize build/test option, currently ignored if gcc is not used</a>
+ </span>
+ </td>
+ <td class="age">
+ <span class="css-truncate css-truncate-target"><time-ago datetime="2018-05-24T01:23:53Z" class="no-wrap">May 24, 2018</time-ago></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+</div>
+
+
+
+
+ <div id="readme" class="Box Box--condensed md js-code-block-container">
+ <div class="Box-header d-flex flex-items-center flex-justify-between px-2">
+ <h3 class="Box-title pr-3">
+ <svg class="octicon octicon-book" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z"/></svg>
+ README.md
+ </h3>
+ </div>
+ <div class="Popover anim-scale-in js-tagsearch-popover"
+ hidden
+ data-tagsearch-url="/DEC05EBA/sibs/find-symbols"
+ data-tagsearch-ref="master"
+ data-tagsearch-path="README.md"
+ data-tagsearch-lang="Markdown"
+ data-hydro-click="{&quot;event_type&quot;:&quot;code_navigation.click_on_symbol&quot;,&quot;payload&quot;:{&quot;action&quot;:&quot;click_on_symbol&quot;,&quot;repository_id&quot;:113503905,&quot;ref&quot;:&quot;master&quot;,&quot;language&quot;:&quot;Markdown&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;C60C:3BB7E:8C0ADF0:D5AAC12:5E0C4832&quot;,&quot;originating_url&quot;:&quot;https://github.com/DEC05EBA/sibs&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}"
+ data-hydro-click-hmac="370feddf2f8cef2977295e0ca3e641d50bc710ed2fe7898a868e7c432e7da110">
+ <div class="Popover-message Popover-message--large Popover-message--top-left TagsearchPopover mt-1 mb-4 mx-auto Box box-shadow-large">
+ <div class="TagsearchPopover-content js-tagsearch-popover-content overflow-auto" style="will-change:transform;">
+ </div>
+ </div>
+</div>
+
+ <div class="Box-body">
+ <article class="markdown-body entry-content p-5" itemprop="text"><h1><a id="user-content-simple-build-system-for-native-languages" class="anchor" aria-hidden="true" href="#simple-build-system-for-native-languages"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Simple Build System for Native Languages</h1>
+<p>Sibs is inspired by <a href="https://github.com/rust-lang/cargo/">Cargo</a>, you can think of it like a C/C++/Zig version of Cargo. Sibs can build cmake projects as well, so you can use sibs with existing cmake projects with minimal work.
+List of packages can be found at <a href="https://gitlab.com/DEC05EBA/sibs_packages/raw/master/packages.json" rel="nofollow">https://gitlab.com/DEC05EBA/sibs_packages/raw/master/packages.json</a></p>
+<h1><a id="user-content-usage" class="anchor" aria-hidden="true" href="#usage"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Usage</h1>
+<pre><code>Usage: sibs COMMAND
+
+Simple Build System for Native Languages
+
+Commands:
+ build Build a project that contains a project.conf file
+ new Create a new project
+ init Initialize project in an existing directory
+ test Build and run tests for a sibs project
+ package Create a redistributable package from a sibs project. Note: Redistributable packages can't use system packages to build
+ platform Print name of platform (to stdout) and exit
+ platforms Print list of supported platforms (to stdout) and exit
+</code></pre>
+<h1><a id="user-content-examples" class="anchor" aria-hidden="true" href="#examples"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Examples</h1>
+<p>Here is a minimal config file:</p>
+<pre><code>[package]
+name = "hello_world"
+type = "executable"
+version = "0.1.0"
+platforms = ["any"]
+</code></pre>
+<p>There are full project examples with dependencies in the examples directory.
+Use <code>sibs init</code> to create a project, which includes a config file to get started and then build with with <code>sibs build</code>
+and run the binary under <code>sibs-build/&lt;platform&gt;/debug/&lt;executable_name&gt;</code>.</p>
+<h3><a id="user-content-supported-platforms" class="anchor" aria-hidden="true" href="#supported-platforms"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Supported platforms</h3>
+<table>
+<thead>
+<tr>
+<th>Linux</th>
+<th>Windows(1)</th>
+<th>MacOS</th>
+<th>OpenBSD</th>
+<th>Haiku</th>
+<th>...</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>✓</td>
+<td>✓</td>
+<td>✓</td>
+<td>✓</td>
+<td>✓</td>
+<td>TBD(2)</td>
+</tr>
+</tbody>
+</table>
+<p>(1). Msvc, mingw-w64 and cygwin are supported. Cygwin is defined as a linux platform while mingw-w64 is defined as a windows system.<br>
+(2). Sibs is intended to work on as many platforms as possible, you can help by porting sibs to another platform. Should only be minor changes if the platform is unix-like.</p>
+<p>Linux is the primary platform, the platform which master branch is guaranteed to compile on.</p>
+<h1><a id="user-content-dependencies" class="anchor" aria-hidden="true" href="#dependencies"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Dependencies</h1>
+<p><code>libcurl, libarchive, libgit2, ninja, cmake</code></p>
+<h1><a id="user-content-installation" class="anchor" aria-hidden="true" href="#installation"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Installation</h1>
+<h2><a id="user-content-posix-linux-macos-openbsd-haiku" class="anchor" aria-hidden="true" href="#posix-linux-macos-openbsd-haiku"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Posix (Linux, MacOS, OpenBSD, Haiku)</h2>
+<p><code>./cmake/install.sh</code></p>
+<h2><a id="user-content-windows" class="anchor" aria-hidden="true" href="#windows"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Windows</h2>
+<p>Use vcpkg to install the required dependencies and then generate visual studio (or another system) build files using CMakeLists.txt</p>
+<h1><a id="user-content-usage-1" class="anchor" aria-hidden="true" href="#usage-1"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Usage</h1>
+<p>After you have installed sibs, execute <code>sibs</code> without any arguments and you will get a list of commands and description for them. For debug builds, the created binary/library files will be located under <code>sibs-build/&lt;platform&gt;/debug</code>. For example on linux x86_64, the path for binaries would be: <code>sibs-build/linux_x86_64/debug</code>.</p>
+<h1><a id="user-content-quirks" class="anchor" aria-hidden="true" href="#quirks"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Quirks</h1>
+<p>Zig support has not been tested properly yet and currently always links to c library.
+You can run zig tests with <code>sibs test --file filepath</code> or <code>sibs test --all-files</code>.
+Currently zig tests are cached because ninja build system is used, which means if source files do not change between runs.
+Currently zig files generate header files and include exported functions into <code>sibs-build/&lt;platform&gt;/generated-headers/zig</code> and the generated headers
+are usable from c/c++ by using including: <code>#include &lt;zig/INSERT_ZIG_HEADER_FILE_NAME_HERE&gt;</code>.
+If your project contains zig files then it will currently only run on Linux, Windows and MacOS as zig doesn't support more platforms at the moment.</p>
+<h1><a id="user-content-package" class="anchor" aria-hidden="true" href="#package"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Package</h1>
+<p>Sibs supports creating a redistributable packages of projects (currently only on Linux, run <code>sibs package --bundle</code>). Packaging is in testing phase and may not work for all projects. Currently you need to have python3 and ldd installed and also set the environment variable SIBS_SCRIPT_DIR to scripts sub directory which is in sibs root directory (the directory that contains package.py).
+Currently a script file is generated which should be used to run the project. The name of the script file is the same as project. This script file will most likely to be removed later. Do NOT run the executable called "program".
+Because creating a package is currently done by copying c/c++ libraries and precompiled shared libraries on Linux usually depend on gcc runtime libraries which are very large, the distributable package becomes very large; a hello world application extracted from its archive is 6 megabytes...
+If you want to reduce the size of your package then you will have to compile your project and each dependency from source with clang/musl (gcc c++ runtime is 14mb while clang c++ runtime is 800kb!).</p>
+<p>The package command also comes with --bundle-install option which reduces the size of the distributable package by removing libraries in the package that can be downloaded online, and instead the user will download missing libraries when launching the application for the first time (the libraries are cached). This option is good because if the user already has the libraries installed on their system with a package managed then the user dont have to download the libraries and if the user has other software that was distributed using sibs, then their libraries will be shared with your projects; meaning if one project has a library of one version then it's shared with all software that uses same version of the library.</p>
+<p>Users are required to manually install some libraries as they can't be included in a distributed package (install with their package manager). These libraries are commonly gpu driver libraries, which vary even if you have the same cpu architecture.
+This requirement might be removed later, if the gpu driver libraries required can somehow be detected and downloaded cross platform.
+Libraries that are downloaded are available at: <a href="https://github.com/DEC05EBA/libraries">https://github.com/DEC05EBA/libraries</a></p>
+<h1><a id="user-content-cross-compilation" class="anchor" aria-hidden="true" href="#cross-compilation"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Cross compilation</h1>
+<p>Automatic cross compilation (<code>sibs build --platform &lt;platform&gt;</code>)currently only works from linux_x86_64 to win64 by using mingw-w64. You need to install <code>mingw-w64-gcc</code> and optionally <code>mingw-w64-pkg-config</code> if you want to use mingw-w64 system installed packages.
+Cross compilation does currently not work if you have zig files as zig doesn't support libc when cross compiling at the moment.
+You can run <code>scripts/mingw_package.py</code> to automatically copy dynamic library dependencies of your executable to the same directory as the executable, so the library can be found when running the executable on windows; this also allows you to bundle your application and distribute it without external dependencies. To run <code>scripts/mingw_package.py</code> you need to install pefile python library <code>sudo pip install pefile</code>.</p>
+<p>Manual cross compilation can be done by replacing c, c++ compilers and linker (ar) using the environment variable CC, CXX and AR.</p>
+<h1><a id="user-content-ide-support" class="anchor" aria-hidden="true" href="#ide-support"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>IDE support</h1>
+<p>Sibs generates a compile_commands.json in the project root directory when executing <code>sibs build</code> and tools that support clang completion can be used, such as YouCompleteMe or cquery.
+There are several editors that support YouCompleteMe, including Vim, Emacs and Visual Studio Code. Visual studio code now also supports clang completion with C/C++ extension by Microsoft. I recommend using Visual Studio Code along with cquery (<a href="https://github.com/cquery-project/cquery/wiki">https://github.com/cquery-project/cquery/wiki</a>), which gives you very good IDE support for your C/C++ projects:
+<a target="_blank" rel="noopener noreferrer" href="/DEC05EBA/sibs/blob/master/preview.png"><img src="/DEC05EBA/sibs/raw/master/preview.png" alt="Image of cquery extension in Visual Studio Code" style="max-width:100%;"></a>
+If you are using Visual Studio Code then you should add .vscode/ to .gitignore or Visual Studio Code will lag a lot (because cquery adds a lot of files in .vscode directory).</p>
+<h1><a id="user-content-tests" class="anchor" aria-hidden="true" href="#tests"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Tests</h1>
+<p>If your project contains a sub directory called "tests" then that directory will be used a test project. The test directory may contain a project.conf file which can contain [dependencies] block for specifying test only dependencies. The test automatically includes the parent project as a dependency.</p>
+<h1><a id="user-content-project-configuration-template" class="anchor" aria-hidden="true" href="#project-configuration-template"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Project configuration template</h1>
+<div class="highlight highlight-source-toml"><pre>[<span class="pl-en">package</span>]
+<span class="pl-smi">name</span> = <span class="pl-s"><span class="pl-pds">"</span>packageName<span class="pl-pds">"</span></span>
+<span class="pl-smi">type</span> = <span class="pl-s"><span class="pl-pds">"</span>library<span class="pl-pds">"</span></span>
+<span class="pl-smi">version</span> = <span class="pl-s"><span class="pl-pds">"</span>0.1.0<span class="pl-pds">"</span></span>
+<span class="pl-smi">platforms</span> = [<span class="pl-s"><span class="pl-pds">"</span>any<span class="pl-pds">"</span></span>]
+<span class="pl-smi">authors</span> = [<span class="pl-s"><span class="pl-pds">"</span>DEC05EBA &lt;0xdec05eba@gmail.com&gt;<span class="pl-pds">"</span></span>]
+
+[<span class="pl-en">dependencies</span>]
+<span class="pl-smi">catch2</span> = <span class="pl-s"><span class="pl-pds">"</span>0.1.0<span class="pl-pds">"</span></span>
+<span class="pl-smi">xxhash</span> = <span class="pl-s"><span class="pl-pds">"</span>0.1.0<span class="pl-pds">"</span></span>
+<span class="pl-smi">cisb</span> = { <span class="pl-smi">git</span> = <span class="pl-s"><span class="pl-pds">"</span>https://github.com/DEC05EBA/cisb.git<span class="pl-pds">"</span></span>, <span class="pl-smi">branch</span> = <span class="pl-s"><span class="pl-pds">"</span>master<span class="pl-pds">"</span></span>, <span class="pl-smi">revision</span> = <span class="pl-s"><span class="pl-pds">"</span>c0c46a4<span class="pl-pds">"</span></span> }
+
+[<span class="pl-en">lang</span>.<span class="pl-en">c</span>]
+<span class="pl-smi">version</span> = <span class="pl-s"><span class="pl-pds">"</span>c11<span class="pl-pds">"</span></span>
+
+[<span class="pl-en">lang</span>.<span class="pl-en">cpp</span>]
+<span class="pl-smi">version</span> = <span class="pl-s"><span class="pl-pds">"</span>c++14<span class="pl-pds">"</span></span>
+
+[<span class="pl-en">define</span>]
+<span class="pl-smi">BOOST_ASIO_SEPERATE_COMPILATION</span> = <span class="pl-s"><span class="pl-pds">"</span>1<span class="pl-pds">"</span></span>
+
+[<span class="pl-en">define</span>.<span class="pl-en">static</span>]
+<span class="pl-smi">BOOST_COMPILE_STATIC</span> = <span class="pl-s"><span class="pl-pds">"</span>1<span class="pl-pds">"</span></span>
+
+[<span class="pl-en">define</span>.<span class="pl-en">dynamic</span>]
+<span class="pl-smi">BOOST_COMPILE_DYNAMIC</span> = <span class="pl-s"><span class="pl-pds">"</span>1<span class="pl-pds">"</span></span>
+
+[<span class="pl-en">config</span>]
+<span class="pl-smi">include_dirs</span> = [<span class="pl-s"><span class="pl-pds">"</span>include<span class="pl-pds">"</span></span>]
+<span class="pl-smi">ignore_dirs</span> = [<span class="pl-s"><span class="pl-pds">"</span>examples<span class="pl-pds">"</span></span>]
+<span class="pl-smi">expose_include_dirs</span> = [<span class="pl-s"><span class="pl-pds">"</span>include<span class="pl-pds">"</span></span>]
+<span class="pl-smi">error_on_warning</span> = <span class="pl-s"><span class="pl-pds">"</span>true<span class="pl-pds">"</span></span>
+
+[<span class="pl-en">config</span>.<span class="pl-en">win32</span>.<span class="pl-en">static</span>.<span class="pl-en">debug</span>]
+<span class="pl-smi">lib</span> = <span class="pl-s"><span class="pl-pds">"</span>windows/x86/static/debug<span class="pl-pds">"</span></span>
+
+[<span class="pl-en">config</span>.<span class="pl-en">win32</span>.<span class="pl-en">static</span>.<span class="pl-en">release</span>]
+<span class="pl-smi">lib</span> = <span class="pl-s"><span class="pl-pds">"</span>windows/x86/static/release<span class="pl-pds">"</span></span>
+
+[<span class="pl-en">config</span>.<span class="pl-en">win64</span>.<span class="pl-en">static</span>.<span class="pl-en">debug</span>]
+<span class="pl-smi">lib</span> = <span class="pl-s"><span class="pl-pds">"</span>windows/x64/static/debug<span class="pl-pds">"</span></span>
+
+[<span class="pl-en">cmake</span>]
+<span class="pl-smi">dir</span> = <span class="pl-s"><span class="pl-pds">"</span>.<span class="pl-pds">"</span></span>
+<span class="pl-smi">args</span> = [<span class="pl-s"><span class="pl-pds">"</span>ENTITYX_RUN_BENCHMARKS=0<span class="pl-pds">"</span></span>]
+
+[<span class="pl-en">cmake</span>.<span class="pl-en">static</span>]
+<span class="pl-smi">args</span> = [<span class="pl-s"><span class="pl-pds">"</span>ENTITYX_BUILD_SHARED=0<span class="pl-pds">"</span></span>]
+
+[<span class="pl-en">cmake</span>.<span class="pl-en">dynamic</span>]
+<span class="pl-smi">args</span> = [<span class="pl-s"><span class="pl-pds">"</span>ENTITYX_BUILD_SHARED=1<span class="pl-pds">"</span></span>]</pre></div>
+<h2><a id="user-content-package-1" class="anchor" aria-hidden="true" href="#package-1"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>package</h2>
+<h3><a id="user-content-name" class="anchor" aria-hidden="true" href="#name"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>name</h3>
+<p>Required</p>
+<h3><a id="user-content-type" class="anchor" aria-hidden="true" href="#type"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>type</h3>
+<p>Required. Should be one of: "executable", "static", "dynamic", "library"</p>
+<h3><a id="user-content-version" class="anchor" aria-hidden="true" href="#version"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>version</h3>
+<p>Required. Version string has to be in the format of "xxx.yyy.zzz" where xxx is major, yyy is minor and zzz is patch. Version format is based on <a href="https://semver.org/spec/v2.0.0.html" rel="nofollow">semver 2.0.0</a></p>
+<h3><a id="user-content-platforms" class="anchor" aria-hidden="true" href="#platforms"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>platforms</h3>
+<p>Required. A list of platforms the package supports. Run <code>sibs platforms</code> to view a list of supported platforms.
+If platforms contains "any" then there is no need to specify other platforms</p>
+<h3><a id="user-content-authors" class="anchor" aria-hidden="true" href="#authors"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>authors</h3>
+<p>Optional. A list of authors</p>
+<h2><a id="user-content-dependencies-1" class="anchor" aria-hidden="true" href="#dependencies-1"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>dependencies</h2>
+<p>Optional. A list of dependencies which are specified in name-value pairs where the name is the name of the dependency, which should match the dependency name under the packages name specified in its project.conf file.
+The value should be a version string, which specified the range of versions that you want to accept as a dependency to only allow dependency version that has the features you need and the version which hasn't changed its interface.
+These are examples of the version string format:</p>
+<pre><code># Version 1.0.0 or above and less than 2.0.0, same as &gt;=1.0.0 and &lt;2.0.0
+1.0.0
+# Version 1.0.0 or above
+&gt;=1.0.0
+# Version above 1.0.0
+&gt;1.0.0
+# Version exactly 1.0.0
+=1.0.0
+# Version less than 1.0.0
+&lt;1.0.0
+# Version 1.0 or above but less than 2.0
+1.0 and &lt;2.0
+# Version above 1.0 but less or equal to 1.3.2
+&gt;1 and &lt;=1.3.2
+</code></pre>
+<p>Dependencies are automatically choosen from system (linux, mac) or if no package manager exists, then it's download from an url (see <a href="https://gitlab.com/DEC05EBA/sibs_packages" rel="nofollow">https://gitlab.com/DEC05EBA/sibs_packages</a>).
+The dependency can also be a git project, in which case it will have the fields 'git' and optionally 'branch' and 'revision'.
+'git' specifies the url to the git repository, 'branch' is the git branch that should be used - defaults to 'master'.
+'revision' is the git revision to checkout, defaults to 'HEAD' (latest commit).</p>
+<p>Dependencies can also be added to a project but adding sub directories with project.conf file.
+The best way to do this is to create another git project for the dependency and then adding that git project as a git submodule.
+Using sub projects allows you to modify dependency and propagate changes to dependant project without pushing changes to remote git repository (faster development).</p>
+<h2><a id="user-content-lang" class="anchor" aria-hidden="true" href="#lang"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>lang.*</h2>
+<p>Optional. Allows you to change language specific configuration. [lang.c] is for C and [lang.cpp] is for C++.
+Version specifies the language version, for [lang.c] the version can be ansi, c89, c99 or c11 - if not set, c11 will be used.
+For [lang.cpp] the version can be c++11, c++14 or c++17 - if not set, c++14 will be used</p>
+<h2><a id="user-content-define" class="anchor" aria-hidden="true" href="#define"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>define</h2>
+<p>Optional. A list of definitions which are specified in name-value pairs where the name is the preprocessor to define (in c: #define name value)</p>
+<h2><a id="user-content-definestatic" class="anchor" aria-hidden="true" href="#definestatic"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>define.static</h2>
+<p>Works like [define], but these definitions are only used when building static project. If a definition with the same exists in [define], then it's overwritten</p>
+<h2><a id="user-content-definedynamic" class="anchor" aria-hidden="true" href="#definedynamic"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>define.dynamic</h2>
+<p>Works like [define], but these definitions are only used when building dynamic project. If a definition with the same exists in [define], then it's overwritten</p>
+<h2><a id="user-content-config" class="anchor" aria-hidden="true" href="#config"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>config</h2>
+<h3><a id="user-content-include_dirs" class="anchor" aria-hidden="true" href="#include_dirs"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>include_dirs</h3>
+<p>Optional. A list of directories which should be specified as global include directories when compiling. This means that instead of using relative paths to header files, you can include the directory with headers and then you only have to specify the header name when using #include</p>
+<h3><a id="user-content-ignore_dirs" class="anchor" aria-hidden="true" href="#ignore_dirs"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>ignore_dirs</h3>
+<p>Optional. A list of directories to ignore. This means that if the ignored directory contains source files, then they wont be included in the build</p>
+<h3><a id="user-content-expose_include_dirs" class="anchor" aria-hidden="true" href="#expose_include_dirs"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>expose_include_dirs</h3>
+<p>Optional. A list of directories which contains (header) files which should be exposed to dependencies as directories to include globally. This means that dependencies can include (header) files from the dependency without specifying path to the dependency</p>
+<h3><a id="user-content-error_on_warning" class="anchor" aria-hidden="true" href="#error_on_warning"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>error_on_warning</h3>
+<p>Optional. This option should be either "true" or "false" and specifies if compiler warnings for the project (and not its dependencies) should work warnings as errors.
+Default value is "false".</p>
+<h2><a id="user-content-config-1" class="anchor" aria-hidden="true" href="#config-1"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>config.*</h2>
+<p>Optional. The name is structured in the following way: config.platform.libraryType.optimizationLevel
+where platform is any of the platforms specified under [package] (or if package contains "any", then it can be any other platform). LibraryType is either "static" or "dynamic" - different configurations depending on if the package is included as a static or dynamic library by a dependant package. OptimizationLevel is either "debug" or "release", depending on which optimization level the "root" package was built with ("root" package is usually the project which is an executable)</p>
+<h3><a id="user-content-lib" class="anchor" aria-hidden="true" href="#lib"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>lib</h3>
+<p>Optional. A directory which contains .lib or .dll files which should be included in dependant projects that uses this project</p>
+<h2><a id="user-content-cmake" class="anchor" aria-hidden="true" href="#cmake"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>cmake</h2>
+<p>Optional. Using this allows you to build cmake projects. If a project contains cmake in the project.conf file, then sibs wont build the project itself
+and will use cmake instead. Sibs will put the built executable and library files into the same location they would be if sibs build them,
+meaning you can have dependency to a cmake project from a sibs project and it will automatically use the dependency library files</p>
+<h3><a id="user-content-dir" class="anchor" aria-hidden="true" href="#dir"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>dir</h3>
+<p>Optional. Directory that contains CMakeLists.txt. If this is not specified, the project root will be used (same location where project.conf is located)</p>
+<h3><a id="user-content-args" class="anchor" aria-hidden="true" href="#args"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>args</h3>
+<p>Optional. List of arguments to cmake. The arguments should be in the same format as "-D" arguments (options) in cmake, except they should exclude "-D".
+Do not use CMAKE_BUILD_TYPE as sibs will automatically use it depending on the optimization level the user specifies when building project.</p>
+<h2><a id="user-content-cmake-1" class="anchor" aria-hidden="true" href="#cmake-1"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>cmake.*</h2>
+<p>Optional. The name is structured in the following way: config.libraryType
+where libraryType is either "static" or "dynamic" - different configurations depending on if the package is included as a static or dynamic library by a dependant package.
+Args specified under [cmake.static] or [cmake.dynamic] are appended to the args specified under [cmake]</p>
+<h1><a id="user-content-todo" class="anchor" aria-hidden="true" href="#todo"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>TODO</h1>
+<p>Make shell scripts portable. Currently they only work with bash... Use shellcheck to find the issues.</p>
+</article>
+ </div>
+ </div>
+
+
+
+ </div>
+</div>
+
+ </main>
+ </div>
+
+
+ </div>
+
+
+<div class="footer container-lg width-full px-3" role="contentinfo">
+ <div class="position-relative d-flex flex-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
+ <ul class="list-style-none d-flex flex-wrap ">
+ <li class="mr-3">&copy; 2019 GitHub, Inc.</li>
+ <li class="mr-3"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
+ <li class="mr-3"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
+ <li class="mr-3"><a data-ga-click="Footer, go to security, text:security" href="https://github.com/security">Security</a></li>
+ <li class="mr-3"><a href="https://githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
+ <li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>
+ </ul>
+
+ <a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://github.com">
+ <svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
+</a>
+ <ul class="list-style-none d-flex flex-wrap ">
+ <li class="mr-3"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
+ <li class="mr-3"><a href="https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
+ <li class="mr-3"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
+ <li class="mr-3"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
+ <li class="mr-3"><a href="https://github.blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
+ <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
+
+ </ul>
+ </div>
+ <div class="d-flex flex-justify-center pb-6">
+ <span class="f6 text-gray-light"></span>
+ </div>
+</div>
+
+
+
+ <div id="ajax-error-message" class="ajax-error-message flash flash-error">
+ <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
+ <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
+ <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
+ </button>
+ You can’t perform that action at this time.
+ </div>
+
+
+ <script crossorigin="anonymous" integrity="sha512-mdrBasYG+QjgS391PSyVkPr06io3gWplCVbPscguetNEHxIEt+mZwCeCxPR9eMNfda6qNuibNFqBo5ak2+O/hg==" type="application/javascript" src="https://github.githubassets.com/assets/compat-bootstrap-99dac16a.js"></script>
+ <script crossorigin="anonymous" integrity="sha512-/VSJJF96vCzSgC6y09Z4FqzjjuXRWOKIq2twF0Nb5/v8xy4qzngnH6Au6TFwbmNN/lborYJsojEpgIbYjoGvHQ==" type="application/javascript" src="https://github.githubassets.com/assets/frameworks-fd548924.js"></script>
+
+ <script crossorigin="anonymous" async="async" integrity="sha512-0mcBYsTTDNy016WuG7Zu/Pb5dsdoVzVb5FlxH4btAPKKyTBKn+5g6N6lXxmMo1WokYH8uOYuLpTgLjU29jSqcA==" type="application/javascript" src="https://github.githubassets.com/assets/github-bootstrap-d2670162.js"></script>
+
+
+
+ <div class="js-stale-session-flash flash flash-warn flash-banner" hidden
+ >
+ <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
+ <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
+ <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
+ </div>
+ <template id="site-details-dialog">
+ <details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark hx_rsm" open>
+ <summary role="button" aria-label="Close dialog"></summary>
+ <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
+ <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
+ <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
+ </button>
+ <div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
+ </details-dialog>
+ </details>
+</template>
+
+ <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
+ <div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
+ </div>
+</div>
+
+ <div aria-live="polite" class="js-global-screen-reader-notice sr-only"></div>
+
+ </body>
+</html>
+
diff --git a/tests/main.c b/tests/main.c
index ff1570b..6d84cfa 100644
--- a/tests/main.c
+++ b/tests/main.c
@@ -1,6 +1,48 @@
+#include <HtmlParser.h>
+#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
-int main(int argc, char **argv) {
- printf("hello, world!\n");
+char* file_get_content(const char *path, long *filesize) {
+ FILE *file = fopen(path, "rb");
+ if(!file) {
+ perror(path);
+ return NULL;
+ }
+
+ fseek(file, 0, SEEK_END);
+ *filesize = ftell(file);
+ fseek(file, 0, SEEK_SET);
+
+ char *data = malloc(*filesize);
+ fread(data, 1, *filesize, file);
+ fclose(file);
+ return data;
+}
+
+static void html_parse_callback(HtmlParser *html_parser, HtmlParseType parse_type, void *userdata_any) {
+ switch(parse_type) {
+ case HTML_PARSE_TAG_START:
+ printf("tag start: %.*s\n", html_parser->tag_name.size, html_parser->tag_name.data);
+ break;
+ case HTML_PARSE_TAG_END:
+ printf("tag end: %.*s\n", html_parser->tag_name.size, html_parser->tag_name.data);
+ break;
+ }
+}
+
+int main() {
+ long filesize;
+ char *file_data = file_get_content("tests/github.html", &filesize);
+ if(!file_data) {
+ fprintf(stderr, "Failed to read from file: tests/github.html\n");
+ return 1;
+ }
+
+ HtmlParser html_parser;
+ html_parser_init(&html_parser, file_data, filesize, html_parse_callback, NULL);
+ html_parser_parse(&html_parser);
+ html_parser_deinit(&html_parser);
+ free(file_data);
return 0;
}