diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2023-04-18 09:23:24 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2023-04-18 09:23:24 +0200 |
commit | 8aeae026d112ff9811a424e31621c05682f4a72e (patch) | |
tree | 9dc5c736fb07fb6cafe3a08a7e999b9c084edc18 /libbuild2/cc/target.hxx | |
parent | a1a01cbce316c5da7aa94e6b6a71eae98bffed1c (diff) |
Add support for Assembler with C Preprocessor (.S) compilation
Specifically, the c module now provides the c.as-cpp submodules which can be
loaded in order to register the S{} target type and enable Assembler with C
Preprocessor compilation in the c compile rule. For details, refer to
"Assembler with C Preprocessor Compilation" in the manual.
Diffstat (limited to 'libbuild2/cc/target.hxx')
-rw-r--r-- | libbuild2/cc/target.hxx | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libbuild2/cc/target.hxx b/libbuild2/cc/target.hxx index 87df326..a078422 100644 --- a/libbuild2/cc/target.hxx +++ b/libbuild2/cc/target.hxx @@ -84,6 +84,22 @@ namespace build2 static const target_type static_type; }; + // Assembler with C preprocessor source file (the same rationale for + // having it here as for c{} above). + // + class LIBBUILD2_CC_SYMEXPORT S: public cc + { + public: + S (context& c, dir_path d, dir_path o, string n) + : cc (c, move (d), move (o), move (n)) + { + dynamic_type = &static_type; + } + + public: + static const target_type static_type; + }; + // pkg-config file targets. // class LIBBUILD2_CC_SYMEXPORT pc: public file // .pc (common) |