Skip to content

Commit 2bcf15c

Browse files
committed
Add support for object libraries
Closes #34
1 parent 6a825e1 commit 2bcf15c

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

include/project_parser.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ enum TargetType {
4545
target_static,
4646
target_interface,
4747
target_custom,
48+
target_object,
4849
};
4950

5051
template <typename T>

src/cmake_generator.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -766,6 +766,12 @@ void generate_cmake(const char *path, const parser::Project *parent_project) {
766766
target_type = "SOURCES";
767767
target_scope = "PUBLIC";
768768
break;
769+
case parser::target_object:
770+
// NOTE: This is properly supported since 3.12
771+
add_command = "add_library";
772+
target_type = "OBJECT";
773+
target_scope = "PUBLIC";
774+
break;
769775
default:
770776
assert("Unimplemented enum value" && false);
771777
}

src/project_parser.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include <tsl/ordered_set.h>
1010

1111
template <>
12-
const char *enumStrings<cmkr::parser::TargetType>::data[] = {"executable", "library", "shared", "static", "interface", "custom"};
12+
const char *enumStrings<cmkr::parser::TargetType>::data[] = {"executable", "library", "shared", "static", "interface", "custom", "object"};
1313

1414
namespace cmkr {
1515
namespace parser {

0 commit comments

Comments
 (0)