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