Browse Source

update docs

ruki 2 years ago
parent
commit
35768b7fd1

+ 1 - 0
mirror/about/awesome.html

@@ -126,6 +126,7 @@
 <li><a href="https://github.com/xmake-io/xmake-sublime">xmake-sublime</a>: A Sublime Text 2/3 plugin for Xmake.</li>
 <li><a href="https://github.com/xmake-io/xmake-sublime">xmake-sublime</a>: A Sublime Text 2/3 plugin for Xmake.</li>
 <li><a href="https://github.com/xmake-io/xmake-idea">xmake-idea</a>: A Intellij-IDEA plugin for Xmake.</li>
 <li><a href="https://github.com/xmake-io/xmake-idea">xmake-idea</a>: A Intellij-IDEA plugin for Xmake.</li>
 <li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a>: (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>).</li>
 <li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a>: (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>).</li>
+<li><a href="https://github.com/Mythos-404/xmake.nvim">xmake.nvim</a> (third-party, thanks <a href="https://github.com/Mythos-404">@Mythos_404</a>)</li>
 <li><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: A gradle plugin that integrates xmake seamlessly.</li>
 <li><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: A gradle plugin that integrates xmake seamlessly.</li>
 <li><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>).</li>
 <li><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>).</li>
 <li><a href="https://github.com/Arthapz/xmake-project-manager">xmake-qtcreator</a> (third-party, thanks <a href="https://github.com/Arthapz">@Arthapz</a>).</li>
 <li><a href="https://github.com/Arthapz/xmake-project-manager">xmake-qtcreator</a> (third-party, thanks <a href="https://github.com/Arthapz">@Arthapz</a>).</li>

+ 28 - 0
mirror/about/changelog.html

@@ -93,6 +93,34 @@
 }
 }
 </style>
 </style>
     <h1 id="changelog">Changelog</h1>
     <h1 id="changelog">Changelog</h1>
+<h2 id="v281">v2.8.1</h2>
+<h3 id="newfeatures">New features</h3>
+<ul>
+<li><a href="https://github.com/xmake-io/xmake/pull/3821">#3821</a>: Add longpath option for windows installer</li>
+<li><a href="https://github.com/xmake-io/xmake/pull/3828">#3828</a>: Add support for zypper package manager</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3871">#3871</a>: Improve tools.msbuild to support for upgrading vsproj</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3148">#3148</a>: Support grpc for protobuf</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3889">#3889</a>: Support to add library path for add_links</li>
+<li><a href="https://github.com/orgs/xmake-io/issues/3912">#3912</a>: Add set_pmxxheader to support objc precompiled header</li>
+<li>add_links support library file path</li>
+</ul>
+<h3 id="changes">Changes</h3>
+<ul>
+<li><a href="https://github.com/xmake-io/xmake/issues/3752">#3752</a>: Improve os.getenvs for windows</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3371">#3371</a>: Improve tools.cmake to support ninja generator for wasm</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3777">#3777</a>: Improve to find package from pkg-config</li>
+<li><a href="https://github.com/xmake-io/xmake/pull/3815">#3815</a>: Improve tools.xmake to pass toolchains for windows</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3857">#3857</a>: Improve to generate compile_commands.json</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3892">#3892</a>: Improve to search packages from description</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3916">#3916</a>: Improve to build swift program, support for multiple modules</li>
+<li>Update lua runtime to 5.4.6</li>
+</ul>
+<h3 id="bugsfixed">Bugs fixed</h3>
+<ul>
+<li><a href="https://github.com/xmake-io/xmake/pull/3755">#3755</a>: Fix find_tool from xmake/packages</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3787">#3787</a>: Fix packages from conan 2.x</li>
+<li><a href="https://github.com/orgs/xmake-io/discussions/3839">#3839</a>: Fix vs_runtime for conan 2.x</li>
+</ul>
 <h2 id="v279">v2.7.9</h2>
 <h2 id="v279">v2.7.9</h2>
 <h3 id="newfeatures">New features</h3>
 <h3 id="newfeatures">New features</h3>
 <ul>
 <ul>

+ 4 - 0
mirror/getting_started.html

@@ -496,6 +496,10 @@ $ xmake l
 </ul>
 </ul>
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <ul>
 <ul>
+<li><a href="https://github.com/Mythos-404/xmake.nvim">xmake.nvim</a> (third-party, thanks <a href="https://github.com/Mythos-404">@Mythos_404</a>)</li>
+</ul>
+<p><img src="https://raw.githubusercontent.com/Mythos-404/xmake.nvim/main/assets/XmakePreview.gif" width="650px" /></p>
+<ul>
 <li><p><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</p>
 <li><p><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</p>
 </li>
 </li>
 <li><p><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>)</p>
 <li><p><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>)</p>

+ 6 - 6
mirror/guide/configuration.html

@@ -199,7 +199,7 @@ $ xmake
 <p>For the irregular tool chain directory structure, by simply setting the <a href="https://xmake.io/#/zh-cn/guide/configuration?id=-sdk">--sdk</a> option, it is impossible to completely detect the passing situation Next, you can continue to set the location of the bin directory of the toolchain through this option.</p>
 <p>For the irregular tool chain directory structure, by simply setting the <a href="https://xmake.io/#/zh-cn/guide/configuration?id=-sdk">--sdk</a> option, it is impossible to completely detect the passing situation Next, you can continue to set the location of the bin directory of the toolchain through this option.</p>
 <p>For example: for some special cross toolchains, the compiler bin directory is not in the <code>/home/toolchains_sdkdir/bin</code> position, but is instead in <code>/usr/opt/bin</code></p>
 <p>For example: for some special cross toolchains, the compiler bin directory is not in the <code>/home/toolchains_sdkdir/bin</code> position, but is instead in <code>/usr/opt/bin</code></p>
 <p>At this time, we can add the parameter setting of the bin directory on the basis of setting the sdk parameter to adjust the bin directory of the tool chain.</p>
 <p>At this time, we can add the parameter setting of the bin directory on the basis of setting the sdk parameter to adjust the bin directory of the tool chain.</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/home/toolchains_sdkdir --bin=/usr/opt/bin
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/home/toolchains_sdkdir --bin=/usr/opt/bin
 $ xmake
 $ xmake
 </code></pre>
 </code></pre>
 <h3 id="settoolprefixforcrosstoolchain">Set tool prefix for cross toolchain</h3>
 <h3 id="settoolprefixforcrosstoolchain">Set tool prefix for cross toolchain</h3>
@@ -210,11 +210,11 @@ $ xmake
   - armv7-linux-gcc
   - armv7-linux-gcc
   - aarch64-linux-gcc
   - aarch64-linux-gcc
 </code></pre><p>We now want to choose the armv7 version, then we can append <code>--cross=</code> to configure the compiler tool prefix name, for example:</p>
 </code></pre><p>We now want to choose the armv7 version, then we can append <code>--cross=</code> to configure the compiler tool prefix name, for example:</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/usr/toolsdk --bin=/opt/bin --cross=armv7-linux-
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/usr/toolsdk --bin=/opt/bin --cross=armv7-linux-
 </code></pre>
 </code></pre>
 <h3 id="setthecccompiler">Set the c/c++ compiler</h3>
 <h3 id="setthecccompiler">Set the c/c++ compiler</h3>
 <p>If you want to continue to subdivide and select compilers, continue to add relevant compiler options, for example:</p>
 <p>If you want to continue to subdivide and select compilers, continue to add relevant compiler options, for example:</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/user/toolsdk --cc=armv7-linux-clang --cxx=armv7-linux-clang++
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/user/toolsdk --cc=armv7-linux-clang --cxx=armv7-linux-clang++
 </code></pre>
 </code></pre>
 <p>Of course, we can also specify the full path of the compiler.</p>
 <p>Of course, we can also specify the full path of the compiler.</p>
 <p><code>--cc</code> is used to specify the name of the c compiler, and <code>--cxx</code> is used to specify the name of the c++ compiler.</p>
 <p><code>--cc</code> is used to specify the name of the c compiler, and <code>--cxx</code> is used to specify the name of the c++ compiler.</p>
