|
|
@ -450,6 +450,7 @@ int generate_cmake(const char *path, bool root) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!target.sources.empty()) {
|
|
|
|
if (!target.sources.empty()) {
|
|
|
|
|
|
|
|
// TODO: add duplicate checking
|
|
|
|
std::vector<std::string> sources;
|
|
|
|
std::vector<std::string> sources;
|
|
|
|
for (const auto &src : target.sources) {
|
|
|
|
for (const auto &src : target.sources) {
|
|
|
|
auto path = fs::path(src);
|
|
|
|
auto path = fs::path(src);
|
|
|
@ -462,8 +463,11 @@ int generate_cmake(const char *path, bool root) {
|
|
|
|
throw std::runtime_error(target.name + " sources wildcard found 0 files");
|
|
|
|
throw std::runtime_error(target.name + " sources wildcard found 0 files");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (target.type != cmake::target_interface) {
|
|
|
|
if (target.type != cmake::target_interface) {
|
|
|
|
|
|
|
|
// Do not add cmake.toml twice
|
|
|
|
|
|
|
|
if (std::find(sources.begin(), sources.end(), "cmake.toml") == sources.end()) {
|
|
|
|
sources.push_back("cmake.toml");
|
|
|
|
sources.push_back("cmake.toml");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
cmd("set")(target.name + "_SOURCES", sources).endl();
|
|
|
|
cmd("set")(target.name + "_SOURCES", sources).endl();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -497,9 +501,9 @@ int generate_cmake(const char *path, bool root) {
|
|
|
|
target_scope = "INTERFACE";
|
|
|
|
target_scope = "INTERFACE";
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case cmake::target_custom:
|
|
|
|
case cmake::target_custom:
|
|
|
|
// TODO: add proper support
|
|
|
|
// TODO: add proper support, this is hacky
|
|
|
|
add_command = "add_custom_target";
|
|
|
|
add_command = "add_custom_target";
|
|
|
|
target_type = "";
|
|
|
|
target_type = "SOURCES";
|
|
|
|
target_scope = "PUBLIC";
|
|
|
|
target_scope = "PUBLIC";
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|