Commit graph

39 commits

Author SHA1 Message Date
alexey.lysiuk
8846d79765 aedi: silence duplicate libraries linker warnings 2024-02-23 13:10:31 +02:00
alexey.lysiuk
bea867a95a aedi: update copyright years 2024-01-02 10:55:22 +02:00
alexey.lysiuk
acfcef3683 aedi: make mypy linter happy
state.py:112: error: Item "None" of "Match[str] | None" has no attribute "group"  [union-attr]
2023-12-15 16:40:05 +02:00
alexey.lysiuk
e8d8bba6ab aedi: apply linker workaround to affected clang version only
xcode 15.0 and 15.0.1 have weak symbols compatibility issue, they were released with clang version 1500.0.40.1
the bug was fixed in xcode 15.1 which was shipped with clang version 1500.1.0.2.5
2023-12-15 15:42:03 +02:00
alexey.lysiuk
a64068ac0d aedi: use version module from packaging
distutils has been removed from python 3.12, so it's version module is no longer available in original python distribution
fix #61
2023-11-04 13:07:36 +02:00
alexey.lysiuk
e96041ef05 aedi: add platform agnostic compiler and linker flags
set them explicitly for cmake based targets to use them in all checks during configuration step
otherwise, some of cmake checks ignores prefix path for includes and libraries
for example, `check_library_exists()` from sdl2 picks system iconv library without explicit flags set
2023-11-03 13:10:42 +02:00
alexey.lysiuk
4645a58fec aedi: print source version when building from git repository 2023-03-18 12:17:13 +02:00
alexey.lysiuk
c14705b6cc aedi: fix error reported by mypy
aedi/state.py:209: error: Incompatible return value type (got "Tuple[Optional[str], Any]", expected "Tuple[str, Path]")  [return-value]
2023-02-21 09:44:44 +02:00
alexey.lysiuk
9003287503 aedi: add ability to validate minimum os and sdk versions 2023-02-20 11:51:12 +02:00
alexey.lysiuk
69db497c21 aedi: handle source code package without single root directory for entire source code tree 2023-02-20 11:51:12 +02:00
alexey.lysiuk
0710bc1edf aedi: hide messages about reversed or failed source code patches during dry run 2023-02-19 12:26:25 +02:00
alexey.lysiuk
9084ebffb4 aedi: fix mypy default argument errors
error: Incompatible default for argument "..." (default has type "None", argument has type "...")  [assignment]
note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
2023-01-05 10:50:15 +02:00
alexey.lysiuk
4bfb07f6eb aedi: update copyright years 2023-01-01 10:46:34 +02:00
alexey.lysiuk
fac8e1d288 aedi: update flags environment variable via one call 2022-12-31 10:51:41 +02:00
alexey.lysiuk
3e3b1b5835 aedi: add quasi-glib command line option 2022-12-28 12:48:17 +02:00
alexey.lysiuk
7a76fb577b aedi: fix applying of patches 2022-08-30 16:11:38 +03:00
alexey.lysiuk
efe513ec17 aedi: implement building with static moltenvk
this applies to gzdoom and raze targets only
2022-08-22 10:49:48 +03:00
alexey.lysiuk
bda525b49a aedi: replace usages of legacy subprocess api
apply state's environment variables when running an external process
2022-08-21 11:58:00 +03:00
alexey.lysiuk
bcec0999de aedi: add configurable temp directory
use it as $TMPDIR via state's environment variables
2022-08-16 12:25:55 +03:00
alexey.lysiuk
de48b542be aedi: update copyright year 2022-01-11 11:43:50 +02:00
alexey.lysiuk
0ec387c33e aedi: add sdk_version() method to build state 2021-09-12 10:19:16 +03:00
alexey.lysiuk
59b8b2a7e1 aedi: do not set c/c++ compilers and sdk paths without a platform
default pathlib's path means '.' (the current directory) but not an invalid path
2021-09-01 11:42:14 +03:00
alexey.lysiuk
13bd0b413a aedi: change imports according to isort 2021-08-05 10:12:20 +03:00
alexey.lysiuk
419a8d746c aedi: use pathlib for compilers and sdk paths 2021-08-05 10:05:29 +03:00
alexey.lysiuk
5d924c087c aedi: move options from target to state 2021-08-05 09:59:49 +03:00
alexey.lysiuk
a274880aa6 aedi: move environment from target to state
this completes #34
2021-08-05 09:55:43 +03:00
alexey.lysiuk
557f5a79d3 aedi: fix reuse of variables with different types 2021-08-04 09:41:56 +03:00
alexey.lysiuk
5dc10de290 aedi: fix missing and erroneous type hints 2021-08-04 09:41:56 +03:00
alexey.lysiuk
0961551fd8 aedi: use pathlib module for most of path operations 2021-07-22 09:51:35 +03:00
alexey.lysiuk
8ab1bdd5cb aedi: use class instead of string for os version 2021-06-25 10:03:53 +03:00
alexey.lysiuk
9393c0559e aedi: store path to patch directory in build state 2021-06-20 14:45:22 +03:00
alexey.lysiuk
f6f6aa13ed aedi: make patching explicit 2021-06-01 10:18:38 +03:00
alexey.lysiuk
539d67838f aedi: remove most of git operations
ability to checkout a commit and implicit pull of remote changes were infinite source of errors
only initial clone of source code repository remains
2021-04-10 14:35:12 +03:00
alexey.lysiuk
a87e06540d aedi: ability to skip source code operations 2021-03-13 16:53:14 +02:00
alexey.lysiuk
8250875909 aedi: do git pull if not checking out particular commit 2021-02-18 13:27:35 +02:00
alexey.lysiuk
405d1a3b1f aedi: fetch from remote repo if source directory exists 2021-02-18 13:26:56 +02:00
alexey.lysiuk
982fe6b371 aedi: ability to checkout non-default branch 2021-02-18 13:21:16 +02:00
alexey.lysiuk
dde53f6936 aedi: better naming for source paths
* build state's source_path member is the path to store downloaded and checked out source code of all targets, used when calling with --target command line option
* build state's source member is assigned either from --source command line option directly or from --target command line option appended to source_path member
2021-01-17 12:37:35 +02:00
alexey.lysiuk
4999b2ee4a split build script onto several modules
put all code into new package, build script will use it as a black box
split build state from builder class, and pass state to target methods
place base, main, dependency, special targets into separate files, and put them in own package

This implements #19
2021-01-14 10:34:20 +02:00