Fix custom target support

vcpkg-wip
Duncan Ogilvie 4 years ago
parent 461f26d0c6
commit d89baa46e2

@ -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:

Loading…
Cancel
Save