Reece
d22eb40b4e
[+] AuSwInfo win ver checks [+] Print network adapters [*] Update time [*] Update IO [*] Added extended process map tests [*] Added UDP stream test server [+] Added cert pinning callback demo [*] Updated runtime [+] Added readme [+] Added crypto tests (missing quite a bit still. old tests could be copied over)
81 lines
2.4 KiB
Markdown
81 lines
2.4 KiB
Markdown
# Hello
|
|
|
|
Aurora runtime *basic* tests and demos for barebones use cases.
|
|
|
|
# Getting ready
|
|
|
|
```
|
|
git clone --recursive https://gitea.reece.sx/AuroraSupport/HelloAurora
|
|
```
|
|
|
|
|
|
# Building
|
|
|
|
|
|
## Building for Windows
|
|
|
|
Tools required: MSVC (modernish?), premake5
|
|
|
|
No special steps are required. Assuming premake is present in %PATH%, run .\Win_x64_NoToolkit.bat and open the sln generated in the .\Build\Workspace directory.
|
|
|
|
Cross-arch: `--target-x86_[32/64]` can be added to either family of scripts to readd the specified architecture.
|
|
|
|
Important: if you wish to work with JavaScript projects in the future, you must ensure you have an x86_64 build of premake5.
|
|
|
|
|
|
## Building for Linux
|
|
|
|
|
|
|
|
* Procure or build; and install libc++ (clangs native not fit-for-linux STL)
|
|
|
|
Build:
|
|
```
|
|
git clone https://github.com/llvm/llvm-project.git
|
|
cd llvm-project
|
|
mkdir build
|
|
cmake \
|
|
-G Ninja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DCMAKE_C_COMPILER=clang \
|
|
-DCMAKE_CXX_COMPILER=clang++ \
|
|
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
|
|
-DLLVM_EXTERNAL_LIT=/usr/bin/lit \
|
|
-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=NO \
|
|
-B build \
|
|
-S llvm
|
|
ninja -C build cxx cxxabi
|
|
ninja -C build check-cxx check-cxxabi
|
|
ninja -C build install-cxx install-cxxabi
|
|
```
|
|
Note: We use libc++ as a one-size-fits-all cross-platform STL solution. Its' core platform abstraction might suck, but it does well to maintain modern container and utility support. Plus, it's the defacto standard for embedded systems, meme web technology, and non-standard pc things including games consoles and mac. Pipeline and software dependencies can be better optimized and QA'd once normalized to one or two main STL targets. The bits that do suck, like thread primitives, aren't used by most developers who care about performance anyway. The quirks that are there, like locale fetch issues, don't affect us.
|
|
|
|
* Procure or compile; and install premake
|
|
|
|
Build:
|
|
|
|
```
|
|
git clone https://gitea.reece.sx/AuroraPipeline/premake
|
|
cd premake
|
|
make -f Bootstrap.mak linux
|
|
cp bin/release/premake5 /usr/bin/premake5
|
|
chmod +x /usr/bin/premake5
|
|
```
|
|
|
|
* Run the final premake script
|
|
```
|
|
./Linux_x64_NoToolkit.sh
|
|
```
|
|
|
|
* Compile...
|
|
```
|
|
cd Build/Workspace
|
|
make -jthreadsN config=[debug/stage/ship]_linux
|
|
```
|
|
|
|
Cross-arch: none yet.
|
|
|
|
# Regeneration/rebuild
|
|
|
|
Repeat the last batch/bash script; and rerun make/msbuild, or reload all in Visual Studio |