diff options
| author | Bent Bisballe Nyeng <deva@aasimon.org> | 2026-02-03 21:54:09 +0100 |
|---|---|---|
| committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2026-02-03 21:54:09 +0100 |
| commit | be2184d36d4492e43fbed1f6581fa26636d803ac (patch) | |
| tree | 4eea32bd931a5be61fa7b370def8817d6a4bcc35 /src | |
| parent | f66ab53b9380a5367e24727df620d6620ab031f7 (diff) | |
Remove ctor::flags construct and apply tool specific flags (ie. ctor::cxx_flags, ...) directly in build config. Loosen generator requirements, to allow for lambda's directly.new_syntax
Diffstat (limited to 'src')
| -rw-r--r-- | src/ctor.h | 38 |
1 files changed, 29 insertions, 9 deletions
@@ -364,10 +364,14 @@ struct build_configuration std::is_same_v<Args, ctor::target> || std::is_same_v<Args, ctor::sources> || std::is_same_v<Args, ctor::depends> || - std::is_same_v<Args, ctor::flags> || std::is_same_v<Args, ctor::externals> || - std::is_same_v<Args, ctor::GeneratorOneToOne> || - std::is_same_v<Args, ctor::GeneratorManyToOne> + std::is_convertible_v<Args, ctor::GeneratorOneToOne> || + std::is_convertible_v<Args, ctor::GeneratorManyToOne> || + std::is_same_v<Args, ctor::c_flags> || + std::is_same_v<Args, ctor::cxx_flags> || + std::is_same_v<Args, ctor::ld_flags> || + std::is_same_v<Args, ctor::ar_flags> || + std::is_same_v<Args, ctor::asm_flags> ) && ...) constexpr build_configuration(Args && ... arg) { @@ -397,22 +401,38 @@ struct build_configuration { depends = arg.depends; } - else if constexpr(std::is_same_v<Args, ctor::flags>) - { - flags = arg; - } else if constexpr(std::is_same_v<Args, ctor::externals>) { externals = arg.externals; } - else if constexpr(std::is_same_v<Args, ctor::GeneratorOneToOne>) + else if constexpr(std::is_convertible_v<Args, ctor::GeneratorOneToOne>) { function_one_to_one = arg; } - else if constexpr(std::is_same_v<Args, ctor::GeneratorManyToOne>) + else if constexpr(std::is_convertible_v<Args, ctor::GeneratorManyToOne>) { function_many_to_one = arg; } + else if constexpr(std::is_same_v<Args, ctor::c_flags>) + { + flags.cflags = arg; + } + else if constexpr(std::is_same_v<Args, ctor::cxx_flags>) + { + flags.cxxflags = arg; + } + else if constexpr(std::is_same_v<Args, ctor::ld_flags>) + { + flags.ldflags = arg; + } + else if constexpr(std::is_same_v<Args, ctor::ar_flags>) + { + flags.arflags = arg; + } + else if constexpr(std::is_same_v<Args, ctor::asm_flags>) + { + flags.asmflags = arg; + } }(), ...); } |
