Skip to content

shengliQWQ/tec

 
 

Repository files navigation

Trillek Engine C

Github actions RTFD docs
Trillek Engine CI Documentation Status

Support

Head onto our Discord for extended support on building and usage.
Discord Shield

Requirements

TEC requires cmake 3.9 and a few libraries GLFW3, GLM, ASIO, Protobuf, GLEW, Lua, Bullet, Dear ImGui, sol3, Spdlog and OpenAL which can be installed most easily via vcpkg

Documentation

Documentation is done via Doxygen for C++ code and supplementary docs must be maintained for the Lua API in the docs/ folder.

Whenever there is a Lua API change please update the corresponding docs/.

Local Preview

To preview the Lua API docs locally visit MkDocs and follow their setup guide. Then from the root directory run mkdocs serve.

Building from Source

Part 1 (VCPKG/Requirements)

  1. git clone https://github.com/Microsoft/vcpkg.git (If you already have VCPKG, move onto Part 2))
  2. Navigate to the vcpkg/ directory.

Windows

./bootstrap-vcpkg.bat
[OPTIONAL] ./vcpkg integrate install

MacOS

Prior to 11.0.1, run (NOT TESTED): sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / if bootstrap-vcpkg fails see here for more help

./bootstrap-vcpkg.sh
[OPTIONAL] ./vcpkg integrate install

Linux

apt-get install libgl1-mesa-dev xorg-dev libglu1-mesa-dev libxinerama-dev libxcursor-dev
./bootstrap-vcpkg.sh
[OPTIONAL] ./vcpkg integrate install

Install packges

The VCPKG toolchain file will install the packages found in vcpkg.json, see VCPKG CMake Integration and about Manifest Mode. If manual installation of packages is wanted/desired the following will install all packages. ./vcpkg install asio bullet3 glew glfw3 glm lua openal-soft protobuf zlib spdlog imgui sol2

Part 2 (Building)

  1. git submodule update --init in the root directory.
  2. mkdir build/ in to root directory
  3. cd build/

Windows (Visual Studio 2019)

  1. Run cmake-gui setting the source line to the root directory and the build line to the build directory.
  2. Hit configure and select Specify toolchain file for cross-compiling using **VCPKG_DIR**/scripts/buildsystems/vcpkg.cmake.
  3. Click generate; then open and build the solution in Visual Studio.
  4. In the project properties for trillek-client change the Debugging->Working Directory to $(SolutionDir)..\.
  5. Potentially Download and install oalinst.zip OpenAL installer and install it.

Linux

VCPKG (G++ 7 or CLang 4)
  1. cmake -DCMAKE_TOOLCHAIN_FILE=**VCPKG_DIR**/scripts/buildsystems/vcpkg.cmake .. in the build directory
  2. make in the build directory
NON-VCPKG - G++ 7 or CLang 4 (Unsupported due to cmake)
  1. INSTALL REQUIRED LIBS bullet, glew, glfw3, glm, asio, lua, openal-soft, spdlog, Dear ImGui, sol3(also known as sol2), and protobuf. Some of these will need versions not in your distribution (just ask for help in the IRC or Discord.)
    1. If you are on Ubuntu/Debian/etc. (something with apt):
      1. Run apt-get install libglew-dev libglfw3 libglm-dev libasio-dev
      2. Run apt-get install liblua5.2-dev libopenal-dev libbullet-dev
      3. Run apt-get install libprotobuf-dev protobuf-compiler libspdlog-dev
    2. If you are on Arch/etc. (something with pacman):
      1. Run pacman -S glew glfw-x11 glm asio lua52 openal bullet protobuf spdlog
  2. cmake .. in the build directory
  3. make tec in the build directory

Mac OS

  1. cmake -DCMAKE_TOOLCHAIN_FILE=**VCPKG_DIR**/scripts/buildsystems/vcpkg.cmake .. in the build directory
  2. make in the build directory

Part 3 (Unit Tests)

To generate the unit tests, follow the same instructions from before, but set to true the flag BUILD_TESTS_TEC

Clang Format

The follow docker script will setup a docker container that will run clang format. docker build -t clang-format-lint github.com/DoozyX/clang-format-lint-action

Windows

Run the following on windows to format all source files in the src dir docker run -it --rm --workdir /src -v ${pwd}:/src clang-format-lint --clang-format-executable /clang-format/clang-format11 -r -i true .

Linux

Run the following on windows to format all source files in the src dir docker run -it --rm --workdir /src -v $(pwd):/src clang-format-lint --clang-format-executable /clang-format/clang-format11 -r -i true .

Packages

No packages published

Languages

  • C++ 54.0%
  • C 44.8%
  • CMake 1.2%