@@ -227,13 +227,13 @@ $ xmake
 <p>That is to say, while specifying the compiler as <code>c++mips.exe</code>, tell Xmake that it is basically the same as clang ++ usage and parameter options.</p>
 <p>That is to say, while specifying the compiler as <code>c++mips.exe</code>, tell Xmake that it is basically the same as clang ++ usage and parameter options.</p>
 <h3 id="setthecclinker">Set the c/c++ linker</h3>
 <h3 id="setthecclinker">Set the c/c++ linker</h3>
 <p>If you want to continue to subdivide and select the linker, continue to add related linker options, for example:</p>
 <p>If you want to continue to subdivide and select the linker, continue to add related linker options, for example:</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/user/toolsdk --ld=armv7-linux-clang++ --sh=armv7-linux-clang++ --ar=armv7-linux-ar
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/user/toolsdk --ld=armv7-linux-clang++ --sh=armv7-linux-clang++ --ar=armv7-linux-ar
 </code></pre>
 </code></pre>
 <p>ld specifies the executable program linker, sh specifies the shared library program linker, and ar specifies the archiver that generates the static library.</p>
 <p>ld specifies the executable program linker, sh specifies the shared library program linker, and ar specifies the archiver that generates the static library.</p>
 <p>Note: If there are ld/sh/ar environment variables, the value specified in the current environment variable will be used first.</p>
 <p>Note: If there are ld/sh/ar environment variables, the value specified in the current environment variable will be used first.</p>
 <h3 id="setheaderfileandlibrarysearchdirectory">Set header file and library search directory</h3>
 <h3 id="setheaderfileandlibrarysearchdirectory">Set header file and library search directory</h3>
 <p>If there are additional other include/lib directories in the SDK that are not in the standard structure, resulting in cross compilation can not find the library and header files, then we can append the search path through <code>--includedirs</code> and<code>--linkdirs</code>, and then Add additional link libraries via <code>--links</code>.</p>
 <p>If there are additional other include/lib directories in the SDK that are not in the standard structure, resulting in cross compilation can not find the library and header files, then we can append the search path through <code>--includedirs</code> and<code>--linkdirs</code>, and then Add additional link libraries via <code>--links</code>.</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/usr/toolsdk --includedirs=/usr/toolsdk/xxx/include --linkdirs=/usr/toolsdk/xxx/lib --links=pthread
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/usr/toolsdk --includedirs=/usr/toolsdk/xxx/include --linkdirs=/usr/toolsdk/xxx/lib --links=pthread
 </code></pre>
 </code></pre>
 <p>Note: If you want to specify multiple search directories, you can use <code>:</code> or <code>;</code> to separate, which is the path separator of different host platforms, use <code>:</code> under linux / macos, and <code>;</code> under win.</p>
 <p>Note: If you want to specify multiple search directories, you can use <code>:</code> or <code>;</code> to separate, which is the path separator of different host platforms, use <code>:</code> under linux / macos, and <code>;</code> under win.</p>
 <h3 id="setcompileandlinkoptions">Set compile and link options</h3>
 <h3 id="setcompileandlinkoptions">Set compile and link options</h3>
@@ -248,7 +248,7 @@ $ xmake
 <li>arflags: specify the generation parameters of the static library</li>
 <li>arflags: specify the generation parameters of the static library</li>
 </ul>
 </ul>
 <p>e.g:</p>
 <p>e.g:</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/usr/toolsdk --cflags="-DTEST -I/xxx/xxx" --ldflags="-lpthread"
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/usr/toolsdk --cflags="-DTEST -I/xxx/xxx" --ldflags="-lpthread"
 </code></pre>
 </code></pre>
 <h3 id="projectdescriptionsettings">Project description settings</h3>
 <h3 id="projectdescriptionsettings">Project description settings</h3>
 <h4 id="set_toolchains">set_toolchains</h4>
 <h4 id="set_toolchains">set_toolchains</h4>

+ 4 - 0
mirror/index.html

@@ -564,6 +564,10 @@ $ xmake l
 </ul>
 </ul>
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <ul>
 <ul>
+<li><a href="https://github.com/Mythos-404/xmake.nvim">xmake.nvim</a> (third-party, thanks <a href="https://github.com/Mythos-404">@Mythos_404</a>)</li>
+</ul>
+<p><img src="https://raw.githubusercontent.com/Mythos-404/xmake.nvim/main/assets/XmakePreview.gif" width="650px" /></p>
+<ul>
 <li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</li>
 <li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</li>
 <li><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>)</li>
 <li><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>)</li>
 <li><a href="https://github.com/Arthapz/xmake-project-manager">xmake-qtcreator</a> (third-party, thanks <a href="https://github.com/Arthapz">@Arthapz</a>)</li>
 <li><a href="https://github.com/Arthapz/xmake-project-manager">xmake-qtcreator</a> (third-party, thanks <a href="https://github.com/Arthapz">@Arthapz</a>)</li>

+ 161 - 6
mirror/manual/extension_modules.html

@@ -197,10 +197,12 @@ end
 </code></pre>
 </code></pre>
 <h3 id="corebasejson">core.base.json</h3>
 <h3 id="corebasejson">core.base.json</h3>
 <p>xmake provides a built-in json module, based on the implementation of lua_cjson, we can use it to quickly and directly interoperate between json and lua table.</p>
 <p>xmake provides a built-in json module, based on the implementation of lua_cjson, we can use it to quickly and directly interoperate between json and lua table.</p>
-<p>We can use <code>import("core.base.json")</code> to directly import and use.</p>
+<p>We can use <code>import("core.base.json")</code> for direct import and use.</p>
 <p>There are also some examples here: <a href="https://github.com/xmake-io/xmake/blob/master/tests/modules/json/test.lua">Jsom Examples</a></p>
 <p>There are also some examples here: <a href="https://github.com/xmake-io/xmake/blob/master/tests/modules/json/test.lua">Jsom Examples</a></p>
 <h4 id="jsondecode">json.decode</h4>
 <h4 id="jsondecode">json.decode</h4>
-<p>Obtain the lua table directly from the string decoding json.</p>
+<ul>
+<li>Get the lua table directly from the string decoding json</li>
+</ul>
 <pre><code class="lang-lua">import("core.base.json")
 <pre><code class="lang-lua">import("core.base.json")
 local luatable = json.decode(&#39;[1,"2", {"a":1, "b":true}]&#39;)
 local luatable = json.decode(&#39;[1,"2", {"a":1, "b":true}]&#39;)
 print(luatable)
 print(luatable)
@@ -215,20 +217,173 @@ print(luatable)
   }
   }
 </code></pre><p>!> If there is null in it, you can use <code>json.null</code> to judge</p>
 </code></pre><p>!> If there is null in it, you can use <code>json.null</code> to judge</p>
 <h4 id="jsonencode">json.encode</h4>
 <h4 id="jsonencode">json.encode</h4>
