aboutsummaryrefslogtreecommitdiff
path: root/xmake.lua
Commit message (Collapse)AuthorAgeFilesLines
* remove xcode 12.1 workaround (#339)Dan Engelbrecht2025-04-021-6/+0
| | | | | * remove xcode 12.1 workaround * bump min macos version to 14.0
* reduced memory churn using fixed_xxx containers (#236)Stefan Boberg2025-03-061-0/+3
| | | | | | * Added EASTL to help with eliminating memory allocations * Applied EASTL to eliminate memory allocations, primarily by using `fixed_vector` et al to use stack allocations / inline struct allocations Reduces memory events in traces by close to a factor of 10 in test scenario (starting editor for project F)
* enable LTO / optimize for speed (#256)Stefan Boberg2024-12-041-1/+5
| | | | | * changed so release build uses lto and optimizes for speed on Mac and Windows * Linux does not currently support LTO due to toolchain limitations
* don't force openssl to version 3.0.8 (#252)Stefan Boberg2024-12-031-3/+1
| | | should fix build issues caused by curl pulling in a different version
* Insights-compatible memory tracking (#214)Stefan Boberg2024-11-251-0/+19
| | | | | | | | | | | | | This change introduces support for tracing of memory allocation activity. The code is ported from UE5, and Unreal Insights can be used to analyze the output. This is currently only fully supported on Windows, but will be extended to Mac/Linux in the near future. To activate full memory tracking, pass `--trace=memory` on the commandline alongside `--tracehost=<ip>` or `-tracefile=<path>`. For more control over how much detail is traced you can instead pass some combination of `callstack`, `memtag`, `memalloc` instead. In practice, `--trace=memory` is an alias for `--trace=callstack,memtag,memalloc`). For convenience we also support `--trace=memory_light` which omits call stacks. This change also introduces multiple memory allocators, which may be selected via command-line option `--malloc=<allocator>`: * `mimalloc` - mimalloc (default, same as before) * `rpmalloc` - rpmalloc is another high performance allocator for multithreaded applications which may be a better option than mimalloc (to be evaluated). Due to toolchain limitations this is currently only supported on Windows. * `stomp` - an allocator intended to be used during development/debugging to help track down memory issues such as use-after-free or out-of-bounds access. Currently only supported on Windows. * `ansi` - fallback to default system allocator
* Revert "remove temporary workaround involving _LIBCPP_DISABLE_AVAILABILITY ↵Dan Engelbrecht2024-10-101-0/+6
| | | | | (#191)" (#193) This reverts commit e809931618b443809e9740edb70a62d0cab01f87.
* remove temporary workaround involving _LIBCPP_DISABLE_AVAILABILITY (#191)Stefan Boberg2024-10-081-6/+0
| | | | | | * remove temporary workaround involving _LIBCPP_DISABLE_AVAILABILITY * temp disable signing on Mac this change should be revisited once we have resumed regular service wrt MacOS runners
* Separate UTF-8 flags by platform (#178)Dmytro Ivanov2024-10-011-2/+5
| | | | | | | Fixes the following warnings ``` 1>cl : Command line warning D9002: ignoring unknown option '-source-charset=utf-8' 1>cl : Command line warning D9002: ignoring unknown option '-execution-charset=utf-8' ```
* Fixing compilation errors with fmt v11 (#172)Dmytro Ivanov2024-09-271-0/+4
|
* cleaned up top level xmake (#125)Stefan Boberg2024-08-191-14/+12
|
* enable mimalloc on arm64 (#120)Stefan Boberg2024-08-161-10/+8
| | | * enable mimalloc on arm64
* enable sentry on arm64 (#119)Stefan Boberg2024-08-151-2/+3
| | | * enable sentry on arm64
* bump vcpkg and xmake to latest (#40)Dan Engelbrecht2024-04-241-1/+1
| | | - Improvement: Bumped xmake to 2.9.1 and vcpkg version to 2024.03.25
* add yaml serialization support (#3)Stefan Boberg2024-03-261-0/+2
| | | | | | | this change adds serialization of payloads as YAML, but not parsing. The implementation is somewhat based on the JSON path, and may be collapsed eventually as it is possible to serialize JSON format using the same code it also separates out the JSON serialization into a separate file for ease of maintenance any HTTP request response may be formatted as yaml by using a `.yaml` suffix or an `Accept: text/yaml` header
* clean up test linking (#4)Dan Engelbrecht2024-03-141-2/+4
| | | | | | | - Improvement: Add zenhttp-test and zenutil-test - Improvement: Moved cachepolicy test to cachepolicy.cpp - Improvement: Renamed cachestore tests from z$ to cachestore - Improvement: Moved test linking so test for a lib is linked by <lib>-test - Improvement: Removed HttpRequestParseRelativeUri in httpstructuredcache.cpp and use the one in cacherequests.h instead
* changed RPC recording to MPSC setup (#638)Stefan Boberg2024-01-311-0/+6
| | | fixes rare race condition when using RPC recording for long periods of time
* embed html frontend content as binary compiled data (#559)Dan Engelbrecht2023-11-231-0/+11
| | | | | | - Feature: Added xmake task `updatefrontend` which updates the zip file containing the frontend html (`/src/zenserver/frontend/html.zip`) - Improvement: The frontend html content is no longer appended at the end of the executable which prevented signing, instead it is compiled in from the `/src/zenserver/frontend/html.zip` archive - Improvement: MacOS now does ad-hoc code signing by default when issuing `xmake bundle`, signing with proper cert is done on CI builds
* use dynamic port assignment for tests (#545)Stefan Boberg2023-11-171-0/+7
| | | this change replaces hard-coded port numbers in tests with dynamically assigned ports, to avoid potential issues around socket lifetimes and re-use policies
* schema bump (#544)Dan Engelbrecht2023-11-151-1/+1
|
* implemented openssl-free encryption for Windows (#520)Stefan Boberg2023-11-081-1/+3
| | | trims 40% off the (Windows) executable size
* removed zstd references (#521)Stefan Boberg2023-11-081-2/+1
|
* factored out some compiler definitions etc into zenbase (#517)Stefan Boberg2023-11-071-0/+1
| | | | | this is a header-only library which mostly contains definitions to support different platforms and compilers. It is part of the zen codebase but is intended to be consumable separately to zenbase etc to support standalone transport plug-ins and similar.
* bump xmake CI version to 2.8.2 (#514)Dan Engelbrecht2023-11-071-0/+1
| | | | * bump xmake CI version to 2.8.2 * show test times in log
* spdlog implementation hiding (#498)Stefan Boberg2023-11-061-3/+2
| | | | | | | | | this change aims to hide logging internals from client code, in order to make it easier to extend and take more control over the logging process in the future. As a bonus side effect, the generated code is much tighter (net delta around 2.5% on the resulting executable which includes lots of thirdparty code) and should take less time to compile and link. Client usage via macros is pretty much unchanged. The main exposure client code had to spdlog internals before was the use of custom loggers per subsystem, where it would be common to have `spdlog::logger` references to keep a reference to a logger within a class. This is now replaced by `zen::LoggerRef` which currently simply encapsulates an actual `spdlog::logger` instance, but this is intended to be an implementation detail which will change in the future. The way the change works is that we now handle any formatting of log messages in the zencore logging subsystem instead of relying on `spdlog` to manage this. We use the `fmt` library to do the formatting which means the client usage is identical to using `spdlog`. The formatted message is then forwarded onto any sinks etc which are still implememted via `spdlog`.
* set up arch properly when running tests (mac) (#505)Stefan Boberg2023-10-281-0/+2
|
* statsd metrics reporting (#496)Stefan Boberg2023-10-251-0/+1
| | | | | added support for reporting metrics via statsd style UDP messaging, which is supported by many monitoring solution providers this change adds reporting only of three cache related metrics (hit/miss/put) but this should be extended to include more metrics after additional evaluation
* restructured transports SDK for easier UE integration (#470)Stefan Boberg2023-10-121-5/+1
|
* pluggable asio transport (#460)Stefan Boberg2023-10-111-0/+1
| | | | | | | | | added pluggable transport based on asio. This is in an experimental state and is not yet a replacement for httpasio even though that is the ultimate goal also moved plugin API header into dedicated part of the tree to clarify that it is meant to be usable in isolation, without any dependency on zencore et al moved transport implementations into dedicated source directory in zenhttp note that this adds code to the build but nothing should change at runtime since the instantiation of the new code is conditional and is inactive by default
* remove legacy compute interfaces (#461)Stefan Boberg2023-10-111-8/+0
| | | | | * removed legacy compute code, which will be replaced with a new implementation in the future * also updated references to Jupiter storage
* experimental pluggable transport support (#436)Stefan Boberg2023-10-101-0/+4
| | | this change adds a `--http=plugin` mode where we support pluggable transports. Currently this defaults to a barebones blocking winsock implementation but there is also support for dynamic loading of transport plugins, which will be further developed in the near future.
* added support for sln on Mac (#421)Stefan Boberg2023-09-221-4/+10
| | | this makes it so users can use xmake sln on Mac as well as Windows to generate IDE files
* added linker/compile options for determinism (#420)Stefan Boberg2023-09-221-2/+6
|
* VFS implementation for local storage service (#396)Stefan Boberg2023-09-201-0/+1
| | | currently, only Windows (using Projected File System) is supported
* revive UE toolchain build (#343)Dan Engelbrecht2023-08-221-1/+2
| | | | | | | | | * add comment about 7z usage in xmake bundle * add ue-libcxx lib/headers and licence + tps * update get_ue_toolchain.sh to use embedded libc++ and decouple from p4 * clearer output when falling back to zip from 7z * update ci scripts to use ue toolchain on linux * updated linux build README.md * changelog
* update vcpkg dependencies (#356)Dan Engelbrecht2023-08-111-6/+17
| | | | | | * bump vcpkg version * fmt lib 10 fixes * xmake dependencies (with linux workarounds) * changelog
* add 7z dependency to xmake fileStefan Boberg2023-05-151-0/+3
|
* fix return code on tests (#284)Dan Engelbrecht2023-05-101-1/+1
| | | fix help for xmake test
* moved source directories into `/src` (#264)Stefan Boberg2023-05-021-7/+7
| | | | | | * moved source directories into `/src` * updated bundle.lua for new `src` path * moved some docs, icon * removed old test trees
* fix sentry report callstack (#256)Dan Engelbrecht2023-04-251-0/+1
| | | | | | | * Include file, line and function in sentry log error messages * use sync direct error logger to get correct call stacks on error * changelog * use d1trimfile on windows to shorten file path on windows * constexpr -> consteval
* fixed dashboard file serving bug (#255)Stefan Boberg2023-04-241-0/+2
| | | | | a recent change which introduced support for specifying accept: implicitly via the file extension in the URI caused fallout in the dashboard which would fail to serve any content because the extension was stripped from the RelativeUri accessor. This change fixes that by retaining a copy of the Uri string view which includes the suffix additionally, in order to test this change with both asio/http.sys paths I made the path used for all tests configurable in zenserver-test which involved pulling in a change from sb/proto which makes testing configuration a bit more flexible
* tweaks for enabling unity buildsStefan Boberg2023-04-191-0/+1
| | | | | | | | | | mostly changes to make sure anonymous namespaces don't clash and a change to avoid windows headers from leaking into other compilation units unity builds are not yet enabled by default, but can be enabled by uncommenting this line in the root `xmake.lua` ``` --add_rules("c++.unity_build") ```
* lock cxxopts to v3.0.0 for nowStefan Boberg2023-03-271-1/+1
| | | | | | v3.1.x contains breaking changes to exceptions this is a temporary workaround
* removed catch2 (#241)Stefan Boberg2023-03-071-8/+0
| | | removed catch2 since it's de facto not supported due to the lack of multithreading support
* junit test reporting (#239)Dan Engelbrecht2023-02-231-9/+49
| | | | - Feature: `--junit` switch to `xmake test` to generate junit style reports of tests. - Feature: CI build on GitHub now uploads junit test reports as artifact to the check for PR validation and mainline validation
* added `xmake sln` task which replaces `generate_projects.bat`Stefan Boberg2023-02-011-0/+9
|
* mergeStefan Boberg2023-01-261-14/+9
|\
| * removed HttpLaunchService and related codeStefan Boberg2023-01-241-7/+0
| | | | | | | | this has been used for testing purposes but should not be in the production executable
| * removed faux vfs config optionStefan Boberg2023-01-241-8/+0
| |
| * added precommit taskStefan Boberg2023-01-241-0/+9
| | | | | | | | | | this makes it easier to trigger a local pre-commit check which is useful for ensuring clang-format etc has been applied properly prior to a commit
* | removed experimental mesh codeStefan Boberg2023-01-261-8/+0
|/ | | | should be replaced with a proper implementation later