Commit graph

104 commits

Author SHA1 Message Date
Dennis Felsing 3497bfdcf3 glslangValidator -> glslang
Following glslang 12.3.0, see https://github.com/KhronosGroup/glslang/releases/tag/12.3.0
2023-07-28 14:28:30 +02:00
Dennis Felsing 46ff814674 Update libraries
SDL 2.0.20 -> 2.26.5
Curl 7.84.0 -> 8.0.1
Freetype 2.12.1 -> 2.13.0
SQLite 3.39.2 -> 3.41.2
ffmpeg 5.1 -> 6.0
libpng 1.6.37 -> 1.6.39
2023-05-19 01:03:22 +02:00
Eric Long 2f4faccaa7
Fix CheckAtomic.cmake 2022-12-24 22:13:17 +08:00
Jupeyy 19a107a098 Use CMake cache instead of extra file for shader compile, fix typos 2022-12-20 11:11:28 +01:00
bors[bot] b21ba35225
Merge #5599
5599: Add support for Rust code in DDNet r=def- a=heinrich5991

The glue is done using the [cxx crate](https://cxx.rs/) on the Rust side.

As a proof-of-concept, only a small console command (`rust_version`) printing the currently used Rust version was added.

You can generate and open the Rust documentation using `DDNET_TEST_NO_LINK=1 cargo doc --open`.

You can run the Rust tests using `cmake --build <build dir> --target run_rust_tests`, they're automatically included in the `run_tests` target as well.

Rust tests don't work on Windows in debug mode on Windows because Rust cannot currently link with the debug version of the C stdlib on Windows: https://github.com/rust-lang/rust/issues/39016.

---

The stuff in `src/rust-bridge` is generated using
```
cxxbridge src/engine/shared/rust_version.rs --output src/rust-bridge/engine/shared/rust_version.cpp --output src/rust-bridge/engine/shared/rust_version.h
cxxbridge src/engine/console.rs --output src/rust-bridge/cpp/console.cpp --output src/rust-bridge/cpp/console.h
```

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2022-11-06 21:40:48 +00:00
Rafael Fontenelle cd14660307 Fix misspellings 2022-10-25 13:51:56 -03:00
heinrich5991 dcd76fd3e1 Add support for Rust code in DDNet
The glue is done using the [cxx crate](https://cxx.rs/) on the Rust
side.

As a proof-of-concept, only a small console command (`rust_version`)
printing the currently used Rust version was added.

You can generate and open the Rust documentation using
`DDNET_TEST_NO_LINK=1 cargo doc --open`.

You can run the Rust tests using `cmake --build <build dir> --target
run_rust_tests`, they're automatically included in the `run_tests`
target as well.

Rust tests don't work on Windows in debug mode on Windows because Rust
cannot currently link with the debug version of the C stdlib on Windows:
https://github.com/rust-lang/rust/issues/39016.

---

The stuff in `src/rust-bridge` is generated using
```
cxxbridge src/engine/shared/rust_version.rs --output src/rust-bridge/engine/shared/rust_version.cpp --output src/rust-bridge/engine/shared/rust_version.h
cxxbridge src/engine/console.rs --output src/rust-bridge/cpp/console.cpp --output src/rust-bridge/cpp/console.h
```
2022-10-19 23:46:06 +02:00
Dennis Felsing a9da26d0dc Bundle libpng16.16.dylib for macOS
dyld[41859]: Library not loaded: @rpath/libpng16.16.dylib
  Referenced from: /Users/deen/Library/Application Support/Steam/steamapps/common/DDraceNetwork/ddnet/DDNet
  Reason: tried: '/Users/deen/Library/Application Support/Steam/steamapps/common/DDraceNetwork/ddnet/../Frameworks/libpng16.16.dylib' (no such file), '/Users/deen/Library/Application Support/Steam/steamapps/common/DDraceNetwork/ddnet/../Frameworks/libpng16.16.dylib' (no such file), '/usr/local/lib/libpng16.16.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/lib/libpng16.16.dylib' (no such file)
2022-07-28 16:42:52 +02:00
Dennis Felsing 1efde9e4b2 Revert "Build our own drmingw with mingw" 2022-06-24 13:29:20 +02:00
Jupeyy 65ad57a448 Change from pnglite to libpng for PNG reading
This is desirable mainly because libpng is maintained and pnglite is
not. pnglite was last updated in 2007 (15 years ago) and probably has a
lot of security vulnerabilities.

libpng is an actively maintained library also used by browsers like
Firefox or Chromium, so it's less likely to contain security
vulnerabilities, also it's more likely to be packaged by Linux
distributions.
2022-06-21 13:37:14 +02:00
Dennis Felsing c237f8d47a Build our own drmingw with mingw
Get WinSDKDebuggingTools compatible with Windows 7:
https://www.microsoft.com/en-us/download/details.aspx?id=8279&ranMID=46131&ranEAID=a1LgFw09t88&ranSiteID=a1LgFw09t88-hqwNB0ABR6xeVqDZwkGZAw&epi=a1LgFw09t88-hqwNB0ABR6xeVqDZwkGZAw&irgwc=1&OCID=AID2200057_aff_7806_1243925&tduid=%28ir__qxvdeeyzhskf6zzy0axab6w3ye2xvkxn3xgwkihq00%29%287806%29%281243925%29%28a1LgFw09t88-hqwNB0ABR6xeVqDZwkGZAw%29%28%29&irclickid=_qxvdeeyzhskf6zzy0axab6w3ye2xvkxn3xgwkihq00
2022-06-10 15:59:17 +02:00
Alexander Akulich 69e312f5fb CMake/BuildVulkanShaders: Fix check for GLSLANG_VALIDATOR_PROGRAM_FOUND 2022-05-15 14:22:38 +03:00
Jupeyy bb1ed45c3d Emscripten support 2022-03-25 12:42:18 +01:00
bors[bot] f95cc6cb11
Merge #4858 #4859 #4860
4858: Fail when shader can't be compiled (fixes #4857) r=Jupeyy a=def-

<!-- What is the motivation for the changes of this pull request -->

## Checklist

- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


4859: Fix Debian 9 compilation r=Jupeyy a=def-

<!-- What is the motivation for the changes of this pull request -->

## Checklist

- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


4860: Only try exe on Windows r=Jupeyy a=def-

<!-- What is the motivation for the changes of this pull request -->

## Checklist

- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


Co-authored-by: Dennis Felsing <dennis@felsin9.de>
2022-03-21 16:46:34 +00:00
Dennis Felsing ed9f285071 Only try exe on Windows 2022-03-21 16:55:16 +01:00
Dennis Felsing 3341fb13f9 Fail when shader can't be compiled (fixes #4857) 2022-03-21 16:32:45 +01:00
Jupeyy fbeba9eb5f Add Vulkan backend 2022-03-21 12:39:51 +01:00
Dennis Felsing 42373ca7a2 exception_handling -> drmingw 2022-02-18 11:47:15 +01:00
Jupeyy 4330ff83cf Add exception handling for Windows 2022-02-18 11:35:06 +01:00
Dennis Felsing 2bb12cfcdf Lib updates (untested)
curl 7.79.0 -> 7.81.0
freetype 2.11.0 -> 2.11.1
sqlite 3.36.0 -> 3.37.2
ffmpeg 4.4 -> 5.0
websockets 4.2 -> 4.3
2022-02-07 10:42:18 +01:00
heinrich5991 1820a0e168 Add some checksum functions to the client
Let's see if it works out, if not, we can revert it.
2022-01-31 21:31:26 +01:00
yangfl b072c44c08 Add CheckAtomic.cmake
Sometimes linking against libatomic is required for atomic ops, if
the platform doesn't support lock-free atomics.

This is a fixup for #4556, which does not work as intended.
2022-01-07 22:43:38 +08:00
def feb863306a Remove SQLite dependency on macOS, add DDNet-Server to client app 2021-12-25 19:05:15 +01:00
def 440baa17be Support building universal binaries with discord
For now only x86-64 is supported by discord sdk, arm64 we ship without
discord sdk. So players can choose if they want more performance without
discord integration, or less performance with discord integration.
2021-12-20 16:07:00 +01:00
def 8c36af9663 ffmpeg: Prefer names used by bundled libs
so that -DPREFER_BUNDLED_LIBS=ON works on macOS
2021-12-20 00:17:38 +01:00
def 0ca468fab0 Prefer system SDL2 lib when -DPREFER_BUNDLED_LIBS=OFF 2021-12-20 00:17:38 +01:00
def 40973df7fe Try to fix darwin toolchain 2021-12-20 00:17:38 +01:00
def b91d4bfb89 Support running mac executables from build directory directly 2021-12-20 00:17:38 +01:00
def 28ac9396cc Support libfat directory for macOS, use arm64 libs (fixes #3250)
Builds and runs successfully with:
  cmake -DCMAKE_BUILD_TYPE=Release -GNinja -DPREFER_BUNDLED_LIBS=ON -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"
  ninja package_dmg

Tested successfully with native arm64 and rosetta

No discord support for universal binary
2021-12-20 00:17:38 +01:00
def a8873b3af7 Fix GLEW system lib linking on macOS
Only GLEW::GLEW is provided, GLEW_LIBRARIES is empty by default
2021-12-18 00:36:33 +01:00
def b733f365dc Add zlib1.dll for curl, add pnglibconf.h
As reported by Jupeyy in https://github.com/ddnet/ddnet-libs/pull/17#issuecomment-933034244
2021-10-04 00:31:58 +02:00
Jupeyy b216b6744a Add Android build scripts 2021-08-24 12:18:20 +02:00
Rafael Fontenelle 966b3ae57a
Search for both x264 and libx264 2021-03-25 17:17:14 -03:00
heinrich5991 d7019a244e Get rid of the MySQL C++ connector as a dependency
We now use the C API directly. This has the advantage of using one
obscure dependency less, as the C++ connector also used the C API.
2021-02-24 17:34:08 +01:00
Edgar 96db08b760 add discord rich presence 2021-01-31 10:17:21 +01:00
def fcaae09341 Fix linux build by reordering ffmpeg libs (fixes #3466) 2021-01-04 18:19:17 +01:00
heinrich5991 59cbc01415 Bump minimum CMake version from 2.8 to 2.8.12
Declare that we're fine with policies up to 3.19.1. This should fix
policy errors and "too low cmake_minimal_version() errors" for the
forseeable future.
2020-12-08 10:24:22 +01:00
bors[bot] e88a7dee0a
Merge #3131
3131: Get CMake 2.8 working r=def- a=Learath2

It only required fixing one weird CMake 2.8 oddity.

I guess we should merge this if we are keeping to claim 2.8 support.

Co-authored-by: Learath2 <learath2@gmail.com>
2020-10-18 08:44:50 +00:00
Learath2 4f573964c7 Get CMake 2.8 working 2020-10-18 03:11:31 +02:00
Learath2 be834b553f Also compile glew.c with GLEW_STATIC 2020-10-17 23:53:08 +02:00
def 700bfd78b8 Try to fix FindSQLite3.cmake
For AlwaysLivid's Haiku port:

> CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
> Please set them or make sure they are set and tested correctly in the CMake files:
> /boot/home/ddnet/SQLite3_INCLUDEDIR

@heinrich5991 thoughts?
2020-10-03 13:39:24 +02:00
def 24526d0fc8 Further websockets build fixes 2020-09-17 13:44:47 +02:00
QingGo 70b2c842e3 update cmake file to use libwebsockets bundle 2020-09-16 23:16:13 +08:00
def 45457b6185 Bundle FFmpeg for everything
so that we can enable videorecorder by default

Works as expected.
2020-09-07 07:04:29 +02:00
def cbbcce66fe Add libgcc_s_dw2-1 for Win32 SDL2 2020-08-23 08:01:51 +02:00
def e0c06464d2 Version 14.3.1 2020-08-10 23:43:10 +02:00
def 0a9eb72d52 Fix bundling SQLite3 on Mac
Verified locally
2020-08-10 18:35:04 +02:00
Zwelf 0fa13f6bf9 Fix include directories for SQLite by heinrich5991 2020-08-03 16:07:36 +02:00
Zwelf 040bec2258 Fix FindSQLite3.cmake 2020-08-03 12:58:52 +02:00
Zwelf ad21ec1269 Add SQLite to build system and CI 2020-08-03 12:58:52 +02:00