Commit graph

65 commits

Author SHA1 Message Date
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
18d5007938 aedi: make extra linker flags detection silent 2023-10-11 11:51:15 +03:00
alexey.lysiuk
db80bdab38 aedi: append arguments to cmake flags variables instead of overwriting them 2023-10-08 12:49:59 +03:00
alexey.lysiuk
bde88a27ce aedi: add fix for xcode 15.0 linker issue
https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes#Known-Issues
2023-10-08 10:34:55 +03:00
alexey.lysiuk
703b33e6ae aedi: support explicit module paths to keep cmake targets 2023-07-20 12:10:14 +03:00
alexey.lysiuk
2d47d70110 aedi: support keeping of cmake module targets without namespace 2023-07-20 12:09:06 +03:00
alexey.lysiuk
477a2c88be aedi: update module target handling to the current version of cmake
`_IMPORT_CHECK_TARGETS` and `_IMPORT_CHECK_FILES_FOR_...` were replaced with `_cmake_import_check_targets` and `_cmake_import_check_files_for_...` in cmake 3.24.0, see 59cc92085e
2023-04-04 13:07:16 +03:00
alexey.lysiuk
299731c8e2 aedi: support xcode project generation in meson base target 2023-03-30 16:38:07 +03:00
alexey.lysiuk
22df46033f aedi: support options in meson base target 2023-03-28 13:25:02 +03:00
alexey.lysiuk
679396ec34 aedi: handle verbose mode in meson base target 2023-03-28 13:23:08 +03:00
alexey.lysiuk
845f0fe19a aedi: preferred way to launch meson commands
* use setup command explicitly at configure step
* invoke meson executable directly at every step
2023-03-28 13:22:33 +03:00
alexey.lysiuk
4b129332af aedi: add base meson target 2023-03-27 11:01:04 +03:00
alexey.lysiuk
7dcef1dca4 aedi: BuildTarget.update_text_file() restores modification time after write
the primary reason for this change is to avoid update of files at build step when these files were created at configuration step
2023-03-22 11:54:15 +02:00
alexey.lysiuk
06c741fbc1 aedi: BuildTarget.update_text_file() writes to disk only when content is changed 2023-03-22 11:50:17 +02:00
alexey.lysiuk
66663bf51e aedi: fix timestamp only differences in static libraries
this fixes #55
2023-02-12 09:54:51 +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
69aa725cb8 aedi: remove os version and sdk from build target 2023-01-01 10:47:03 +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
b48ce185c2 aedi: move single executable C target to base module 2022-09-23 13:48:32 +03:00
alexey.lysiuk
b89ee4e73c aedi: better install customization
`install` command line argument is implicit only when no options are specified, and it needs to be added explicitly otherwise
2022-08-28 09:51:13 +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
7fc549f24d aedi: add descriptions to target class methods 2022-08-18 12:40:52 +03:00
alexey.lysiuk
24a2c520bd aedi: add initialize method to target class
it's called on all targets except selected one before prefix directory creation
2022-08-18 12:40:52 +03:00
alexey.lysiuk
558129a734 aedi: fix xcode project generation when sdk path is set 2022-07-02 11:00:02 +03:00
alexey.lysiuk
de48b542be aedi: update copyright year 2022-01-11 11:43:50 +02:00
alexey.lysiuk
43e9451e64 aedi: remove unused import from base targets module 2021-09-12 10:36:14 +03:00
alexey.lysiuk
0ec387c33e aedi: add sdk_version() method to build state 2021-09-12 10:19:16 +03:00
alexey.lysiuk
e3289f88ba aedi: do not store absolute paths in object files
cmake generated makefiles pass absolute paths to compiler, -ffile-prefix-map command line option helps to avoid this issue
make target doesn't need this options because it's built in-tree
2021-09-10 12:13:56 +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
68bb3a5443 aedi: do not pass configure options to make
adjust intl target to this change
2021-08-14 13:03:39 +03:00
alexey.lysiuk
fe3b42d709 aedi: make cmake project name matching more strict 2021-08-13 10:19:17 +03:00
alexey.lysiuk
5275d2a2fb aedi: remove leftover from cmake target detection code 2021-08-13 09:58:17 +03:00
alexey.lysiuk
3db28072a3 aedi: strip lib prefix during cmake target detection 2021-08-12 13:00:54 +03:00
alexey.lysiuk
99f53dfd84 aedi: add caching for cmake target detection
it was processing the same cmake file over and over again in order to get project name
2021-08-12 13:00:08 +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
97110d58dc aedi: use path object argument for _process_pkg_config() 2021-08-01 16:14:43 +03:00
alexey.lysiuk
ed79f684b1 aedi: remove /Applications cmake path from environment 2021-07-25 12:56:21 +03:00
alexey.lysiuk
508f50fbdd aedi: simplify condition in target filter for cmake modules 2021-07-25 12:04:58 +03:00
alexey.lysiuk
92bb063a74 aedi: target filter for cmake modules allows hyphen in target names 2021-07-25 12:04:19 +03:00
alexey.lysiuk
0961551fd8 aedi: use pathlib module for most of path operations 2021-07-22 09:51:35 +03:00
alexey.lysiuk
62b6b34b6e aedi: add target's ability to validate minimum sdk versions 2021-06-28 10:51:47 +03:00
alexey.lysiuk
0a447b3077 aedi: remove obsolete target's initialize method 2021-06-28 10:50:35 +03:00
alexey.lysiuk
34c9aa6e53 aedi: prepend prefix bin path to environment variable 2021-06-25 10:05:55 +03:00
alexey.lysiuk
2e58efc866 aedi: add target's ability to validate minimum os versions 2021-06-25 10:05:15 +03:00
alexey.lysiuk
8ab1bdd5cb aedi: use class instead of string for os version 2021-06-25 10:03:53 +03:00