-<p>We can also directly encode a lua table.</p>
-<pre><code class="lang-lua">local jsonstr = json.encode({1, "2", {a = 1}}
+<ul>
+<li>Encode a lua table</li>
+</ul>
+<pre><code class="lang-lua">local jsonstr = json.encode({1, "2", {a = 1}})
 </code></pre>
 </code></pre>
 <p>It should be noted that if you need to encode null, you need to use <code>json.null</code>, for example</p>
 <p>It should be noted that if you need to encode null, you need to use <code>json.null</code>, for example</p>
 <pre><code class="lang-lua">local jsonstr = json.encode({json.null, 1, "2", false, true})
 <pre><code class="lang-lua">local jsonstr = json.encode({json.null, 1, "2", false, true})
 </code></pre>
 </code></pre>
 <h4 id="jsonloadfile">json.loadfile</h4>
 <h4 id="jsonloadfile">json.loadfile</h4>
-<p>Load the json file directly and parse it into a lua table.</p>
+<ul>
+<li>Load the json file directly and parse it into a lua table</li>
+</ul>
 <pre><code class="lang-lua">local luatable = json.loadfile("/tmp/xxx.json")
 <pre><code class="lang-lua">local luatable = json.loadfile("/tmp/xxx.json")
 </code></pre>
 </code></pre>
 <h4 id="jsonsavefile">json.savefile</h4>
 <h4 id="jsonsavefile">json.savefile</h4>
-<p>Save the lua table to the specified json file.</p>
+<ul>
+<li>Save the lua table to the specified json file</li>
+</ul>
 <pre><code class="lang-lua">json.savefile("/tmp/xxx.json", {1, {a = 1}})
 <pre><code class="lang-lua">json.savefile("/tmp/xxx.json", {1, {a = 1}})
 </code></pre>
 </code></pre>
+<h3 id="corebasesemver">core.base.semver</h3>
+<p>A module to work with semantic versionning (semver). It allows you to parse version strings and access various components of a version such as major, minor, ... </p>
+<p>We can use <code>import("core.base.semver")</code> for direct import and use.</p>
+<h4 id="semvernew">semver.new</h4>
+<ul>
+<li>Create a new semver instance from a version string. Raise an error if the parsing failed</li>
+</ul>
+<pre><code class="lang-lua">local version = semver.new("v2.1.0")
+</code></pre>
+<h4 id="semvertry_parse">semver.try_parse</h4>
+<ul>
+<li>Same as new, but return a nil value if the parsing failed</li>
+</ul>
+<pre><code class="lang-lua">local version = semver.try_parse("v2.1.0")
+</code></pre>
+<h4 id="semvermatch">semver.match</h4>
+<ul>
+<li>Match a valid version from the string</li>
+</ul>
+<pre><code class="lang-lua">print(semver.match("v2.1.0", 1)) -- start from position 1
+print(semver.match("v2.1.0", 0, "%d+%.%d+"))
+</code></pre>
+<pre><code>2.1.0
+2.1
+</code></pre><h4 id="semveris_valid">semver.is_valid</h4>
+<ul>
+<li>Get if a given string version is valid, by testing if the version can be parsed</li>
+</ul>
+<pre><code class="lang-lua">print(semver.is_valid("536f2bd6a092eba91315b7d1e120dff63392a11d"))
+print(semver.is_valid("v2.1.0-pre"))
+</code></pre>
+<pre><code>false
+true
+</code></pre><h4 id="semveris_valid_range">semver.is_valid_range</h4>
+<ul>
+<li>Test if the given range is a valid one</li>
+</ul>
+<pre><code class="lang-lua">print(semver.is_valid_range(">2.1.0"))
+print(semver.is_valid_range(">v2.1.0"))
+print(semver.is_valid_range("2.0.0 - <2.1.0"))
+print(semver.is_valid_range("1.0 || 2.1"))
+</code></pre>
+<pre><code>true
+false
+false
+true
+</code></pre><h4 id="semvercompare">semver.compare</h4>
+<ul>
+<li>Compare two versions, return a number between 1 and -1</li>
+</ul>
+<pre><code class="lang-lua">print(semver.compare("v2.2", "v2.2.0"))
+print(semver.compare("v2.2.0", "v2.1.0"))
+print(semver.compare("v2.1.1", "v2.1.0"))
+print(semver.compare("v2.1.0", "v2.2.0"))
+</code></pre>
+<pre><code>0
+1
+1
+-1
+</code></pre><h4 id="semversatisfies">semver.satisfies</h4>
+<ul>
+<li>Check if a version satisfies a range version</li>
+</ul>
+<pre><code class="lang-lua">print(semver.satisfies("v2.1.0", ">= 2.1"))
+print(semver.satisfies("v2.1.0", ">1.0 <2.1"))
+print(semver.satisfies("v2.1.0", ">1.0 || <2.1"))
+print(semver.satisfies("v2.1.0", ">=2.x || 3.x - 4.x"))
+</code></pre>
+<pre><code>true
+false
+true
+true
+</code></pre><h4 id="semverselect">semver.select</h4>
+<ul>
+<li>Select required version from versions, tags and branches</li>
+</ul>
+<pre><code class="lang-lua">local version, source = semver.select(">=1.5.0 <1.6", {"1.5.0", "1.5.1"}, {"v1.5.0"}, {"master", "dev"})
+print(semver.select(">=1.5.0 <1.6", {"1.5.0", "1.5.1"}, {"v1.5.0"}, {"master", "dev"}))
+print(semver.select("v1.5.0", {"1.5.0", "1.5.1"}, {"v1.5.0"}, {"master", "dev"}))
+print(semver.select("master", {"1.5.0", "1.5.1"}, {"v1.5.0"}, {"master", "dev"}))
+</code></pre>
+<pre><code>1.5.1 version
+v1.5.0 tag
+master branch
+</code></pre><h4 id="semverget">semver:get</h4>
+<ul>
+<li>Get a value from the informations table</li>
+</ul>
+<pre><code class="lang-lua">local version = semver.new("v2.1.0+build")
+print(version["_INFO"])
+print(version:get("major"))
+</code></pre>
+<pre><code>{ 
+  prerelease = { },
+  build = {
+    "build"
+  },
+  version = "v2.1.0+build",
+  raw = "v2.1.0+build",
+  patch = 0,
+  minor = 1,
+  major = 2
+}
+
+2
+</code></pre><h4 id="semvermajor">semver:major</h4>
+<ul>
+<li>Get the major version</li>
+</ul>
+<pre><code class="lang-lua">semver.new("v2.1.0"):major() -- return 2
+</code></pre>
+<h4 id="semverminor">semver:minor</h4>
+<ul>
+<li>Get the minor version</li>
+</ul>
+<pre><code class="lang-lua">semver.new("v2.1.0"):minor() -- return 1
+</code></pre>
+<h4 id="semverpatch">semver:patch</h4>
+<ul>
+<li>Get the patch version</li>
+</ul>
+<pre><code class="lang-lua">semver.new("v2.1.0"):patch() -- return 0
+</code></pre>
+<h4 id="semverbuild">semver:build</h4>
+<ul>
+<li>Get the build version</li>
+</ul>
+<pre><code class="lang-lua">semver.new("v2.1.0+build"):build() -- return {"build"}
+</code></pre>
+<h4 id="semverprerelease">semver:prerelease</h4>
+<ul>
+<li>Get the prerelease version</li>
+</ul>
+<pre><code class="lang-lua">semver.new("v2.1.0-prerelease"):prerelease() -- return {"prerelease"}
+</code></pre>
+<h4 id="semverrawstr">semver:rawstr</h4>
+<ul>
+<li>Get the raw string</li>
+</ul>
+<pre><code class="lang-lua">semver.new("v2.1.0+build"):rawstr() -- return v2.1.0+build
+</code></pre>
+<h4 id="semvershortstr">semver:shortstr</h4>
+<ul>
+<li>Get the short version string</li>
+</ul>
+<pre><code class="lang-lua">semver.new("v2.1.0+build"):shortstr() -- return 2.1.0
+</code></pre>
 <h3 id="coretoollinker">core.tool.linker</h3>
 <h3 id="coretoollinker">core.tool.linker</h3>
 <p>Linker related operations, often used for plugin development.</p>
 <p>Linker related operations, often used for plugin development.</p>
 <h4 id="linkerlink">linker.link</h4>
 <h4 id="linkerlink">linker.link</h4>

+ 20 - 0
mirror/manual/global_interfaces.html

@@ -139,6 +139,26 @@ set_version("1.5.1")
 <pre><code class="lang-lua">set_version("1.5.1", {build = "%Y%m%d%H%M"})
 <pre><code class="lang-lua">set_version("1.5.1", {build = "%Y%m%d%H%M"})
 </code></pre>
 </code></pre>
 <p>We can also add version to the config header files, @see <a href="/mirror/manual/project_target.html#add-template-configuration-files">add_configfiles</a></p>
 <p>We can also add version to the config header files, @see <a href="/mirror/manual/project_target.html#add-template-configuration-files">add_configfiles</a></p>
+<p>!> We can set the version globally, but now we can also set it individually in the target field.</p>
+<p>Version 2.8.2 adds soname versioning support for version compatibility control of so/dylib dynamic libraries.</p>
+<p>You can configure the soname version suffix, and xmake will automatically generate a symbolic link to execute the specified version of the library when compiling and installing it.</p>
+<p>For example, if we configure:</p>
+<pre><code class="lang-lua">set_version("1.0.1", {soname = true})
+</code></pre>
+<p>xmake will automatically resolve the major version of the version number as the soname version, generating the following structure:</p>
+<pre><code>└── lib
+    ├── libfoo.1.0.1.dylib
+    ├── libfoo.1.0.1.dylib -> libfoo.1.0.1.dylib
+    └── libfoo.dylib -> libfoo.1.dylib
+</code></pre><p>Of course, we can also specify soname to a specific version naming:</p>
+<pre><code class="lang-lua">set_version("1.0.1", {soname = "1.0"}) -> libfoo.so.1.0, libfoo.1.0.dylib
+set_version("1.0.1", {soname = "1"}) -> libfoo.so.1, libfoo.1.dylib
+set_version("1.0.1", {soname = "A"}) -> libfoo.so.A, libfoo.A.dylib
+set_version("1.0.1", {soname = ""}) -> libfoo.so, libfoo.dylib
+</code></pre>
+<p>And if soname is not set, then soname version control is not enabled by default:</p>
+<pre><code class="lang-lua">set_version("1.0.1") -> libfoo.so, libfoo.dylib
+</code></pre>
 <h3 id="set_xmakever">set_xmakever</h3>
 <h3 id="set_xmakever">set_xmakever</h3>
 <h4 id="setminimalxmakeversion">Set minimal xmake version</h4>
 <h4 id="setminimalxmakeversion">Set minimal xmake version</h4>
 <p>If the current xmake version less than the required version, it will prompt an error.</p>
 <p>If the current xmake version less than the required version, it will prompt an error.</p>

+ 50 - 5
mirror/manual/project_target.html

@@ -1646,12 +1646,13 @@ target("test")
 <p>Add extended instruction optimization options, currently supports the following extended instruction sets:</p>
 <p>Add extended instruction optimization options, currently supports the following extended instruction sets:</p>
 <pre><code class="lang-lua">add_vectorexts("mmx")
 <pre><code class="lang-lua">add_vectorexts("mmx")
 add_vectorexts("neon")
 add_vectorexts("neon")
-add_vectorexts("avx", "avx2")
-add_vectorexts("sse", "sse2", "sse3", "ssse3")
+add_vectorexts("avx", "avx2", "avx512")
+add_vectorexts("sse", "sse2", "sse3", "ssse3", "sse4.2")
+</code></pre>
+<p>!> If the currently set instruction set compiler does not support it, xmake will automatically ignore it, so you don&#39;t need the user to manually determine the maintenance. Just set all the instruction sets you need.</p>
+<p>In 2.8.2, we added <code>all</code> configuration item has been added which can be used to turn on all extended directive optimisations where possible.</p>
+<pre><code class="lang-lua">add_vectorexts("all")
 </code></pre>
 </code></pre>
-<p><p class="tip"><br>If the currently set instruction set compiler does not support it, xmake will automatically ignore it, so you don&#39;t need the user to manually determine the maintenance. Just set all the instruction sets you need.<br></p>
-
-</p>
 <h3 id="targetadd_frameworks">target:add_frameworks</h3>
 <h3 id="targetadd_frameworks">target:add_frameworks</h3>
 <h4 id="addframeworks">Add frameworks</h4>
 <h4 id="addframeworks">Add frameworks</h4>
 <p>Currently used for the <code>objc</code> and <code>swift</code> programs of the <code>ios</code> and <code>macosx</code> platforms, for example:</p>
 <p>Currently used for the <code>objc</code> and <code>swift</code> programs of the <code>ios</code> and <code>macosx</code> platforms, for example:</p>
@@ -2392,6 +2393,50 @@ $ xmake run -g bench*
 <pre><code class="lang-lua">set_exceptions("no-cxx", "no-objc")
 <pre><code class="lang-lua">set_exceptions("no-cxx", "no-objc")
 </code></pre>
 </code></pre>
 <p>Xmake will automatically adapt the flags internally to the different compilers.</p>
 <p>Xmake will automatically adapt the flags internally to the different compilers.</p>
+<h3 id="targetset_encodings">target:set_encodings</h3>
+<h4 id="setencodings">Set encodings</h4>
+<p>This is a new interface in version 2.8.2, we can use this interface to set the encoding of source and target files.</p>
+<p>By default, just specifying the encoding will work for both the source and target files.</p>
+<pre><code class="lang-lua">-- for all source/target encodings
+set_encodings("utf-8") -- msvc: /utf-8
+</code></pre>
+<p>It is equivalent to:</p>
+<pre><code class="lang-lua">set_encodings("source:utf-8", "target:utf-8")
+</code></pre>
+<p>And it only supports utf-8 encodings for now, but will be expanded in the future.</p>
+<p>If we just want to set the source file encoding or the target file encoding separately, we can do that too.</p>
+<h5 id="setsourceencoding">Set source encoding</h5>
+<p>Usually this refers to the encoding of the source file of the compiled code, and we can set it like this.</p>
+<pre><code class="lang-lua">-- gcc/clang: -finput-charset=UTF-8, msvc: -source-charset=utf-8
+set_encodings("source:utf-8")
+</code></pre>
+<h5 id="setthetargetfileencoding">Set the target file encoding</h5>
+<p>It usually refers to the runtime output encoding of the target executable.</p>
+<pre><code class="lang-lua">-- gcc/clang: -fexec-charset=UTF-8, msvc: -target-charset=utf-8
+set_encodings("target:utf-8")
+</code></pre>
+<h3 id="targetadd_forceincludes">target:add_forceincludes</h3>
+<h4 id="forceincludes">forceincludes</h4>
+<p>This is a new interface in 2.8.2 for forcing <code>includes</code> headers directly into configuration files.</p>
+<pre><code class="lang-lua">add_forceincludes("config.h")
+</code></pre>
+<p>It works like <code>#include <config.h></code>, but you don&#39;t need to add it explicitly in the source code.</p>
+<p>Also, its search path is controlled by <code>add_includedirs</code> instead of the direct config file path.</p>
+<pre><code class="lang-lua">add_forceincludes("config.h")
+add_includedirs("src")
+</code></pre>
+<p>By default add_forceincludes matches c/c++/objc, if you just want to match c++ you can do so:</p>
+<pre><code class="lang-lua">add_forceincludes("config.h", {sourcekinds = "cxx"})
+</code></pre>
+<p>If you want to match multiple source file types at the same time, that&#39;s also possible:</p>
+<pre><code class="lang-lua">add_forceincludes("config.h", {sourcekinds = {"cxx", "mxx"}})
+</code></pre>
+<h3 id="targetadd_extrafiles">target:add_extrafiles</h3>
+<h4 id="addingextrafiles">Adding Extra Files</h4>
+<p>This interface, also new in 2.8.2, is mainly used in projects generated by the vs/vsxmake project generator to add extra files to the project list, so that users can also quickly click on them to edit them, even though they are not code files.</p>
+<p>In the future, we may use this interface for more other things as well.</p>
+<p><code>`lua
+add_extrafiles("assets/other.txt")</code></p>
 </article>
 </article>
 </body>
 </body>
 </html>
 </html>

+ 6 - 0
mirror/plugin/more_plugins.html

@@ -212,6 +212,12 @@ target("test")
 <ul>
 <ul>
 <li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</li>
 <li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</li>
 </ul>
 </ul>
+<h2 id="neovimplugin">Neovim Plugin</h2>
+<ul>
+<li><a href="https://github.com/Mythos-404/xmake.nvim">xmake.nvim</a> (third-party, thanks <a href="https://github.com/Mythos-404">@Mythos_404</a>)</li>
+</ul>
+<p>The plugin provides easy-to-use configuration UI and auto-generation of <em>compile_commands.json</em> files</p>
+<p><img src="https://raw.githubusercontent.com/Mythos-404/xmake.nvim/main/assets/XmakePreview.gif" width="650px" /></p>
 <h2 id="gradlepluginjni">Gradle Plugin (JNI)</h2>
 <h2 id="gradlepluginjni">Gradle Plugin (JNI)</h2>
 <ul>
 <ul>
 <li><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: A gradle plugin that integrates xmake seamlessly</li>
 <li><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: A gradle plugin that integrates xmake seamlessly</li>

+ 1 - 0
mirror/zh-cn/about/awesome.html

@@ -125,6 +125,7 @@
 <li><a href="https://github.com/xmake-io/xmake-sublime">xmake-sublime</a>: Sublime Text 2/3 编辑器插件</li>
 <li><a href="https://github.com/xmake-io/xmake-sublime">xmake-sublime</a>: Sublime Text 2/3 编辑器插件</li>
 <li><a href="https://github.com/xmake-io/xmake-idea">xmake-idea</a>: Intellij-IDEA/CLion/Android Studio等IDE插件</li>
 <li><a href="https://github.com/xmake-io/xmake-idea">xmake-idea</a>: Intellij-IDEA/CLion/Android Studio等IDE插件</li>
 <li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a>: 第三方vim插件, 感谢<a href="https://github.com/luzhlon">@luzhlon</a></li>
 <li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a>: 第三方vim插件, 感谢<a href="https://github.com/luzhlon">@luzhlon</a></li>
+<li><a href="https://github.com/Mythos-404/xmake.nvim">xmake.nvim</a> (第三方neovim插件, 感谢<a href="https://github.com/Mythos-404">@Mythos_404</a>)</li>
 <li><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: 一个无缝集成xmake的gradle开发插件</li>
 <li><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: 一个无缝集成xmake的gradle开发插件</li>
 <li><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>)</li>
 <li><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>)</li>
 <li><a href="https://github.com/Arthapz/xmake-project-manager">xmake-qtcreator</a> (third-party, thanks <a href="https://github.com/Arthapz">@Arthapz</a>)</li>
 <li><a href="https://github.com/Arthapz/xmake-project-manager">xmake-qtcreator</a> (third-party, thanks <a href="https://github.com/Arthapz">@Arthapz</a>)</li>

+ 29 - 1
mirror/zh-cn/about/changelog.html

@@ -92,7 +92,35 @@
   line-height: 1;
   line-height: 1;
 }
 }
 </style>
 </style>
-    <h2 id="v279">v2.7.9</h2>
+    <h2 id="v281">v2.8.1</h2>
+<h3 id="">新特性</h3>
+<ul>
+<li><a href="https://github.com/xmake-io/xmake/pull/3821">#3821</a>: windows 安装器添加长路径支持选项</li>
+<li><a href="https://github.com/xmake-io/xmake/pull/3828">#3828</a>: 添加 zypper 包管理器支持</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3871">#3871</a>: 改进 tools.msbuild 支持对 vsproj 进行自动升级</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3148">#3148</a>: 改进 protobuf 支持 grpc</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3889">#3889</a>: add_links 支持库路径添加</li>
+<li><a href="https://github.com/orgs/xmake-io/issues/3912">#3912</a>: 添加 set_pmxxheader 去支持 objc 预编译头</li>
+<li>add_links 支持库文件路径</li>
+</ul>
+<h3 id="">改进</h3>
+<ul>
+<li><a href="https://github.com/xmake-io/xmake/issues/3752">#3752</a>: 改进 windows 上 os.getenvs 的获取</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3371">#3371</a>: 改进 tools.cmake 支持使用 ninja 去构建 wasm 包</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3777">#3777</a>: 改进从 pkg-config 中查找包</li>
+<li><a href="https://github.com/xmake-io/xmake/pull/3815">#3815</a>: 改进 tools.xmake 支持为 windows 平台传递工具链</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3857">#3857</a>: 改进生成 compile_commands.json</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3892">#3892</a>: 改进包搜索,支持从描述中找包</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3916">#3916</a>: 改进构建 swift 程序,支持模块间符号调用</li>
+<li>更新 lua 运行时到 5.4.6</li>
+</ul>
+<h3 id="bugs">Bugs 修复</h3>
+<ul>
+<li><a href="https://github.com/xmake-io/xmake/pull/3755">#3755</a>: 修复 find_tool 从 xmake/packages 中查找程序</li>
+<li><a href="https://github.com/xmake-io/xmake/issues/3787">#3787</a>: 修复从 conan 2.x 中使用包</li>
+<li><a href="https://github.com/orgs/xmake-io/discussions/3839">#3839</a>: 修复 conan 2.x 包的 vs_runtime 设置</li>
+</ul>
+<h2 id="v279">v2.7.9</h2>
 <h3 id="">新特性</h3>
 <h3 id="">新特性</h3>
 <ul>
 <ul>
 <li><a href="https://github.com/xmake-io/xmake/issues/3613">#3613</a>: 添加 <code>wasm.preloadfiles</code> 扩展配置</li>
 <li><a href="https://github.com/xmake-io/xmake/issues/3613">#3613</a>: 添加 <code>wasm.preloadfiles</code> 扩展配置</li>

+ 4 - 0
mirror/zh-cn/getting_started.html

@@ -356,6 +356,10 @@ $ xmake l
 </ul>
 </ul>
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <ul>
 <ul>
+<li><a href="https://github.com/Mythos-404/xmake.nvim">xmake.nvim</a> (第三方开发, 感谢<a href="https://github.com/Mythos-404">@Mythos_404</a>)</li>
+</ul>
+<p><img src="https://raw.githubusercontent.com/Mythos-404/xmake.nvim/main/assets/XmakePreview.gif" width="650px" /></p>
+<ul>
 <li><p><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</p>
 <li><p><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</p>
 </li>
 </li>
 <li><p><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: 一个无缝整合xmake的gradle插件</p>
 <li><p><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: 一个无缝整合xmake的gradle插件</p>

+ 6 - 6
mirror/zh-cn/guide/configuration.html

@@ -198,7 +198,7 @@ $ xmake
 <p>对于不规则工具链目录结构,靠单纯地<a href="https://xmake.io/#/zh-cn/guide/configuration?id=-sdk">--sdk</a>选项设置,没法完全检测通过的情况下,可以通过这个选项继续附加设置工具链的bin目录位置。</p>
 <p>对于不规则工具链目录结构,靠单纯地<a href="https://xmake.io/#/zh-cn/guide/configuration?id=-sdk">--sdk</a>选项设置,没法完全检测通过的情况下,可以通过这个选项继续附加设置工具链的bin目录位置。</p>
 <p>例如:一些特殊的交叉工具链的,编译器bin目录,并不在  <code>/home/toolchains_sdkdir/bin</code>  这个位置,而是独立到了  <code>/usr/opt/bin</code></p>
 <p>例如:一些特殊的交叉工具链的,编译器bin目录,并不在  <code>/home/toolchains_sdkdir/bin</code>  这个位置,而是独立到了  <code>/usr/opt/bin</code></p>
 <p>这个时候,我们可以在设置了sdk参数的基础上追加bin目录的参数设置,来调整工具链的bin目录。</p>
 <p>这个时候,我们可以在设置了sdk参数的基础上追加bin目录的参数设置,来调整工具链的bin目录。</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/home/toolchains_sdkdir --bin=/usr/opt/bin
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/home/toolchains_sdkdir --bin=/usr/opt/bin
 $ xmake
 $ xmake
 </code></pre>
 </code></pre>
 <h3 id="">设置交叉工具链工具前缀</h3>
 <h3 id="">设置交叉工具链工具前缀</h3>
@@ -209,11 +209,11 @@ $ xmake
   - armv7-linux-gcc
   - armv7-linux-gcc
   - aarch64-linux-gcc
   - aarch64-linux-gcc
 </code></pre><p>我们现在想要选用armv7的版本,那么我们可以追加<code>--cross=</code>配置编译工具前缀名,例如:</p>
 </code></pre><p>我们现在想要选用armv7的版本,那么我们可以追加<code>--cross=</code>配置编译工具前缀名,例如:</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/usr/toolsdk --bin=/opt/bin --cross=armv7-linux-
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/usr/toolsdk --bin=/opt/bin --cross=armv7-linux-
 </code></pre>
 </code></pre>
 <h3 id="cc">设置c/c++编译器</h3>
 <h3 id="cc">设置c/c++编译器</h3>
 <p>如果还要继续细分选择编译器,则继续追加相关编译器选项,例如:</p>
 <p>如果还要继续细分选择编译器,则继续追加相关编译器选项,例如:</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/user/toolsdk --cc=armv7-linux-clang --cxx=armv7-linux-clang++
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/user/toolsdk --cc=armv7-linux-clang --cxx=armv7-linux-clang++
 </code></pre>
 </code></pre>
 <p>当然,我们也可以指定编译器全路径。</p>
 <p>当然,我们也可以指定编译器全路径。</p>
 <p><code>--cc</code>用于指定c编译器名,<code>--cxx</code>用于指定c++编译器名。</p>
 <p><code>--cc</code>用于指定c编译器名,<code>--cxx</code>用于指定c++编译器名。</p>
@@ -226,13 +226,13 @@ $ xmake
 <p>也就是说,在指定编译器为<code>c++mips.exe</code>的同时,告诉xmake,它跟clang++用法和参数选项基本相同。</p>
 <p>也就是说,在指定编译器为<code>c++mips.exe</code>的同时,告诉xmake,它跟clang++用法和参数选项基本相同。</p>
 <h3 id="cc">设置c/c++链接器</h3>
 <h3 id="cc">设置c/c++链接器</h3>
 <p>如果还要继续细分选择链接器,则继续追加相关链接器选项,例如:</p>
 <p>如果还要继续细分选择链接器,则继续追加相关链接器选项,例如:</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/user/toolsdk --ld=armv7-linux-clang++ --sh=armv7-linux-clang++ --ar=armv7-linux-ar
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/user/toolsdk --ld=armv7-linux-clang++ --sh=armv7-linux-clang++ --ar=armv7-linux-ar
 </code></pre>
 </code></pre>
 <p>ld指定可执行程序链接器,sh指定共享库程序链接器,ar指定生成静态库的归档器。</p>
 <p>ld指定可执行程序链接器,sh指定共享库程序链接器,ar指定生成静态库的归档器。</p>
 <p>注:如果存在LD/SH/AR环境变量的话,会优先使用当前环境变量中指定的值。</p>
 <p>注:如果存在LD/SH/AR环境变量的话,会优先使用当前环境变量中指定的值。</p>
 <h3 id="">设置头文件和库搜索目录</h3>
 <h3 id="">设置头文件和库搜索目录</h3>
 <p>如果sdk里面还有额外的其他include/lib目录不在标准的结构中,导致交叉编译找不到库和头文件,那么我们可以通过<code>--includedirs</code>和<code>--linkdirs</code>来追加搜索路径,然后通过<code>--links</code>添加额外的链接库。</p>
 <p>如果sdk里面还有额外的其他include/lib目录不在标准的结构中,导致交叉编译找不到库和头文件,那么我们可以通过<code>--includedirs</code>和<code>--linkdirs</code>来追加搜索路径,然后通过<code>--links</code>添加额外的链接库。</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/usr/toolsdk --includedirs=/usr/toolsdk/xxx/include --linkdirs=/usr/toolsdk/xxx/lib --links=pthread
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/usr/toolsdk --includedirs=/usr/toolsdk/xxx/include --linkdirs=/usr/toolsdk/xxx/lib --links=pthread
 </code></pre>
 </code></pre>
 <p>注:如果要指定多个搜索目录,可以通过<code>:</code>或者<code>;</code>来分割,也就是不同主机平台的路径分隔符,linux/macos下用<code>:</code>,win下用<code>;</code>。</p>
 <p>注:如果要指定多个搜索目录,可以通过<code>:</code>或者<code>;</code>来分割,也就是不同主机平台的路径分隔符,linux/macos下用<code>:</code>,win下用<code>;</code>。</p>
 <h3 id="">设置编译和链接选项</h3>
 <h3 id="">设置编译和链接选项</h3>
@@ -247,7 +247,7 @@ $ xmake
 <li>arflags: 指定静态库的生成参数</li>
 <li>arflags: 指定静态库的生成参数</li>
 </ul>
 </ul>
 <p>例如:</p>
 <p>例如:</p>
-<pre><code class="lang-bash">$ xmake f -p linux --sdk=/usr/toolsdk --cflags="-DTEST -I/xxx/xxx" --ldflags="-lpthread"
+<pre><code class="lang-bash">$ xmake f -p cross --sdk=/usr/toolsdk --cflags="-DTEST -I/xxx/xxx" --ldflags="-lpthread"
 </code></pre>
 </code></pre>
 <h3 id="">项目描述设置</h3>
 <h3 id="">项目描述设置</h3>
 <h4 id="set_toolchains">set_toolchains</h4>
 <h4 id="set_toolchains">set_toolchains</h4>

+ 4 - 0
mirror/zh-cn/index.html

@@ -529,6 +529,10 @@ $ xmake l
 </ul>
 </ul>
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <ul>
 <ul>
+<li><a href="https://github.com/Mythos-404/xmake.nvim">xmake.nvim</a> (第三方开发, 感谢<a href="https://github.com/Mythos-404">@Mythos_404</a>)</li>
+</ul>
+<p><img src="https://raw.githubusercontent.com/Mythos-404/xmake.nvim/main/assets/XmakePreview.gif" width="650px" /></p>
+<ul>
 <li><p><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</p>
 <li><p><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</p>
 </li>
 </li>
 <li><p><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>)</p>
 <li><p><a href="https://github.com/HelloWorld886/xmake-visualstudio">xmake-visualstudio</a> (third-party, thanks <a href="https://github.com/HelloWorld886">@HelloWorld886</a>)</p>

+ 22 - 2
mirror/zh-cn/manual/global_interfaces.html

@@ -132,13 +132,33 @@ set_version("1.5.1")
 </code></pre>
 </code></pre>
 <h3 id="set_version">set_version</h3>
 <h3 id="set_version">set_version</h3>
 <h4 id="">设置工程版本</h4>
 <h4 id="">设置工程版本</h4>
-<p>设置项目版本,可以放在xmake.lua任何地方,一般放在最开头,例如:</p>
+<p>设置项目版本,可以放在 xmake.lua 任何地方,一般放在最开头,例如:</p>
 <pre><code class="lang-lua">set_version("1.5.1")
 <pre><code class="lang-lua">set_version("1.5.1")
 </code></pre>
 </code></pre>
-<p>2.1.7版本支持buildversion的配置:</p>
+<p>2.1.7 版本支持 buildversion 的配置:</p>
 <pre><code class="lang-lua">set_version("1.5.1", {build = "%Y%m%d%H%M"})
 <pre><code class="lang-lua">set_version("1.5.1", {build = "%Y%m%d%H%M"})
 </code></pre>
 </code></pre>
 <p>我们也能够添加版本宏定义到头文件,请参考:<a href="/mirror/manual/project_target.html#add-template-configuration-files">add_configfiles</a></p>
 <p>我们也能够添加版本宏定义到头文件,请参考:<a href="/mirror/manual/project_target.html#add-template-configuration-files">add_configfiles</a></p>
+<p>!> 我们可以全局设置版本,但现在我们也可以在 target 域去单独设置它。</p>
+<p>2.8.2 版本新增了 soname 版本支持,用于控制 so/dylib 动态库的版本兼容性控制。</p>
+<p>我们可以配置 soname 的版本后缀名称,xmake 会在编译、安装动态库的时候,自动生成符号链接,执行指定版本的动态库。</p>
+<p>例如,如果我们配置:</p>
+<pre><code class="lang-lua">set_version("1.0.1", {soname = true})
+</code></pre>
+<p>xmake 会自动解析版本号的 major 版本作为 soname 版本,生成的结构如下:</p>
+<pre><code>└── lib
+    ├── libfoo.1.0.1.dylib
+    ├── libfoo.1.dylib -> libfoo.1.0.1.dylib
+    └── libfoo.dylib -> libfoo.1.dylib
+</code></pre><p>当然,我们也可以指定 soname 到特定的版本命名:</p>
+<pre><code class="lang-lua">set_version("1.0.1", {soname = "1.0"}) -> libfoo.so.1.0, libfoo.1.0.dylib
+set_version("1.0.1", {soname = "1"}) -> libfoo.so.1, libfoo.1.dylib
+set_version("1.0.1", {soname = "A"}) -> libfoo.so.A, libfoo.A.dylib
+set_version("1.0.1", {soname = ""}) -> libfoo.so, libfoo.dylib
+</code></pre>
+<p>而如果没设置 soname,那么默认不开启 soname 版本兼容控制:</p>
+<pre><code class="lang-lua">set_version("1.0.1") -> libfoo.so, libfoo.dylib
+</code></pre>
 <h3 id="set_xmakever">set_xmakever</h3>
 <h3 id="set_xmakever">set_xmakever</h3>
 <h4 id="xmake">设置最小xmake版本</h4>
 <h4 id="xmake">设置最小xmake版本</h4>
 <p>用于处理xmake版本兼容性问题,如果项目的<code>xmake.lua</code>,通过这个接口设置了最小xmake版本支持,那么用户环境装的xmake低于要求的版本,就会提示错误。</p>
 <p>用于处理xmake版本兼容性问题,如果项目的<code>xmake.lua</code>,通过这个接口设置了最小xmake版本支持,那么用户环境装的xmake低于要求的版本,就会提示错误。</p>

+ 50 - 5
mirror/zh-cn/manual/project_target.html

@@ -1660,12 +1660,13 @@ target("test")
 <p>添加扩展指令优化选项,目前支持以下几种扩展指令集:</p>
 <p>添加扩展指令优化选项,目前支持以下几种扩展指令集:</p>
 <pre><code class="lang-lua">add_vectorexts("mmx")
 <pre><code class="lang-lua">add_vectorexts("mmx")
 add_vectorexts("neon")
 add_vectorexts("neon")
-add_vectorexts("avx", "avx2")
-add_vectorexts("sse", "sse2", "sse3", "ssse3")
+add_vectorexts("avx", "avx2", "avx512")
+add_vectorexts("sse", "sse2", "sse3", "ssse3", "sse4.2")
+</code></pre>
+<p>!> 如果当前设置的指令集编译器不支持,xmake会自动忽略掉,所以不需要用户手动去判断维护,只需要将你需要的指令集全部设置上就行了。</p>
+<p>2.8.2 新增了一个 <code>all</code> 配置项,可以用于尽可能的开启所有扩展指令优化。</p>
+<pre><code class="lang-lua">add_vectorexts("all")
 </code></pre>
 </code></pre>
-<p><p class="tip"><br>如果当前设置的指令集编译器不支持,xmake会自动忽略掉,所以不需要用户手动去判断维护,只需要将你需要的指令集全部设置上就行了。<br></p>
-
-</p>
 <h3 id="targetadd_frameworks">target:add_frameworks</h3>
 <h3 id="targetadd_frameworks">target:add_frameworks</h3>
 <h4 id="">添加链接框架</h4>
 <h4 id="">添加链接框架</h4>
 <p>目前主要用于<code>ios</code>和<code>macosx</code>平台的<code>objc</code>和<code>swift</code>程序,例如:</p>
 <p>目前主要用于<code>ios</code>和<code>macosx</code>平台的<code>objc</code>和<code>swift</code>程序,例如:</p>
@@ -2410,6 +2411,50 @@ $ xmake run -g bench*
 <pre><code class="lang-lua">set_exceptions("no-cxx", "no-objc")
 <pre><code class="lang-lua">set_exceptions("no-cxx", "no-objc")
 </code></pre>
 </code></pre>
 <p>Xmake 会在内部自动根据不同的编译器,去适配对应的 flags。</p>
 <p>Xmake 会在内部自动根据不同的编译器,去适配对应的 flags。</p>
+<h3 id="targetset_encodings">target:set_encodings</h3>
+<h4 id="">设置编码</h4>
+<p>这是 2.8.2 版本新增的接口,我们可以用这个接口设置源文件、目标执行文件的编码。</p>
+<p>默认情况下,我们仅仅指定编码,是会同时对源文件,目标文件生效。</p>
+<pre><code class="lang-lua">-- for all source/target encodings
+set_encodings("utf-8") -- msvc: /utf-8
+</code></pre>
+<p>它等价于:</p>
+<pre><code class="lang-lua">set_encodings("source:utf-8", "target:utf-8")
+</code></pre>
+<p>并且,目前仅仅支持设置成 utf-8 编码,将来会不断扩展。</p>
+<p>如果,我们仅仅想单独设置源文件编码,或者目标文件编码,也是可以的。</p>
+<h5 id="">设置源文件编码</h5>
+<p>通常指的是编译的代码源文件的编码,我们可以这么设置。</p>
+<pre><code class="lang-lua">-- gcc/clang: -finput-charset=UTF-8, msvc: -source-charset=utf-8
+set_encodings("source:utf-8")
+</code></pre>
+<h5 id="">设置目标文件编码</h5>
+<p>它通常指的是目标可执行文件的运行输出编码。</p>
+<pre><code class="lang-lua">-- gcc/clang: -fexec-charset=UTF-8, msvc: -target-charset=utf-8
+set_encodings("target:utf-8")
+</code></pre>
+<h3 id="targetadd_forceincludes">target:add_forceincludes</h3>
+<h4 id="includes">强制添加 includes</h4>
+<p>这是 2.8.2 新增的接口,用于在配置文件中直接强制添加 <code>includes</code> 头文件。</p>
+<pre><code class="lang-lua">add_forceincludes("config.h")
+</code></pre>
+<p>它的效果类似于 <code>#include <config.h></code>,但是不需要在源码中显式添加它了。</p>
+<p>另外,它的搜索路径也是需要通过 <code>add_includedirs</code> 来控制,而不是直接配置文件路径。</p>
+<pre><code class="lang-lua">add_forceincludes("config.h")
+add_includedirs("src")
+</code></pre>
+<p>默认 add_forceincludes 匹配 c/c++/objc。如果仅仅只想匹配 c++ 可以这么配置:</p>
+<pre><code class="lang-lua">add_forceincludes("config.h", {sourcekinds = "cxx"})
+</code></pre>
+<p>如果想同时匹配多个源文件类型,也是可以的:</p>
+<pre><code class="lang-lua">add_forceincludes("config.h", {sourcekinds = {"cxx", "mxx"}})
+</code></pre>
+<h3 id="targetadd_extrafiles">target:add_extrafiles</h3>
+<h4 id="">添加额外的文件</h4>
+<p>这个接口也是 2.8.2 新加的,主要用于 vs/vsxmake project generator 生成的工程中,添加额外的文件到工程列表中去,这样,用户也可以快速点击编辑它们,尽管它们不是代码文件。</p>
+<p>将来,我们也可能用此接口做更多其他的事情。</p>
+<pre><code class="lang-lua">add_extrafiles("assets/other.txt")
+</code></pre>
 </article>
 </article>
 </body>
 </body>
 </html>
 </html>

+ 7 - 1
mirror/zh-cn/plugin/more_plugins.html

@@ -212,8 +212,14 @@ target("test")
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <p><img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" /></p>
 <h2 id="vim">Vim 插件</h2>
 <h2 id="vim">Vim 插件</h2>
 <ul>
 <ul>
-<li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (third-party, thanks <a href="https://github.com/luzhlon">@luzhlon</a>)</li>
+<li><a href="https://github.com/luzhlon/xmake.vim">xmake.vim</a> (第三方开发, 感谢<a href="https://github.com/luzhlon">@luzhlon</a>)</li>
 </ul>
 </ul>
+<h2 id="neovim">Neovim 插件</h2>
+<ul>
+<li><a href="https://github.com/Mythos-404/xmake.nvim">xmake.nvim</a> (第三方开发, 感谢<a href="https://github.com/Mythos-404">@Mythos_404</a>)</li>
+</ul>
+<p>该插件提供了易用的配置UI和自动生成<em>compile_commands.json</em>文件</p>
+<p><img src="https://raw.githubusercontent.com/Mythos-404/xmake.nvim/main/assets/XmakePreview.gif" width="650px" /></p>
 <h2 id="gradlejni">Gradle插件(JNI)</h2>
 <h2 id="gradlejni">Gradle插件(JNI)</h2>
 <ul>
 <ul>
 <li><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: 一个无缝整合xmake的gradle插件</li>
 <li><a href="https://github.com/xmake-io/xmake-gradle">xmake-gradle</a>: 一个无缝整合xmake的gradle插件</li>

+ 102 - 102
sitemap.xml

@@ -12,512 +12,512 @@
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/guide/project_examples.html</loc>
   <loc>https://xmake.io/mirror/guide/project_examples.html</loc>
-  <lastmod>2023-07-11T09:18:31+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:08+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/guide/quickstart.html</loc>
   <loc>https://xmake.io/mirror/guide/quickstart.html</loc>
-  <lastmod>2023-07-11T09:18:32+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:08+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/guide/faq.html</loc>
   <loc>https://xmake.io/mirror/guide/faq.html</loc>
-  <lastmod>2023-07-11T09:18:32+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:09+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/guide/build_policies.html</loc>
   <loc>https://xmake.io/mirror/guide/build_policies.html</loc>
-  <lastmod>2023-07-11T09:18:32+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:09+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/guide/configuration.html</loc>
   <loc>https://xmake.io/mirror/guide/configuration.html</loc>
-  <lastmod>2023-07-11T09:18:32+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:09+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/guide/syntax_description.html</loc>
   <loc>https://xmake.io/mirror/guide/syntax_description.html</loc>
-  <lastmod>2023-07-11T09:18:32+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:09+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/guide/installation.html</loc>
   <loc>https://xmake.io/mirror/guide/installation.html</loc>
-  <lastmod>2023-07-11T09:18:33+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:09+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/features/remote_build.html</loc>
   <loc>https://xmake.io/mirror/features/remote_build.html</loc>
-  <lastmod>2023-07-11T09:18:33+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:09+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/features/unity_build.html</loc>
   <loc>https://xmake.io/mirror/features/unity_build.html</loc>
-  <lastmod>2023-07-11T09:18:33+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:09+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/features/distcc_build.html</loc>
   <loc>https://xmake.io/mirror/features/distcc_build.html</loc>
-  <lastmod>2023-07-11T09:18:33+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:10+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/features/trybuild.html</loc>
   <loc>https://xmake.io/mirror/features/trybuild.html</loc>
-  <lastmod>2023-07-11T09:18:34+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:10+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/features/autogen.html</loc>
   <loc>https://xmake.io/mirror/features/autogen.html</loc>
-  <lastmod>2023-07-11T09:18:34+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:10+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/features/build_cache.html</loc>
   <loc>https://xmake.io/mirror/features/build_cache.html</loc>
-  <lastmod>2023-07-11T09:18:34+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:10+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/plugin/plugin_development.html</loc>
   <loc>https://xmake.io/mirror/plugin/plugin_development.html</loc>
-  <lastmod>2023-07-11T09:18:34+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:10+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/plugin/more_plugins.html</loc>
   <loc>https://xmake.io/mirror/plugin/more_plugins.html</loc>
-  <lastmod>2023-07-11T09:18:34+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:10+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/plugin/builtin_plugins.html</loc>
   <loc>https://xmake.io/mirror/plugin/builtin_plugins.html</loc>
-  <lastmod>2023-07-11T09:18:34+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:11+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/about/awesome.html</loc>
   <loc>https://xmake.io/mirror/about/awesome.html</loc>
-  <lastmod>2023-07-11T09:18:35+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:11+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/about/technical_support.html</loc>
   <loc>https://xmake.io/mirror/about/technical_support.html</loc>
-  <lastmod>2023-07-11T09:18:35+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:11+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/about/changelog.html</loc>
   <loc>https://xmake.io/mirror/about/changelog.html</loc>
-  <lastmod>2023-07-11T09:18:35+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:11+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/about/contact.html</loc>
   <loc>https://xmake.io/mirror/about/contact.html</loc>
-  <lastmod>2023-07-11T09:18:35+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:11+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/about/introduction.html</loc>
   <loc>https://xmake.io/mirror/about/introduction.html</loc>
-  <lastmod>2023-07-11T09:18:35+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:11+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/about/who_is_using_xmake.html</loc>
   <loc>https://xmake.io/mirror/about/who_is_using_xmake.html</loc>
-  <lastmod>2023-07-11T09:18:36+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:12+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/about/sponsor.html</loc>
   <loc>https://xmake.io/mirror/about/sponsor.html</loc>
-  <lastmod>2023-07-11T09:18:36+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:12+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/index.html</loc>
   <loc>https://xmake.io/mirror/index.html</loc>
-  <lastmod>2023-07-11T09:18:36+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:12+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/guide/project_examples.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/guide/project_examples.html</loc>
-  <lastmod>2023-07-11T09:18:36+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:12+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/guide/quickstart.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/guide/quickstart.html</loc>
-  <lastmod>2023-07-11T09:18:37+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:13+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/guide/faq.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/guide/faq.html</loc>
-  <lastmod>2023-07-11T09:18:37+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:13+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/guide/build_policies.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/guide/build_policies.html</loc>
-  <lastmod>2023-07-11T09:18:37+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:13+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/guide/configuration.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/guide/configuration.html</loc>
-  <lastmod>2023-07-11T09:18:37+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:13+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/guide/syntax_description.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/guide/syntax_description.html</loc>
-  <lastmod>2023-07-11T09:18:37+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:14+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/guide/installation.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/guide/installation.html</loc>
-  <lastmod>2023-07-11T09:18:38+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:14+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/features/remote_build.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/features/remote_build.html</loc>
-  <lastmod>2023-07-11T09:18:38+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:14+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/features/unity_build.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/features/unity_build.html</loc>
-  <lastmod>2023-07-11T09:18:38+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:14+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/features/distcc_build.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/features/distcc_build.html</loc>
-  <lastmod>2023-07-11T09:18:38+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:15+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/features/trybuild.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/features/trybuild.html</loc>
-  <lastmod>2023-07-11T09:18:38+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:15+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/features/autogen.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/features/autogen.html</loc>
-  <lastmod>2023-07-11T09:18:39+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:15+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/features/build_cache.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/features/build_cache.html</loc>
-  <lastmod>2023-07-11T09:18:39+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:15+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/plugin/plugin_development.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/plugin/plugin_development.html</loc>
-  <lastmod>2023-07-11T09:18:39+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:16+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/plugin/more_plugins.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/plugin/more_plugins.html</loc>
-  <lastmod>2023-07-11T09:18:39+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:16+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/plugin/builtin_plugins.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/plugin/builtin_plugins.html</loc>
-  <lastmod>2023-07-11T09:18:40+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:16+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/about/awesome.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/about/awesome.html</loc>
-  <lastmod>2023-07-11T09:18:40+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:16+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/about/technical_support.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/about/technical_support.html</loc>
-  <lastmod>2023-07-11T09:18:40+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:16+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/about/changelog.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/about/changelog.html</loc>
-  <lastmod>2023-07-11T09:18:40+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:16+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/about/contact.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/about/contact.html</loc>
-  <lastmod>2023-07-11T09:18:40+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:17+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/about/peripheral_items.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/about/peripheral_items.html</loc>
-  <lastmod>2023-07-11T09:18:40+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:17+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/about/introduction.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/about/introduction.html</loc>
-  <lastmod>2023-07-11T09:18:41+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:17+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/about/who_is_using_xmake.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/about/who_is_using_xmake.html</loc>
-  <lastmod>2023-07-11T09:18:41+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:17+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/about/sponsor.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/about/sponsor.html</loc>
-  <lastmod>2023-07-11T09:18:41+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:17+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/about/course.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/about/course.html</loc>
-  <lastmod>2023-07-11T09:18:41+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:17+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/index.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/index.html</loc>
-  <lastmod>2023-07-11T09:18:41+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:17+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/getting_started.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/getting_started.html</loc>
-  <lastmod>2023-07-11T09:18:42+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:18+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/specification.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/specification.html</loc>
-  <lastmod>2023-07-11T09:18:42+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:18+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/builtin_variables.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/builtin_variables.html</loc>
-  <lastmod>2023-07-11T09:18:42+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:18+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/conditions.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/conditions.html</loc>
-  <lastmod>2023-07-11T09:18:42+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:18+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/custom_rule.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/custom_rule.html</loc>
-  <lastmod>2023-07-11T09:18:43+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:18+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/target_instance.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/target_instance.html</loc>
-  <lastmod>2023-07-11T09:18:43+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:19+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/project_target.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/project_target.html</loc>
-  <lastmod>2023-07-11T09:18:43+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:19+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/builtin_modules.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/builtin_modules.html</loc>
-  <lastmod>2023-07-11T09:18:43+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:19+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/custom_toolchain.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/custom_toolchain.html</loc>
-  <lastmod>2023-07-11T09:18:43+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:19+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/plugin_task.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/plugin_task.html</loc>
-  <lastmod>2023-07-11T09:18:44+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:20+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/package_dependencies.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/package_dependencies.html</loc>
-  <lastmod>2023-07-11T09:18:44+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:20+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/configuration_option.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/configuration_option.html</loc>
-  <lastmod>2023-07-11T09:18:44+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:20+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/extension_modules.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/extension_modules.html</loc>
-  <lastmod>2023-07-11T09:18:44+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:20+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/helper_interfaces.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/helper_interfaces.html</loc>
-  <lastmod>2023-07-11T09:18:45+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:20+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/global_interfaces.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/global_interfaces.html</loc>
-  <lastmod>2023-07-11T09:18:45+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:21+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/package_instance.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/package_instance.html</loc>
-  <lastmod>2023-07-11T09:18:45+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:21+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/manual/option_instance.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/manual/option_instance.html</loc>
-  <lastmod>2023-07-11T09:18:45+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:21+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/theme/builtin_themes.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/theme/builtin_themes.html</loc>
-  <lastmod>2023-07-11T09:18:45+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:21+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/theme/switch_theme.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/theme/switch_theme.html</loc>
-  <lastmod>2023-07-11T09:18:46+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:22+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/package/local_3rd_source_library.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/package/local_3rd_source_library.html</loc>
-  <lastmod>2023-07-11T09:18:46+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:22+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/package/local_package_old.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/package/local_package_old.html</loc>
-  <lastmod>2023-07-11T09:18:46+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:22+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/package/local_package.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/package/local_package.html</loc>
-  <lastmod>2023-07-11T09:18:46+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:22+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/package/system_package.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/package/system_package.html</loc>
-  <lastmod>2023-07-11T09:18:46+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:22+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/package/remote_package.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/package/remote_package.html</loc>
-  <lastmod>2023-07-11T09:18:47+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:23+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/toolchain/remote_toolchain.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/toolchain/remote_toolchain.html</loc>
-  <lastmod>2023-07-11T09:18:47+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:23+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/zh-cn/toolchain/builtin_toolchains.html</loc>
   <loc>https://xmake.io/mirror/zh-cn/toolchain/builtin_toolchains.html</loc>
-  <lastmod>2023-07-11T09:18:47+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:23+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/getting_started.html</loc>
   <loc>https://xmake.io/mirror/getting_started.html</loc>
-  <lastmod>2023-07-11T09:18:48+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:23+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/specification.html</loc>
   <loc>https://xmake.io/mirror/manual/specification.html</loc>
-  <lastmod>2023-07-11T09:18:48+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:23+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/builtin_variables.html</loc>
   <loc>https://xmake.io/mirror/manual/builtin_variables.html</loc>
-  <lastmod>2023-07-11T09:18:48+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:23+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/conditions.html</loc>
   <loc>https://xmake.io/mirror/manual/conditions.html</loc>
-  <lastmod>2023-07-11T09:18:48+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:24+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/custom_rule.html</loc>
   <loc>https://xmake.io/mirror/manual/custom_rule.html</loc>
-  <lastmod>2023-07-11T09:18:48+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:24+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/target_instance.html</loc>
   <loc>https://xmake.io/mirror/manual/target_instance.html</loc>
-  <lastmod>2023-07-11T09:18:49+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:24+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/project_target.html</loc>
   <loc>https://xmake.io/mirror/manual/project_target.html</loc>
-  <lastmod>2023-07-11T09:18:49+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:24+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/builtin_modules.html</loc>
   <loc>https://xmake.io/mirror/manual/builtin_modules.html</loc>
-  <lastmod>2023-07-11T09:18:49+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:24+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/custom_toolchain.html</loc>
   <loc>https://xmake.io/mirror/manual/custom_toolchain.html</loc>
-  <lastmod>2023-07-11T09:18:49+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:25+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/plugin_task.html</loc>
   <loc>https://xmake.io/mirror/manual/plugin_task.html</loc>
-  <lastmod>2023-07-11T09:18:49+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:25+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/package_dependencies.html</loc>
   <loc>https://xmake.io/mirror/manual/package_dependencies.html</loc>
-  <lastmod>2023-07-11T09:18:50+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:25+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/configuration_option.html</loc>
   <loc>https://xmake.io/mirror/manual/configuration_option.html</loc>
-  <lastmod>2023-07-11T09:18:50+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:25+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/extension_modules.html</loc>
   <loc>https://xmake.io/mirror/manual/extension_modules.html</loc>
-  <lastmod>2023-07-11T09:18:50+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:25+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/helper_interfaces.html</loc>
   <loc>https://xmake.io/mirror/manual/helper_interfaces.html</loc>
-  <lastmod>2023-07-11T09:18:50+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:25+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/global_interfaces.html</loc>
   <loc>https://xmake.io/mirror/manual/global_interfaces.html</loc>
-  <lastmod>2023-07-11T09:18:50+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:26+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/package_instance.html</loc>
   <loc>https://xmake.io/mirror/manual/package_instance.html</loc>
-  <lastmod>2023-07-11T09:18:51+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:26+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/manual/option_instance.html</loc>
   <loc>https://xmake.io/mirror/manual/option_instance.html</loc>
-  <lastmod>2023-07-11T09:18:51+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:26+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/theme/builtin_themes.html</loc>
   <loc>https://xmake.io/mirror/theme/builtin_themes.html</loc>
-  <lastmod>2023-07-11T09:18:51+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:26+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/theme/switch_theme.html</loc>
   <loc>https://xmake.io/mirror/theme/switch_theme.html</loc>
-  <lastmod>2023-07-11T09:18:51+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:26+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/package/local_3rd_source_library.html</loc>
   <loc>https://xmake.io/mirror/package/local_3rd_source_library.html</loc>
-  <lastmod>2023-07-11T09:18:51+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:26+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/package/local_package_old.html</loc>
   <loc>https://xmake.io/mirror/package/local_package_old.html</loc>
-  <lastmod>2023-07-11T09:18:52+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:27+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/package/local_package.html</loc>
   <loc>https://xmake.io/mirror/package/local_package.html</loc>
-  <lastmod>2023-07-11T09:18:52+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:27+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/package/system_package.html</loc>
   <loc>https://xmake.io/mirror/package/system_package.html</loc>
-  <lastmod>2023-07-11T09:18:52+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:27+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/package/remote_package.html</loc>
   <loc>https://xmake.io/mirror/package/remote_package.html</loc>
-  <lastmod>2023-07-11T09:18:52+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:27+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/toolchain/remote_toolchain.html</loc>
   <loc>https://xmake.io/mirror/toolchain/remote_toolchain.html</loc>
-  <lastmod>2023-07-11T09:18:53+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:27+08:00</lastmod>
 </url>
 </url>
 
 
 <url>
 <url>
   <loc>https://xmake.io/mirror/toolchain/builtin_toolchains.html</loc>
   <loc>https://xmake.io/mirror/toolchain/builtin_toolchains.html</loc>
-  <lastmod>2023-07-11T09:18:53+08:00</lastmod>
+  <lastmod>2023-08-22T10:07:28+08:00</lastmod>
 </url>
 </url>
 
 
 </urlset>
 </urlset>