From 684989a1e48b6b7f0ac1c340a702236974762f05 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 16 Jul 2019 14:02:13 -0700 Subject: use additional env param --- scripts/get_triplet_environment.cmake | 1 + toolsrc/include/vcpkg/build.h | 24 ++ toolsrc/include/vcpkg/sourceparagraph.h | 2 + toolsrc/src/vcpkg/build.cpp | 398 +++++++++++++++++++------------- toolsrc/src/vcpkg/sourceparagraph.cpp | 22 ++ triplets/x64-linux.cmake | 2 + 6 files changed, 284 insertions(+), 165 deletions(-) diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake index bc79b16ce..24ff40905 100644 --- a/scripts/get_triplet_environment.cmake +++ b/scripts/get_triplet_environment.cmake @@ -9,3 +9,4 @@ message("VCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}") message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}") message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}") +message("VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH}") diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index 04cd7cf87..e26597376 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -117,6 +117,29 @@ namespace vcpkg::Build std::string create_error_message(const BuildResult build_result, const PackageSpec& spec); std::string create_user_troubleshooting_message(const PackageSpec& spec); + enum class VcpkgTripletVar + { + TARGET_ARCHITECTURE = 0, + CMAKE_SYSTEM_NAME, + CMAKE_SYSTEM_VERSION, + PLATFORM_TOOLSET, + VISUAL_STUDIO_PATH, + CHAINLOAD_TOOLCHAIN_FILE, + BUILD_TYPE, + ENV_PASSTHROUGH, + }; + + const std::unordered_map VCPKG_OPTIONS = { + {"VCPKG_TARGET_ARCHITECTURE", VcpkgTripletVar::TARGET_ARCHITECTURE}, + {"VCPKG_CMAKE_SYSTEM_NAME", VcpkgTripletVar::CMAKE_SYSTEM_NAME}, + {"VCPKG_CMAKE_SYSTEM_VERSION", VcpkgTripletVar::CMAKE_SYSTEM_VERSION}, + {"VCPKG_PLATFORM_TOOLSET", VcpkgTripletVar::PLATFORM_TOOLSET}, + {"VCPKG_VISUAL_STUDIO_PATH", VcpkgTripletVar::VISUAL_STUDIO_PATH}, + {"VCPKG_CHAINLOAD_TOOLCHAIN_FILE", VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE}, + {"VCPKG_BUILD_TYPE", VcpkgTripletVar::BUILD_TYPE}, + {"VCPKG_ENV_PASSTHROUGH", VcpkgTripletVar::ENV_PASSTHROUGH}, + }; + /// /// Settings from the triplet file which impact the build environment and post-build checks /// @@ -135,6 +158,7 @@ namespace vcpkg::Build Optional visual_studio_path; Optional external_toolchain_file; Optional build_type; + std::vector passthrough_env_vars; }; std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); diff --git a/toolsrc/include/vcpkg/sourceparagraph.h b/toolsrc/include/vcpkg/sourceparagraph.h index 6232a3fd2..9fbd83475 100644 --- a/toolsrc/include/vcpkg/sourceparagraph.h +++ b/toolsrc/include/vcpkg/sourceparagraph.h @@ -23,6 +23,8 @@ namespace vcpkg std::vector filter_dependencies(const std::vector& deps, const Triplet& t); std::vector filter_dependencies_to_specs(const std::vector& deps, const Triplet& t); + std::vector filter_dependencies_to_features(const std::vector& deps, + const Triplet& t); // zlib[uwp] becomes Dependency{"zlib", "uwp"} std::vector expand_qualified_dependencies(const std::vector& depends); diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 68df1f965..e0c78f2da 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -32,24 +32,14 @@ namespace vcpkg::Build::Command using Dependencies::InstallPlanAction; using Dependencies::InstallPlanType; - static constexpr StringLiteral OPTION_CHECKS_ONLY = "--checks-only"; - void perform_and_exit_ex(const FullPackageSpec& full_spec, const SourceControlFileLocation& scfl, const ParsedArguments& options, const VcpkgPaths& paths) { + const StatusParagraphs status_db = database_load_check(paths); const PackageSpec& spec = full_spec.package_spec; - const auto& scf = *scfl.source_control_file; - if (Util::Sets::contains(options.switches, OPTION_CHECKS_ONLY)) - { - const auto pre_build_info = Build::PreBuildInfo::from_triplet_file(paths, spec.triplet()); - const auto build_info = Build::read_build_info(paths.get_filesystem(), paths.build_info_file_path(spec)); - const size_t error_count = - PostBuildLint::perform_all_checks(spec, paths, pre_build_info, build_info, scfl.source_location); - Checks::check_exit(VCPKG_LINE_INFO, error_count == 0); - Checks::exit_success(VCPKG_LINE_INFO); - } + const SourceControlFile& scf = *scfl.source_control_file; Checks::check_exit(VCPKG_LINE_INFO, spec.name() == scf.core_paragraph->name, @@ -57,7 +47,6 @@ namespace vcpkg::Build::Command scf.core_paragraph->name, spec.name()); - const StatusParagraphs status_db = database_load_check(paths); const Build::BuildPackageOptions build_package_options{ Build::UseHeadVersion::NO, Build::AllowDownloads::YES, @@ -104,15 +93,11 @@ namespace vcpkg::Build::Command Checks::exit_success(VCPKG_LINE_INFO); } - static constexpr std::array BUILD_SWITCHES = {{ - {OPTION_CHECKS_ONLY, "Only run checks, do not rebuild package"}, - }}; - const CommandStructure COMMAND_STRUCTURE = { Help::create_example_string("build zlib:x64-windows"), 1, 1, - {BUILD_SWITCHES, {}}, + {{}, {}}, nullptr, }; @@ -230,6 +215,23 @@ namespace vcpkg::Build })); } + std::unordered_map make_env_passthrough(const PreBuildInfo& pre_build_info) + { + std::unordered_map env; + + for (auto&& env_var : pre_build_info.passthrough_env_vars) + { + auto env_val = System::get_environment_variable(env_var); + + if (env_val) + { + env[env_var] = env_val.value_or_exit(VCPKG_LINE_INFO); + } + } + + return env; + } + std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset) { if (pre_build_info.external_toolchain_file.has_value()) return ""; @@ -274,7 +276,7 @@ namespace vcpkg::Build return bcf; } - static void write_binary_control_file(const VcpkgPaths& paths, BinaryControlFile bcf) + static void write_binary_control_file(const VcpkgPaths& paths, const BinaryControlFile& bcf) { std::string start = Strings::serialize(bcf.core_paragraph); for (auto&& feature : bcf.features) @@ -285,23 +287,63 @@ namespace vcpkg::Build paths.get_filesystem().write_contents(binary_control_file, start, VCPKG_LINE_INFO); } - static std::vector compute_required_feature_specs(const BuildPackageConfig& config, - const StatusParagraphs& status_db) + static std::vector get_dependencies(const SourceControlFile& scf, + const std::set& feature_list, + const Triplet& triplet) { - const Triplet& triplet = config.triplet; - - const std::vector dep_strings = - Util::fmap_flatten(config.feature_list, [&](std::string const& feature) -> std::vector { - if (feature == "core") + return Util::fmap_flatten(feature_list, + [&](std::string const& feature) -> std::vector { + if (feature == "core") { - return filter_dependencies(config.scf.core_paragraph->depends, triplet); + return filter_dependencies_to_features(scf.core_paragraph->depends, triplet); } - auto maybe_feature = config.scf.find_feature(feature); + auto maybe_feature = scf.find_feature(feature); Checks::check_exit(VCPKG_LINE_INFO, maybe_feature.has_value()); - return filter_dependencies(maybe_feature.get()->depends, triplet); - }); + return filter_dependencies_to_features(maybe_feature.get()->depends, triplet); + } + ); + } + + static std::vector get_dependency_names(const SourceControlFile& scf, + const std::set& feature_list, + const Triplet& triplet) + { + return Util::fmap(get_dependencies(scf, feature_list, triplet), + [&](const Features& feat) { + return feat.name; + } + ); + } + + static std::vector get_partials(const VcpkgPaths& paths, + const std::vector& dependencies, + const Triplet& triplet) + { + std::vector ret; + Files::Filesystem& fs = paths.get_filesystem(); + + for (const std::string& dependency : dependencies) + { + fs::path partial = + paths.buildtrees / dependency / triplet.canonical_name() / "partial_triplet.cmake"; + if (fs.is_regular_file(partial)) + { + ret.emplace_back(std::move(partial)); + } + } + + return ret; + } + + static std::vector compute_required_feature_specs(const BuildPackageConfig& config, + const StatusParagraphs& status_db) + { + const Triplet& triplet = config.triplet; + + const std::vector dep_strings = + get_dependency_names(config.scf, config.feature_list, triplet); auto dep_fspecs = FeatureSpec::from_strings_and_triplet(dep_strings, triplet); Util::sort_unique_erase(dep_fspecs); @@ -353,40 +395,19 @@ namespace vcpkg::Build return concurrency; } - static ExtendedBuildResult do_build_package(const VcpkgPaths& paths, - const PreBuildInfo& pre_build_info, - const PackageSpec& spec, - const std::string& abi_tag, - const BuildPackageConfig& config) + static std::vector get_cmake_vars(const VcpkgPaths& paths, + const PreBuildInfo& pre_build_info, + const BuildPackageConfig& config, + const Triplet& triplet, + const Toolset& toolset) { - auto& fs = paths.get_filesystem(); - const Triplet& triplet = spec.triplet(); - const auto& triplet_file_path = paths.get_triplet_file_path(spec.triplet()).u8string(); - - if (!Strings::case_insensitive_ascii_starts_with(triplet_file_path, paths.triplets.u8string())) - { - System::printf("-- Loading triplet configuration from: %s\n", triplet_file_path); - } - if (!Strings::case_insensitive_ascii_starts_with(config.port_dir.u8string(), paths.ports.u8string())) - { - System::printf("-- Installing port from location: %s\n", config.port_dir.u8string()); - } - #if !defined(_WIN32) // TODO: remove when vcpkg.exe is in charge for acquiring tools. Change introduced in vcpkg v0.0.107. // bootstrap should have already downloaded ninja, but making sure it is present in case it was deleted. vcpkg::Util::unused(paths.get_tool_exe(Tools::NINJA)); #endif - const fs::path& cmake_exe_path = paths.get_tool_exe(Tools::CMAKE); const fs::path& git_exe_path = paths.get_tool_exe(Tools::GIT); -#if defined(_WIN32) - const fs::path& powershell_exe_path = paths.get_tool_exe("powershell-core"); - if (!fs.exists(powershell_exe_path.parent_path() / "powershell.exe")) - { - fs.copy(powershell_exe_path, powershell_exe_path.parent_path() / "powershell.exe", fs::copy_options::none); - } -#endif std::string all_features; for (auto& feature : config.scf.feature_paragraphs) @@ -394,14 +415,21 @@ namespace vcpkg::Build all_features.append(feature->name + ";"); } - const Toolset& toolset = paths.get_toolset(pre_build_info); + std::vector partials = + Util::fmap( + get_partials(paths, get_dependency_names(config.scf, config.feature_list, triplet), triplet), + [&](const fs::path& path) + { + return path.u8string(); + } + ); std::vector variables{ {"CMD", "BUILD"}, {"PORT", config.scf.core_paragraph->name}, {"CURRENT_PORT_DIR", config.port_dir}, - {"TARGET_TRIPLET", spec.triplet().canonical_name()}, - {"TARGET_TRIPLET_FILE", triplet_file_path}, + {"TARGET_TRIPLET", triplet.canonical_name()}, + {"TARGET_TRIPLET_FILE", paths.get_triplet_file_path(triplet).u8string()}, {"VCPKG_PLATFORM_TOOLSET", toolset.version.c_str()}, {"VCPKG_USE_HEAD_VERSION", Util::Enum::to_bool(config.build_package_options.use_head_version) ? "1" : "0"}, {"DOWNLOADS", paths.downloads}, @@ -410,6 +438,7 @@ namespace vcpkg::Build {"FEATURES", Strings::join(";", config.feature_list)}, {"ALL_FEATURES", all_features}, {"VCPKG_CONCURRENCY", std::to_string(get_concurrency())}, + {"VCPKG_PARTIAL_TRIPLETS", Strings::join(";", partials)}, }; if (!System::get_environment_variable("VCPKG_FORCE_SYSTEM_BINARIES").has_value()) @@ -417,9 +446,22 @@ namespace vcpkg::Build variables.push_back({"GIT", git_exe_path}); } + return variables; + } + + static std::string make_build_cmd(const VcpkgPaths& paths, + const PreBuildInfo& pre_build_info, + const BuildPackageConfig& config, + const Triplet& triplet) + { + const Toolset& toolset = paths.get_toolset(pre_build_info); + const fs::path& cmake_exe_path = paths.get_tool_exe(Tools::CMAKE); + std::vector variables = + get_cmake_vars(paths, pre_build_info, config, triplet, toolset); + const std::string cmd_launch_cmake = System::make_cmake_cmd(cmake_exe_path, paths.ports_cmake, variables); - auto command = make_build_env_cmd(pre_build_info, toolset); + std::string command = make_build_env_cmd(pre_build_info, toolset); if (!command.empty()) { #ifdef _WIN32 @@ -428,16 +470,93 @@ namespace vcpkg::Build command.append(" && "); #endif } + command.append(cmd_launch_cmake); + + return command; + } + + static std::string get_triplet_abi(const VcpkgPaths& paths, + const PreBuildInfo& pre_build_info, + const Triplet& triplet) + { + static std::map s_hash_cache; + + const fs::path triplet_file_path = paths.get_triplet_file_path(triplet); + const auto& fs = paths.get_filesystem(); + + std::string hash; + + auto it_hash = s_hash_cache.find(triplet_file_path); + if (it_hash != s_hash_cache.end()) + { + hash = it_hash->second; + } + else + { + hash = Hash::get_file_hash(fs, triplet_file_path, "SHA1"); + + if (auto p = pre_build_info.external_toolchain_file.get()) + { + hash += "-"; + hash += Hash::get_file_hash(fs, *p, "SHA1"); + } + else if (pre_build_info.cmake_system_name == "Linux") + { + hash += "-"; + hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "linux.cmake", "SHA1"); + } + else if (pre_build_info.cmake_system_name == "Darwin") + { + hash += "-"; + hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "osx.cmake", "SHA1"); + } + else if (pre_build_info.cmake_system_name == "FreeBSD") + { + hash += "-"; + hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "freebsd.cmake", "SHA1"); + } + else if (pre_build_info.cmake_system_name == "Android") + { + hash += "-"; + hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "android.cmake", "SHA1"); + } + + s_hash_cache.emplace(triplet_file_path, hash); + } + + return hash; + } + + static ExtendedBuildResult do_build_package(const VcpkgPaths& paths, + const PreBuildInfo& pre_build_info, + const PackageSpec& spec, + const std::string& abi_tag, + const BuildPackageConfig& config) + { + auto& fs = paths.get_filesystem(); + const Triplet& triplet = spec.triplet(); + const auto& triplet_file_path = paths.get_triplet_file_path(spec.triplet()).u8string(); + + if (!Strings::case_insensitive_ascii_starts_with(triplet_file_path, paths.triplets.u8string())) + { + System::printf("-- Loading triplet configuration from: %s\n", triplet_file_path); + } + if (!Strings::case_insensitive_ascii_starts_with(config.port_dir.u8string(), paths.ports.u8string())) + { + System::printf("-- Installing port from location: %s\n", config.port_dir.u8string()); + } + const auto timer = Chrono::ElapsedTimer::create_started(); - const int return_code = System::cmd_execute_clean( - command, - {} -#ifdef _WIN32 - , - powershell_exe_path.parent_path().u8string() + ";" -#endif - ); + + std::string command = + make_build_cmd(paths, pre_build_info, config, triplet); + std::unordered_map env = + make_env_passthrough(pre_build_info); + + const int return_code = + System::cmd_execute_clean(command, env); + const auto buildtimeus = timer.microseconds(); const auto spec_string = spec.to_string(); @@ -711,7 +830,7 @@ namespace vcpkg::Build { System::print2("Using cached binary package: ", archive_path.u8string(), "\n"); - auto archive_result = decompress_archive(paths, spec, archive_path); + int archive_result = decompress_archive(paths, spec, archive_path); if (archive_result != 0) { @@ -946,111 +1065,60 @@ namespace vcpkg::Build const std::string variable_name = s.at(0); const std::string variable_value = variable_with_no_value ? "" : s.at(1); - if (variable_name == "VCPKG_TARGET_ARCHITECTURE") - { - pre_build_info.target_architecture = variable_value; - continue; - } - - if (variable_name == "VCPKG_CMAKE_SYSTEM_NAME") - { - pre_build_info.cmake_system_name = variable_value; - continue; - } - - if (variable_name == "VCPKG_CMAKE_SYSTEM_VERSION") - { - pre_build_info.cmake_system_version = variable_value; - continue; - } - - if (variable_name == "VCPKG_PLATFORM_TOOLSET") - { - pre_build_info.platform_toolset = - variable_value.empty() ? nullopt : Optional{variable_value}; - continue; - } - - if (variable_name == "VCPKG_VISUAL_STUDIO_PATH") + auto maybe_option = VCPKG_OPTIONS.find(variable_name); + if (maybe_option != VCPKG_OPTIONS.end()) { - pre_build_info.visual_studio_path = - variable_value.empty() ? nullopt : Optional{variable_value}; - continue; - } - - if (variable_name == "VCPKG_CHAINLOAD_TOOLCHAIN_FILE") - { - pre_build_info.external_toolchain_file = - variable_value.empty() ? nullopt : Optional{variable_value}; - continue; + switch (maybe_option->second) + { + case VcpkgTripletVar::TARGET_ARCHITECTURE : + pre_build_info.target_architecture = variable_value; + break; + case VcpkgTripletVar::CMAKE_SYSTEM_NAME : + pre_build_info.cmake_system_name = variable_value; + break; + case VcpkgTripletVar::CMAKE_SYSTEM_VERSION : + pre_build_info.cmake_system_version = variable_value; + break; + case VcpkgTripletVar::PLATFORM_TOOLSET : + pre_build_info.platform_toolset = + variable_value.empty() ? nullopt : Optional{variable_value}; + break; + case VcpkgTripletVar::VISUAL_STUDIO_PATH : + pre_build_info.visual_studio_path = + variable_value.empty() ? nullopt : Optional{variable_value}; + break; + case VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE : + pre_build_info.external_toolchain_file = + variable_value.empty() ? nullopt : Optional{variable_value}; + break; + case VcpkgTripletVar::BUILD_TYPE : + if (variable_value.empty()) + pre_build_info.build_type = nullopt; + else if (Strings::case_insensitive_ascii_equals(variable_value, "debug")) + pre_build_info.build_type = ConfigurationType::DEBUG; + else if (Strings::case_insensitive_ascii_equals(variable_value, "release")) + pre_build_info.build_type = ConfigurationType::RELEASE; + else + Checks::exit_with_message( + VCPKG_LINE_INFO, "Unknown setting for VCPKG_BUILD_TYPE: %s", variable_value); + break; + case VcpkgTripletVar::ENV_PASSTHROUGH : + pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";"); + break; + } } - - if (variable_name == "VCPKG_BUILD_TYPE") + else { - if (variable_value.empty()) - pre_build_info.build_type = nullopt; - else if (Strings::case_insensitive_ascii_equals(variable_value, "debug")) - pre_build_info.build_type = ConfigurationType::DEBUG; - else if (Strings::case_insensitive_ascii_equals(variable_value, "release")) - pre_build_info.build_type = ConfigurationType::RELEASE; - else - Checks::exit_with_message( - VCPKG_LINE_INFO, "Unknown setting for VCPKG_BUILD_TYPE: %s", variable_value); - continue; + Checks::exit_with_message(VCPKG_LINE_INFO, "Unknown variable name %s", line); } - - Checks::exit_with_message(VCPKG_LINE_INFO, "Unknown variable name %s", line); } - pre_build_info.triplet_abi_tag = [&]() { - const auto& fs = paths.get_filesystem(); - static std::map s_hash_cache; - - auto it_hash = s_hash_cache.find(triplet_file_path); - if (it_hash != s_hash_cache.end()) - { - return it_hash->second; - } - auto hash = Hash::get_file_hash(fs, triplet_file_path, "SHA1"); - - if (auto p = pre_build_info.external_toolchain_file.get()) - { - hash += "-"; - hash += Hash::get_file_hash(fs, *p, "SHA1"); - } - else if (pre_build_info.cmake_system_name.empty() || - pre_build_info.cmake_system_name == "WindowsStore") - { - hash += "-"; - hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "windows.cmake", "SHA1"); - } - else if (pre_build_info.cmake_system_name == "Linux") - { - hash += "-"; - hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "linux.cmake", "SHA1"); - } - else if (pre_build_info.cmake_system_name == "Darwin") - { - hash += "-"; - hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "osx.cmake", "SHA1"); - } - else if (pre_build_info.cmake_system_name == "FreeBSD") - { - hash += "-"; - hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "freebsd.cmake", "SHA1"); - } - else if (pre_build_info.cmake_system_name == "Android") - { - hash += "-"; - hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "android.cmake", "SHA1"); - } - - s_hash_cache.emplace(triplet_file_path, hash); - return hash; - }(); + pre_build_info.triplet_abi_tag = + get_triplet_abi(paths, pre_build_info, triplet); return pre_build_info; } + ExtendedBuildResult::ExtendedBuildResult(BuildResult code) : code(code) {} ExtendedBuildResult::ExtendedBuildResult(BuildResult code, std::unique_ptr&& bcf) : code(code), binary_control_file(std::move(bcf)) diff --git a/toolsrc/src/vcpkg/sourceparagraph.cpp b/toolsrc/src/vcpkg/sourceparagraph.cpp index 9bc59cbe7..1a52bd05f 100644 --- a/toolsrc/src/vcpkg/sourceparagraph.cpp +++ b/toolsrc/src/vcpkg/sourceparagraph.cpp @@ -238,6 +238,28 @@ namespace vcpkg return ret; } + std::vector filter_dependencies_to_features(const std::vector& deps, + const Triplet& t) + { + std::vector ret; + for (auto&& dep : deps) + { + auto qualifiers = Strings::split(dep.qualifier, "&"); + if (std::all_of(qualifiers.begin(), qualifiers.end(), [&](const std::string& qualifier) { + if (qualifier.empty()) return true; + if (qualifier[0] == '!') + { + return t.canonical_name().find(qualifier.substr(1)) == std::string::npos; + } + return t.canonical_name().find(qualifier) != std::string::npos; + })) + { + ret.emplace_back(dep.depend); + } + } + return ret; + } + std::vector filter_dependencies_to_specs(const std::vector& deps, const Triplet& t) { return FeatureSpec::from_strings_and_triplet(filter_dependencies(deps, t), t); diff --git a/triplets/x64-linux.cmake b/triplets/x64-linux.cmake index 519618463..05cb02940 100644 --- a/triplets/x64-linux.cmake +++ b/triplets/x64-linux.cmake @@ -3,3 +3,5 @@ set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) + +set(VCPKG_ENV_PASSTHROUGH FC) -- cgit v1.2.3 From 6bef95b6f50b2bb602781d6d8898d27639294ff6 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 16 Jul 2019 14:43:56 -0700 Subject: remove partials --- toolsrc/src/vcpkg/build.cpp | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index e0c78f2da..dd2beec9d 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -317,26 +317,6 @@ namespace vcpkg::Build ); } - static std::vector get_partials(const VcpkgPaths& paths, - const std::vector& dependencies, - const Triplet& triplet) - { - std::vector ret; - Files::Filesystem& fs = paths.get_filesystem(); - - for (const std::string& dependency : dependencies) - { - fs::path partial = - paths.buildtrees / dependency / triplet.canonical_name() / "partial_triplet.cmake"; - if (fs.is_regular_file(partial)) - { - ret.emplace_back(std::move(partial)); - } - } - - return ret; - } - static std::vector compute_required_feature_specs(const BuildPackageConfig& config, const StatusParagraphs& status_db) { @@ -415,15 +395,6 @@ namespace vcpkg::Build all_features.append(feature->name + ";"); } - std::vector partials = - Util::fmap( - get_partials(paths, get_dependency_names(config.scf, config.feature_list, triplet), triplet), - [&](const fs::path& path) - { - return path.u8string(); - } - ); - std::vector variables{ {"CMD", "BUILD"}, {"PORT", config.scf.core_paragraph->name}, @@ -438,7 +409,6 @@ namespace vcpkg::Build {"FEATURES", Strings::join(";", config.feature_list)}, {"ALL_FEATURES", all_features}, {"VCPKG_CONCURRENCY", std::to_string(get_concurrency())}, - {"VCPKG_PARTIAL_TRIPLETS", Strings::join(";", partials)}, }; if (!System::get_environment_variable("VCPKG_FORCE_SYSTEM_BINARIES").has_value()) -- cgit v1.2.3 From a22242e837cc1af63ff754545512f5a754a70426 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 16 Jul 2019 14:45:52 -0700 Subject: remove change to linux triplet --- triplets/x64-linux.cmake | 2 -- 1 file changed, 2 deletions(-) diff --git a/triplets/x64-linux.cmake b/triplets/x64-linux.cmake index 05cb02940..519618463 100644 --- a/triplets/x64-linux.cmake +++ b/triplets/x64-linux.cmake @@ -3,5 +3,3 @@ set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) - -set(VCPKG_ENV_PASSTHROUGH FC) -- cgit v1.2.3 From 44dcc3d4f3d2bc56cc9f6d0371a141ad0145d537 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 16 Jul 2019 15:34:13 -0700 Subject: First pass at port settings --- scripts/get_triplet_environment.cmake | 3 +++ toolsrc/include/vcpkg/build.h | 48 ++++++++++++++++++----------------- toolsrc/src/vcpkg/build.cpp | 21 +++++++++++---- toolsrc/src/vcpkg/commands.ci.cpp | 9 ++++++- 4 files changed, 52 insertions(+), 29 deletions(-) diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake index 24ff40905..e561492de 100644 --- a/scripts/get_triplet_environment.cmake +++ b/scripts/get_triplet_environment.cmake @@ -1,4 +1,7 @@ include(${CMAKE_TRIPLET_FILE}) +if (DEFINED CMAKE_PORTFILE_SETTINGS) + include(${CMAKE_PORTFILE_SETTINGS} OPTIONAL) +endif() # GUID used as a flag - "cut here line" message("c35112b6-d1ba-415b-aa5d-81de856ef8eb") diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index e26597376..0d10d12a4 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -140,29 +140,6 @@ namespace vcpkg::Build {"VCPKG_ENV_PASSTHROUGH", VcpkgTripletVar::ENV_PASSTHROUGH}, }; - /// - /// Settings from the triplet file which impact the build environment and post-build checks - /// - struct PreBuildInfo - { - /// - /// Runs the triplet file in a "capture" mode to create a PreBuildInfo - /// - static PreBuildInfo from_triplet_file(const VcpkgPaths& paths, const Triplet& triplet); - - std::string triplet_abi_tag; - std::string target_architecture; - std::string cmake_system_name; - std::string cmake_system_version; - Optional platform_toolset; - Optional visual_studio_path; - Optional external_toolchain_file; - Optional build_type; - std::vector passthrough_env_vars; - }; - - std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); - struct ExtendedBuildResult { ExtendedBuildResult(BuildResult code); @@ -200,6 +177,31 @@ namespace vcpkg::Build const BuildPackageConfig& config, const StatusParagraphs& status_db); + /// + /// Settings from the triplet file which impact the build environment and post-build checks + /// + struct PreBuildInfo + { + /// + /// Runs the triplet file in a "capture" mode to create a PreBuildInfo + /// + static PreBuildInfo from_triplet_file(const VcpkgPaths& paths, + const Triplet& triplet, + Optional port = nullopt); + + std::string triplet_abi_tag; + std::string target_architecture; + std::string cmake_system_name; + std::string cmake_system_version; + Optional platform_toolset; + Optional visual_studio_path; + Optional external_toolchain_file; + Optional build_type; + std::vector passthrough_env_vars; + }; + + std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); + enum class BuildPolicy { EMPTY_PACKAGE, diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index dd2beec9d..646da7398 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -782,7 +782,8 @@ namespace vcpkg::Build AbiEntry{status_it->get()->package.spec.name(), status_it->get()->package.abi}); } - const auto pre_build_info = PreBuildInfo::from_triplet_file(paths, triplet); + const auto pre_build_info = + PreBuildInfo::from_triplet_file(paths, triplet, config.scf.core_paragraph->name); auto maybe_abi_tag_and_file = compute_abi_tag(paths, config, pre_build_info, dependency_abis); @@ -997,7 +998,9 @@ namespace vcpkg::Build return inner_create_buildinfo(*pghs.get()); } - PreBuildInfo PreBuildInfo::from_triplet_file(const VcpkgPaths& paths, const Triplet& triplet) + PreBuildInfo PreBuildInfo::from_triplet_file(const VcpkgPaths& paths, + const Triplet& triplet, + Optional port) { static constexpr CStringView FLAG_GUID = "c35112b6-d1ba-415b-aa5d-81de856ef8eb"; @@ -1005,11 +1008,19 @@ namespace vcpkg::Build const fs::path ports_cmake_script_path = paths.scripts / "get_triplet_environment.cmake"; const fs::path triplet_file_path = paths.get_triplet_file_path(triplet); + std::vector args{{"CMAKE_TRIPLET_FILE", triplet_file_path}}; + + if (port) + { + args.emplace_back( + "CMAKE_PORT_SETTINGS", + paths.ports / port.value_or_exit(VCPKG_LINE_INFO) / "port_settings.cmake"); + } + const auto cmd_launch_cmake = System::make_cmake_cmd(cmake_exe_path, ports_cmake_script_path, - { - {"CMAKE_TRIPLET_FILE", triplet_file_path}, - }); + args); + const auto ec_data = System::cmd_execute_and_capture_output(cmd_launch_cmake); Checks::check_exit(VCPKG_LINE_INFO, ec_data.exit_code == 0, ec_data.output); diff --git a/toolsrc/src/vcpkg/commands.ci.cpp b/toolsrc/src/vcpkg/commands.ci.cpp index c12c26ff7..493c052cb 100644 --- a/toolsrc/src/vcpkg/commands.ci.cpp +++ b/toolsrc/src/vcpkg/commands.ci.cpp @@ -254,7 +254,14 @@ namespace vcpkg::Commands::CI return {spec.name(), it->second}; }); const auto& pre_build_info = pre_build_info_cache.get_lazy( - triplet, [&]() { return Build::PreBuildInfo::from_triplet_file(paths, triplet); }); + triplet, + [&]() { + return Build::PreBuildInfo::from_triplet_file( + paths, + triplet, + scfl->source_control_file->core_paragraph->name); + } + ); auto maybe_tag_and_file = Build::compute_abi_tag(paths, build_config, pre_build_info, dependency_abis); -- cgit v1.2.3 From 64198a8109b9d1cffcc3830f70d0c3f2b066638d Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 16 Jul 2019 15:51:50 -0700 Subject: Add to vcpkg.cmake --- scripts/get_triplet_environment.cmake | 4 ++-- scripts/ports.cmake | 1 + toolsrc/src/vcpkg/build.cpp | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake index e561492de..f76054556 100644 --- a/scripts/get_triplet_environment.cmake +++ b/scripts/get_triplet_environment.cmake @@ -1,6 +1,6 @@ include(${CMAKE_TRIPLET_FILE}) -if (DEFINED CMAKE_PORTFILE_SETTINGS) - include(${CMAKE_PORTFILE_SETTINGS} OPTIONAL) +if (DEFINED CMAKE_PORT_SETTINGS) + include(${CMAKE_PORT_SETTINGS} OPTIONAL) endif() # GUID used as a flag - "cut here line" diff --git a/scripts/ports.cmake b/scripts/ports.cmake index 860d08893..0c33fdffc 100644 --- a/scripts/ports.cmake +++ b/scripts/ports.cmake @@ -67,6 +67,7 @@ if(CMD MATCHES "^BUILD$") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR} ${CURRENT_PACKAGES_DIR}) include(${CMAKE_TRIPLET_FILE}) + include(${CMAKE_PORT_SETTINGS} OPTIONAL) set(TRIPLET_SYSTEM_ARCH ${VCPKG_TARGET_ARCHITECTURE}) include(${CMAKE_CURRENT_LIST_DIR}/cmake/vcpkg_common_definitions.cmake) include(${CMAKE_CURRENT_LIST_DIR}/cmake/vcpkg_common_functions.cmake) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 646da7398..03e0c0b1d 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -401,6 +401,7 @@ namespace vcpkg::Build {"CURRENT_PORT_DIR", config.port_dir}, {"TARGET_TRIPLET", triplet.canonical_name()}, {"TARGET_TRIPLET_FILE", paths.get_triplet_file_path(triplet).u8string()}, + {"CMAKE_PORT_SETTINGS", config.port_dir / "port_settings.cmake"}, {"VCPKG_PLATFORM_TOOLSET", toolset.version.c_str()}, {"VCPKG_USE_HEAD_VERSION", Util::Enum::to_bool(config.build_package_options.use_head_version) ? "1" : "0"}, {"DOWNLOADS", paths.downloads}, -- cgit v1.2.3 From 7d9d457f589d82d6675c511636808a0fbee7a4e5 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 16 Jul 2019 16:09:30 -0700 Subject: revert unecessary reordering --- toolsrc/include/vcpkg/build.h | 94 +++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index 0d10d12a4..a0ad64ffd 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -117,28 +117,53 @@ namespace vcpkg::Build std::string create_error_message(const BuildResult build_result, const PackageSpec& spec); std::string create_user_troubleshooting_message(const PackageSpec& spec); - enum class VcpkgTripletVar - { - TARGET_ARCHITECTURE = 0, - CMAKE_SYSTEM_NAME, - CMAKE_SYSTEM_VERSION, - PLATFORM_TOOLSET, - VISUAL_STUDIO_PATH, - CHAINLOAD_TOOLCHAIN_FILE, - BUILD_TYPE, - ENV_PASSTHROUGH, - }; - - const std::unordered_map VCPKG_OPTIONS = { - {"VCPKG_TARGET_ARCHITECTURE", VcpkgTripletVar::TARGET_ARCHITECTURE}, - {"VCPKG_CMAKE_SYSTEM_NAME", VcpkgTripletVar::CMAKE_SYSTEM_NAME}, - {"VCPKG_CMAKE_SYSTEM_VERSION", VcpkgTripletVar::CMAKE_SYSTEM_VERSION}, - {"VCPKG_PLATFORM_TOOLSET", VcpkgTripletVar::PLATFORM_TOOLSET}, - {"VCPKG_VISUAL_STUDIO_PATH", VcpkgTripletVar::VISUAL_STUDIO_PATH}, - {"VCPKG_CHAINLOAD_TOOLCHAIN_FILE", VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE}, - {"VCPKG_BUILD_TYPE", VcpkgTripletVar::BUILD_TYPE}, - {"VCPKG_ENV_PASSTHROUGH", VcpkgTripletVar::ENV_PASSTHROUGH}, - }; + /// + /// Settings from the triplet file which impact the build environment and post-build checks + /// + struct PreBuildInfo + { + /// + /// Runs the triplet file in a "capture" mode to create a PreBuildInfo + /// + static PreBuildInfo from_triplet_file(const VcpkgPaths& paths, + const Triplet& triplet, + Optional port = nullopt); + + std::string triplet_abi_tag; + std::string target_architecture; + std::string cmake_system_name; + std::string cmake_system_version; + Optional platform_toolset; + Optional visual_studio_path; + Optional external_toolchain_file; + Optional build_type; + std::vector passthrough_env_vars; + }; + + std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); + + enum class VcpkgTripletVar + { + TARGET_ARCHITECTURE = 0, + CMAKE_SYSTEM_NAME, + CMAKE_SYSTEM_VERSION, + PLATFORM_TOOLSET, + VISUAL_STUDIO_PATH, + CHAINLOAD_TOOLCHAIN_FILE, + BUILD_TYPE, + ENV_PASSTHROUGH, + }; + + const std::unordered_map VCPKG_OPTIONS = { + {"VCPKG_TARGET_ARCHITECTURE", VcpkgTripletVar::TARGET_ARCHITECTURE}, + {"VCPKG_CMAKE_SYSTEM_NAME", VcpkgTripletVar::CMAKE_SYSTEM_NAME}, + {"VCPKG_CMAKE_SYSTEM_VERSION", VcpkgTripletVar::CMAKE_SYSTEM_VERSION}, + {"VCPKG_PLATFORM_TOOLSET", VcpkgTripletVar::PLATFORM_TOOLSET}, + {"VCPKG_VISUAL_STUDIO_PATH", VcpkgTripletVar::VISUAL_STUDIO_PATH}, + {"VCPKG_CHAINLOAD_TOOLCHAIN_FILE", VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE}, + {"VCPKG_BUILD_TYPE", VcpkgTripletVar::BUILD_TYPE}, + {"VCPKG_ENV_PASSTHROUGH", VcpkgTripletVar::ENV_PASSTHROUGH}, + }; struct ExtendedBuildResult { @@ -177,31 +202,6 @@ namespace vcpkg::Build const BuildPackageConfig& config, const StatusParagraphs& status_db); - /// - /// Settings from the triplet file which impact the build environment and post-build checks - /// - struct PreBuildInfo - { - /// - /// Runs the triplet file in a "capture" mode to create a PreBuildInfo - /// - static PreBuildInfo from_triplet_file(const VcpkgPaths& paths, - const Triplet& triplet, - Optional port = nullopt); - - std::string triplet_abi_tag; - std::string target_architecture; - std::string cmake_system_name; - std::string cmake_system_version; - Optional platform_toolset; - Optional visual_studio_path; - Optional external_toolchain_file; - Optional build_type; - std::vector passthrough_env_vars; - }; - - std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); - enum class BuildPolicy { EMPTY_PACKAGE, -- cgit v1.2.3 From d4ab567609495a5c239f537d7c1e200f7b8a19c0 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Wed, 17 Jul 2019 10:10:36 -0700 Subject: first pass at abi additional files --- scripts/get_triplet_environment.cmake | 1 + toolsrc/include/vcpkg/build.h | 3 +++ toolsrc/src/vcpkg/build.cpp | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake index f76054556..ab5e8f8c3 100644 --- a/scripts/get_triplet_environment.cmake +++ b/scripts/get_triplet_environment.cmake @@ -13,3 +13,4 @@ message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}") message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}") message("VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH}") +message("VCPKG_ABI_ADDITIONAL_FILES=${VCPKG_ABI_ADDITIONAL_FILES}") diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index a0ad64ffd..85d6ebed9 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -138,6 +138,7 @@ namespace vcpkg::Build Optional external_toolchain_file; Optional build_type; std::vector passthrough_env_vars; + std::vector additional_files; }; std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); @@ -152,6 +153,7 @@ namespace vcpkg::Build CHAINLOAD_TOOLCHAIN_FILE, BUILD_TYPE, ENV_PASSTHROUGH, + ABI_ADDITIONAL_FILES, }; const std::unordered_map VCPKG_OPTIONS = { @@ -163,6 +165,7 @@ namespace vcpkg::Build {"VCPKG_CHAINLOAD_TOOLCHAIN_FILE", VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE}, {"VCPKG_BUILD_TYPE", VcpkgTripletVar::BUILD_TYPE}, {"VCPKG_ENV_PASSTHROUGH", VcpkgTripletVar::ENV_PASSTHROUGH}, + {"VCPKG_ABI_ADDITIONAL_FILES", VcpkgTripletVar::ABI_ADDITIONAL_FILES}, }; struct ExtendedBuildResult diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 03e0c0b1d..daed6f695 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -496,6 +496,31 @@ namespace vcpkg::Build s_hash_cache.emplace(triplet_file_path, hash); } + for (const fs::path& additional_file : pre_build_info.additional_files) + { + it_hash = s_hash_cache.find(additional_file); + + if (it_hash != s_hash_cache.end()) + { + hash += "-"; + hash += it_hash->second; + } + else if (fs.is_regular_file(additional_file)) + { + std::string tmp_hash = Hash::get_file_hash(fs, additional_file, "SHA1"); + hash += "-"; + hash += tmp_hash; + + s_hash_cache.emplace(additional_file, tmp_hash); + } + else + { + Checks::exit_with_message( + VCPKG_LINE_INFO, + additional_file + " was listed as an additional file for calculating the abi, but was not found."); + } + } + return hash; } @@ -1087,6 +1112,13 @@ namespace vcpkg::Build case VcpkgTripletVar::ENV_PASSTHROUGH : pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";"); break; + case VcpkgTripletVar::ABI_ADDITIONAL_FILES : + pre_build_info.additional_files = Util::fmap(Strings::split(variable_value, ";"), + [](const std::string& path) + { + return fs::path{path}; + }); + break; } } else -- cgit v1.2.3 From e81d22ddec6887a497055d4804a004ca662b4526 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Wed, 17 Jul 2019 10:18:20 -0700 Subject: Convert name of file to u8 string, to compile on windows --- toolsrc/src/vcpkg/build.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index daed6f695..b88d4fd1a 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -517,7 +517,7 @@ namespace vcpkg::Build { Checks::exit_with_message( VCPKG_LINE_INFO, - additional_file + " was listed as an additional file for calculating the abi, but was not found."); + additional_file.u8string() + " was listed as an additional file for calculating the abi, but was not found."); } } -- cgit v1.2.3 From f0f615532f9aa03f1518f03009cff5c716e9b1fd Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Wed, 17 Jul 2019 11:40:27 -0700 Subject: always calculate abi --- toolsrc/src/vcpkg/build.cpp | 116 ++++++++++++++++++++++---------------------- 1 file changed, 59 insertions(+), 57 deletions(-) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index b88d4fd1a..47599bfca 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -623,8 +623,6 @@ namespace vcpkg::Build const PreBuildInfo& pre_build_info, Span dependency_abis) { - if (config.build_package_options.binary_caching == BinaryCaching::NO) return nullopt; - auto& fs = paths.get_filesystem(); const Triplet& triplet = config.triplet; const std::string& name = config.scf.core_paragraph->name; @@ -713,7 +711,7 @@ namespace vcpkg::Build } System::print2( - "Warning: binary caching disabled because abi keys are missing values:\n", + "Warning: abi keys are missing values:\n", Strings::join("", abi_tag_entries_missing, [](const AbiEntry& e) { return " " + e.key + "\n"; }), "\n"); @@ -814,15 +812,14 @@ namespace vcpkg::Build auto maybe_abi_tag_and_file = compute_abi_tag(paths, config, pre_build_info, dependency_abis); const auto abi_tag_and_file = maybe_abi_tag_and_file.get(); + const fs::path archives_root_dir = paths.root / "archives"; + const std::string archive_name = abi_tag_and_file->tag + ".zip"; + const fs::path archive_subpath = fs::u8path(abi_tag_and_file->tag.substr(0, 2)) / archive_name; + const fs::path archive_path = archives_root_dir / archive_subpath; + const fs::path archive_tombstone_path = archives_root_dir / "fail" / archive_subpath; if (config.build_package_options.binary_caching == BinaryCaching::YES && abi_tag_and_file) { - const fs::path archives_root_dir = paths.root / "archives"; - const std::string archive_name = abi_tag_and_file->tag + ".zip"; - const fs::path archive_subpath = fs::u8path(abi_tag_and_file->tag.substr(0, 2)) / archive_name; - const fs::path archive_path = archives_root_dir / archive_subpath; - const fs::path archive_tombstone_path = archives_root_dir / "fail" / archive_subpath; - if (fs.exists(archive_path)) { System::print2("Using cached binary package: ", archive_path.u8string(), "\n"); @@ -855,70 +852,75 @@ namespace vcpkg::Build } System::printf("Could not locate cached archive: %s\n", archive_path.u8string()); + } - ExtendedBuildResult result = do_build_package_and_clean_buildtrees( - paths, pre_build_info, spec, maybe_abi_tag_and_file.value_or(AbiTagAndFile{}).tag, config); + ExtendedBuildResult result = + do_build_package_and_clean_buildtrees( + paths, + pre_build_info, + spec, + maybe_abi_tag_and_file.value_or(AbiTagAndFile{}).tag, + config); - std::error_code ec; - fs.create_directories(paths.package_dir(spec) / "share" / spec.name(), ec); - auto abi_file_in_package = paths.package_dir(spec) / "share" / spec.name() / "vcpkg_abi_info.txt"; - fs.copy_file(abi_tag_and_file->tag_file, abi_file_in_package, fs::stdfs::copy_options::none, ec); - Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not copy into file: %s", abi_file_in_package.u8string()); + std::error_code ec; + fs.create_directories(paths.package_dir(spec) / "share" / spec.name(), ec); + auto abi_file_in_package = paths.package_dir(spec) / "share" / spec.name() / "vcpkg_abi_info.txt"; + fs.copy_file(abi_tag_and_file->tag_file, abi_file_in_package, fs::stdfs::copy_options::none, ec); + Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not copy into file: %s", abi_file_in_package.u8string()); - if (result.code == BuildResult::SUCCEEDED) - { - const auto tmp_archive_path = paths.buildtrees / spec.name() / (spec.triplet().to_string() + ".zip"); + if (config.build_package_options.binary_caching == BinaryCaching::YES && + result.code == BuildResult::SUCCEEDED) + { + const auto tmp_archive_path = paths.buildtrees / spec.name() / (spec.triplet().to_string() + ".zip"); - compress_archive(paths, spec, tmp_archive_path); + compress_archive(paths, spec, tmp_archive_path); - fs.create_directories(archive_path.parent_path(), ec); - fs.rename_or_copy(tmp_archive_path, archive_path, ".tmp", ec); - if (ec) - { - System::printf(System::Color::warning, - "Failed to store binary cache %s: %s\n", - archive_path.u8string(), - ec.message()); - } - else - System::printf("Stored binary cache: %s\n", archive_path.u8string()); + fs.create_directories(archive_path.parent_path(), ec); + fs.rename_or_copy(tmp_archive_path, archive_path, ".tmp", ec); + if (ec) + { + System::printf(System::Color::warning, + "Failed to store binary cache %s: %s\n", + archive_path.u8string(), + ec.message()); } - else if (result.code == BuildResult::BUILD_FAILED || result.code == BuildResult::POST_BUILD_CHECKS_FAILED) + else + System::printf("Stored binary cache: %s\n", archive_path.u8string()); + } + else if (config.build_package_options.binary_caching == BinaryCaching::YES && + (result.code == BuildResult::BUILD_FAILED || + result.code == BuildResult::POST_BUILD_CHECKS_FAILED)) + { + if (!fs.exists(archive_tombstone_path)) { - if (!fs.exists(archive_tombstone_path)) - { - // Build failed, store all failure logs in the tombstone. - const auto tmp_log_path = paths.buildtrees / spec.name() / "tmp_failure_logs"; - const auto tmp_log_path_destination = tmp_log_path / spec.name(); - const auto tmp_failure_zip = paths.buildtrees / spec.name() / "failure_logs.zip"; - fs.create_directories(tmp_log_path_destination, ec); + // Build failed, store all failure logs in the tombstone. + const auto tmp_log_path = paths.buildtrees / spec.name() / "tmp_failure_logs"; + const auto tmp_log_path_destination = tmp_log_path / spec.name(); + const auto tmp_failure_zip = paths.buildtrees / spec.name() / "failure_logs.zip"; + fs.create_directories(tmp_log_path_destination, ec); - for (auto& log_file : fs::stdfs::directory_iterator(paths.buildtrees / spec.name())) + for (auto& log_file : fs::stdfs::directory_iterator(paths.buildtrees / spec.name())) + { + if (log_file.path().extension() == ".log") { - if (log_file.path().extension() == ".log") - { - fs.copy_file(log_file.path(), - tmp_log_path_destination / log_file.path().filename(), - fs::stdfs::copy_options::none, - ec); - } + fs.copy_file(log_file.path(), + tmp_log_path_destination / log_file.path().filename(), + fs::stdfs::copy_options::none, + ec); } + } - compress_directory(paths, tmp_log_path, paths.buildtrees / spec.name() / "failure_logs.zip"); + compress_directory(paths, tmp_log_path, paths.buildtrees / spec.name() / "failure_logs.zip"); - fs.create_directories(archive_tombstone_path.parent_path(), ec); - fs.rename_or_copy(tmp_failure_zip, archive_tombstone_path, ".tmp", ec); + fs.create_directories(archive_tombstone_path.parent_path(), ec); + fs.rename_or_copy(tmp_failure_zip, archive_tombstone_path, ".tmp", ec); - // clean up temporary directory - fs.remove_all(tmp_log_path, ec); - } + // clean up temporary directory + fs.remove_all(tmp_log_path, ec); } - - return result; } - return do_build_package_and_clean_buildtrees( - paths, pre_build_info, spec, maybe_abi_tag_and_file.value_or(AbiTagAndFile{}).tag, config); + return result; } const std::string& to_string(const BuildResult build_result) -- cgit v1.2.3 From 58958eb0ea47c6c423fe78f2cd6fd1e31cbcb082 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Wed, 17 Jul 2019 14:27:18 -0700 Subject: sourceparagraph changes --- toolsrc/include/vcpkg/sourceparagraph.h | 10 ++++++++++ toolsrc/src/vcpkg/sourceparagraph.cpp | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/toolsrc/include/vcpkg/sourceparagraph.h b/toolsrc/include/vcpkg/sourceparagraph.h index 9fbd83475..9a1c2c843 100644 --- a/toolsrc/include/vcpkg/sourceparagraph.h +++ b/toolsrc/include/vcpkg/sourceparagraph.h @@ -46,6 +46,12 @@ namespace vcpkg /// struct SourceParagraph { + enum TYPE : unsigned + { + PORT = 0, + SYS_TOOL, + }; + std::string name; std::string version; std::string description; @@ -54,6 +60,10 @@ namespace vcpkg std::vector supports; std::vector depends; std::vector default_features; + TYPE type; + + static TYPE type_from_string(const std::string& in); + static std::string string_from_type(const TYPE& in); }; /// diff --git a/toolsrc/src/vcpkg/sourceparagraph.cpp b/toolsrc/src/vcpkg/sourceparagraph.cpp index 1a52bd05f..26a7ab118 100644 --- a/toolsrc/src/vcpkg/sourceparagraph.cpp +++ b/toolsrc/src/vcpkg/sourceparagraph.cpp @@ -25,6 +25,7 @@ namespace vcpkg static const std::string SUPPORTS = "Supports"; static const std::string VERSION = "Version"; static const std::string HOMEPAGE = "Homepage"; + static const std::string TYPE = "Type"; } static Span get_list_of_valid_fields() @@ -36,6 +37,7 @@ namespace vcpkg SourceParagraphFields::MAINTAINER, SourceParagraphFields::BUILD_DEPENDS, SourceParagraphFields::HOMEPAGE, + SourceParagraphFields::TYPE, }; return valid_fields; @@ -98,6 +100,35 @@ namespace vcpkg } } + static SourceParagraph::TYPE type_from_string(const std::string& in) + { + if (Strings::equals(in, "port") || Strings::equals(in, "")) + { + return SourceParagraph::PORT; + } + + if (Strings::equals(in, "sys-tool")) + { + return SourceParagraph::SYS_TOOL; + } + + System::print2( + in, " is not a valid control file type. Valid types are:", + "\n port\n sys-tool"); + + Checks::exit_fail(VCPKG_LINE_INFO); + } + + static std::string string_from_type(const SourceParagraph::TYPE& in) + { + switch (in) + { + case SourceParagraph::PORT : return "port"; + case SourceParagraph::SYS_TOOL : return "sys-tool"; + default : Checks::exit_with_message(VCPKG_LINE_INFO, "Invalid CONTROL_TYPE value."); + } + } + static ParseExpected parse_source_paragraph(RawParagraph&& fields) { ParagraphParser parser(std::move(fields)); @@ -114,6 +145,7 @@ namespace vcpkg parse_comma_list(parser.optional_field(SourceParagraphFields::BUILD_DEPENDS))); spgh->supports = parse_comma_list(parser.optional_field(SourceParagraphFields::SUPPORTS)); spgh->default_features = parse_comma_list(parser.optional_field(SourceParagraphFields::DEFAULTFEATURES)); + spgh->type = type_from_string(parser.optional_field(SourceParagraphFields::TYPE)); auto err = parser.error_info(spgh->name); if (err) -- cgit v1.2.3 From f18ffe996877a058da9e0208f92331c83517f6a0 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Wed, 17 Jul 2019 16:04:05 -0700 Subject: Add type field --- toolsrc/include/vcpkg/binaryparagraph.h | 1 + toolsrc/src/vcpkg/binaryparagraph.cpp | 10 ++++++++-- toolsrc/src/vcpkg/sourceparagraph.cpp | 6 +++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index 3315151c6..fa49edaba 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -31,6 +31,7 @@ namespace vcpkg std::vector default_features; std::vector depends; std::string abi; + SourceParagraph::TYPE type; }; struct BinaryControlFile diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index 4b80debab..ad7790fe1 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -23,6 +23,7 @@ namespace vcpkg static const std::string MAINTAINER = "Maintainer"; static const std::string DEPENDS = "Depends"; static const std::string DEFAULTFEATURES = "Default-Features"; + static const std::string TYPE = "Type"; } BinaryParagraph::BinaryParagraph() = default; @@ -60,6 +61,9 @@ namespace vcpkg this->default_features = parse_comma_list(parser.optional_field(Fields::DEFAULTFEATURES)); } + this->type = + SourceParagraph::type_from_string(parser.optional_field(Fields::TYPE)); + if (const auto err = parser.error_info(this->spec.to_string())) { System::print2(System::Color::error, "Error: while parsing the Binary Paragraph for ", this->spec, '\n'); @@ -72,14 +76,14 @@ namespace vcpkg } BinaryParagraph::BinaryParagraph(const SourceParagraph& spgh, const Triplet& triplet, const std::string& abi_tag) - : version(spgh.version), description(spgh.description), maintainer(spgh.maintainer), abi(abi_tag) + : version(spgh.version), description(spgh.description), maintainer(spgh.maintainer), abi(abi_tag), type(spgh.type) { this->spec = PackageSpec::from_name_and_triplet(spgh.name, triplet).value_or_exit(VCPKG_LINE_INFO); this->depends = filter_dependencies(spgh.depends, triplet); } BinaryParagraph::BinaryParagraph(const SourceParagraph& spgh, const FeatureParagraph& fpgh, const Triplet& triplet) - : version(), description(fpgh.description), maintainer(), feature(fpgh.name) + : version(), description(fpgh.description), maintainer(), feature(fpgh.name), type(spgh.type) { this->spec = PackageSpec::from_name_and_triplet(spgh.name, triplet).value_or_exit(VCPKG_LINE_INFO); this->depends = filter_dependencies(fpgh.depends, triplet); @@ -119,5 +123,7 @@ namespace vcpkg if (!pgh.maintainer.empty()) out_str.append("Maintainer: ").append(pgh.maintainer).push_back('\n'); if (!pgh.abi.empty()) out_str.append("Abi: ").append(pgh.abi).push_back('\n'); if (!pgh.description.empty()) out_str.append("Description: ").append(pgh.description).push_back('\n'); + + out_str.append("Type: ").append(SourceParagraph::string_from_type(pgh.type)).push_back('\n'); } } diff --git a/toolsrc/src/vcpkg/sourceparagraph.cpp b/toolsrc/src/vcpkg/sourceparagraph.cpp index 26a7ab118..6af93a99b 100644 --- a/toolsrc/src/vcpkg/sourceparagraph.cpp +++ b/toolsrc/src/vcpkg/sourceparagraph.cpp @@ -100,7 +100,7 @@ namespace vcpkg } } - static SourceParagraph::TYPE type_from_string(const std::string& in) + SourceParagraph::TYPE SourceParagraph::type_from_string(const std::string& in) { if (Strings::equals(in, "port") || Strings::equals(in, "")) { @@ -119,7 +119,7 @@ namespace vcpkg Checks::exit_fail(VCPKG_LINE_INFO); } - static std::string string_from_type(const SourceParagraph::TYPE& in) + std::string SourceParagraph::string_from_type(const SourceParagraph::TYPE& in) { switch (in) { @@ -145,7 +145,7 @@ namespace vcpkg parse_comma_list(parser.optional_field(SourceParagraphFields::BUILD_DEPENDS))); spgh->supports = parse_comma_list(parser.optional_field(SourceParagraphFields::SUPPORTS)); spgh->default_features = parse_comma_list(parser.optional_field(SourceParagraphFields::DEFAULTFEATURES)); - spgh->type = type_from_string(parser.optional_field(SourceParagraphFields::TYPE)); + spgh->type = SourceParagraph::type_from_string(parser.optional_field(SourceParagraphFields::TYPE)); auto err = parser.error_info(spgh->name); if (err) -- cgit v1.2.3 From d39bd70d533c64e929d4399cb9a1bdbfe0efaecd Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Thu, 18 Jul 2019 13:24:31 -0700 Subject: add needs_rebuild, should probably be moved to somewhere else --- toolsrc/include/vcpkg/statusparagraphs.h | 2 ++ toolsrc/src/vcpkg/statusparagraphs.cpp | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/toolsrc/include/vcpkg/statusparagraphs.h b/toolsrc/include/vcpkg/statusparagraphs.h index fa064de7e..3ebad67de 100644 --- a/toolsrc/include/vcpkg/statusparagraphs.h +++ b/toolsrc/include/vcpkg/statusparagraphs.h @@ -62,6 +62,8 @@ namespace vcpkg /// `true` if installed, `false` if not or not found. bool is_installed(const FeatureSpec& spec) const; + bool needs_rebuild(const PackageSpec& spec); + iterator insert(std::unique_ptr); friend void serialize(const StatusParagraphs& pgh, std::string& out_str); diff --git a/toolsrc/src/vcpkg/statusparagraphs.cpp b/toolsrc/src/vcpkg/statusparagraphs.cpp index c642af59b..f204ed568 100644 --- a/toolsrc/src/vcpkg/statusparagraphs.cpp +++ b/toolsrc/src/vcpkg/statusparagraphs.cpp @@ -118,6 +118,31 @@ namespace vcpkg return it != end() && (*it)->is_installed(); } + bool vcpkg::StatusParagraphs::needs_rebuild(const PackageSpec& spec) + { + auto it = find(spec); + if (it != end()) + { + for (const std::string& dep : (*it)->package.depends) + { + PackageSpec dep_spec = + PackageSpec::from_name_and_triplet( + dep, + spec.triplet()).value_or_exit(VCPKG_LINE_INFO); + + if (needs_rebuild(dep_spec)) + { + (*it)->state = InstallState::NEEDS_REBUILD; + return true; + } + } + + return (*it)->needs_rebuild(); + } + + return false; + } + StatusParagraphs::iterator StatusParagraphs::insert(std::unique_ptr pgh) { Checks::check_exit(VCPKG_LINE_INFO, pgh != nullptr, "Inserted null paragraph"); -- cgit v1.2.3 From 3b808a48ce2fafab82bd7b53642a11a08b21c481 Mon Sep 17 00:00:00 2001 From: Curtis J Bezault Date: Fri, 19 Jul 2019 08:08:56 -0700 Subject: Update VERSION.txt --- toolsrc/VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolsrc/VERSION.txt b/toolsrc/VERSION.txt index d7d695c69..0342c24ab 100644 --- a/toolsrc/VERSION.txt +++ b/toolsrc/VERSION.txt @@ -1 +1 @@ -"2019.07.18" +"2019.07.19" -- cgit v1.2.3 From 7ae7efd5799c1cce10ef9e76ee489185de9b0c44 Mon Sep 17 00:00:00 2001 From: Phoebe Date: Sun, 21 Jul 2019 23:47:33 -0700 Subject: [leptionica] upgrade to 1.78 --- ports/leptonica/CONTROL | 2 +- ports/leptonica/portfile.cmake | 4 ++-- ports/leptonica/use-tiff-libraries.patch | 26 +++++++++++++------------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/ports/leptonica/CONTROL b/ports/leptonica/CONTROL index 39a0a5e5c..0d65a10d5 100644 --- a/ports/leptonica/CONTROL +++ b/ports/leptonica/CONTROL @@ -1,5 +1,5 @@ Source: leptonica -Version: 1.76.0-1 +Version: 1.78.0 Homepage: https://github.com/DanBloomberg/leptonica Description: An open source library containing software that is broadly useful for image processing and image analysis applications Build-Depends: libjpeg-turbo, zlib, libpng, tiff, giflib diff --git a/ports/leptonica/portfile.cmake b/ports/leptonica/portfile.cmake index 34a1c379e..7b8479698 100644 --- a/ports/leptonica/portfile.cmake +++ b/ports/leptonica/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DanBloomberg/leptonica - REF 1.76.0 - SHA512 0d7575dc38d1e656a228ef30412a2cbb908b9c7c8636e4e96f4a7dc0429c04709316b8ad04893285ab430c1b2063d71537fc5b989a0f9dbdbec488713e1bab1f + REF 87b8219360bca3c9929a5705c3d9c50c42c34bca + SHA512 b7bfa9437be7e3d9276acacf8f62ccda1cd8f88741ada5106ef0232d4965617be2c5d0b8a6b4462896a1a0b6b44d9ecefd6e6b8d0e50d4fb881bdf5e821703a4 HEAD_REF master PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch diff --git a/ports/leptonica/use-tiff-libraries.patch b/ports/leptonica/use-tiff-libraries.patch index f994be552..4db86ef7b 100644 --- a/ports/leptonica/use-tiff-libraries.patch +++ b/ports/leptonica/use-tiff-libraries.patch @@ -1,13 +1,13 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 3af7e30..55e17da 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -44,7 +44,7 @@ if (PNG_LIBRARY) - endif() - if (TIFF_LIBRARY) - target_include_directories (leptonica PUBLIC ${TIFF_INCLUDE_DIR}) -- target_link_libraries (leptonica ${TIFF_LIBRARY}) -+ target_link_libraries (leptonica ${TIFF_LIBRARIES}) - endif() - if (WEBP_FOUND) - target_include_directories (leptonica PUBLIC ${WEBP_INCLUDE_DIR}) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 6daad98..5119895 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -48,7 +48,7 @@ if (PNG_LIBRARY) + endif() + if (TIFF_LIBRARY) + target_include_directories (leptonica PUBLIC ${TIFF_INCLUDE_DIR}) +- target_link_libraries (leptonica ${TIFF_LIBRARY}) ++ target_link_libraries (leptonica ${TIFF_LIBRARIES}) + endif() + if (WEBP_FOUND) + target_include_directories (leptonica PUBLIC ${WEBP_INCLUDE_DIRS}) -- cgit v1.2.3 From 459908ae14458a615bb0a8c278c799cabd34e558 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 23 Jul 2019 10:07:39 -0700 Subject: add external file hashes to the binary paragraph --- scripts/get_triplet_environment.cmake | 2 +- toolsrc/include/vcpkg/binaryparagraph.h | 1 + toolsrc/include/vcpkg/build.h | 6 +- toolsrc/src/vcpkg/binaryparagraph.cpp | 34 ++++++- toolsrc/src/vcpkg/build.cpp | 157 +++++++++++++++++++++----------- toolsrc/src/vcpkg/statusparagraphs.cpp | 48 +++++----- 6 files changed, 164 insertions(+), 84 deletions(-) diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake index ab5e8f8c3..fa1e5cb39 100644 --- a/scripts/get_triplet_environment.cmake +++ b/scripts/get_triplet_environment.cmake @@ -13,4 +13,4 @@ message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}") message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}") message("VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH}") -message("VCPKG_ABI_ADDITIONAL_FILES=${VCPKG_ABI_ADDITIONAL_FILES}") +message("VCPKG_EXTERNAL_FILES=${VCPKG_EXTERNAL_FILES}") diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index fa49edaba..ec14f8a97 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -32,6 +32,7 @@ namespace vcpkg std::vector depends; std::string abi; SourceParagraph::TYPE type; + std::unordered_map external_files; }; struct BinaryControlFile diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index 85d6ebed9..5b52f436f 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -138,7 +138,7 @@ namespace vcpkg::Build Optional external_toolchain_file; Optional build_type; std::vector passthrough_env_vars; - std::vector additional_files; + std::vector> external_files; }; std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); @@ -153,7 +153,7 @@ namespace vcpkg::Build CHAINLOAD_TOOLCHAIN_FILE, BUILD_TYPE, ENV_PASSTHROUGH, - ABI_ADDITIONAL_FILES, + EXTERNAL_FILES, }; const std::unordered_map VCPKG_OPTIONS = { @@ -165,7 +165,7 @@ namespace vcpkg::Build {"VCPKG_CHAINLOAD_TOOLCHAIN_FILE", VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE}, {"VCPKG_BUILD_TYPE", VcpkgTripletVar::BUILD_TYPE}, {"VCPKG_ENV_PASSTHROUGH", VcpkgTripletVar::ENV_PASSTHROUGH}, - {"VCPKG_ABI_ADDITIONAL_FILES", VcpkgTripletVar::ABI_ADDITIONAL_FILES}, + {"VCPKG_EXTERNAL_FILES", VcpkgTripletVar::EXTERNAL_FILES}, }; struct ExtendedBuildResult diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index ad7790fe1..2e9415dab 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -23,7 +24,7 @@ namespace vcpkg static const std::string MAINTAINER = "Maintainer"; static const std::string DEPENDS = "Depends"; static const std::string DEFAULTFEATURES = "Default-Features"; - static const std::string TYPE = "Type"; + static const std::string EXTERNALFILES = "External-Files"; } BinaryParagraph::BinaryParagraph() = default; @@ -61,8 +62,23 @@ namespace vcpkg this->default_features = parse_comma_list(parser.optional_field(Fields::DEFAULTFEATURES)); } - this->type = - SourceParagraph::type_from_string(parser.optional_field(Fields::TYPE)); + std::vector external_files_or_hashes = + parse_comma_list(parser.optional_field(Fields::EXTERNALFILES)); + + if (external_files_or_hashes.size() % 2 != 0) + { + Checks::exit_with_message( + VCPKG_LINE_INFO, + "The External-Files field is not composed of key-value pairs for ", + this->spec); + } + + for (int i = 0; i < external_files_or_hashes.size(); i += 2) + { + external_files.emplace( + std::move(external_files_or_hashes[i]), + std::move(external_files_or_hashes[i+1])); + } if (const auto err = parser.error_info(this->spec.to_string())) { @@ -124,6 +140,16 @@ namespace vcpkg if (!pgh.abi.empty()) out_str.append("Abi: ").append(pgh.abi).push_back('\n'); if (!pgh.description.empty()) out_str.append("Description: ").append(pgh.description).push_back('\n'); - out_str.append("Type: ").append(SourceParagraph::string_from_type(pgh.type)).push_back('\n'); + if (!pgh.external_files.empty()) + { + out_str.append("External-Files: "); + out_str.append(Strings::join(",", + Util::fmap( + pgh.external_files, + [](const std::pair& kv) + { + return kv.first + "," + kv.second; + }))).push_back('\n'); + } } } diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 47599bfca..110a571b0 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -261,10 +262,12 @@ namespace vcpkg::Build return BinaryParagraph(source_paragraph, feature_paragraph, triplet); } - static std::unique_ptr create_binary_control_file(const SourceParagraph& source_paragraph, - const Triplet& triplet, - const BuildInfo& build_info, - const std::string& abi_tag) + static std::unique_ptr create_binary_control_file( + const SourceParagraph& source_paragraph, + const Triplet& triplet, + const BuildInfo& build_info, + const PreBuildInfo& pre_build_info, + const std::string& abi_tag) { auto bcf = std::make_unique(); BinaryParagraph bpgh(source_paragraph, triplet, abi_tag); @@ -272,6 +275,14 @@ namespace vcpkg::Build { bpgh.version = *p_ver; } + + for (auto& file_hash : pre_build_info.external_files) + { + bpgh.external_files.emplace( + std::move(file_hash.first), + std::move(file_hash.second)); + } + bcf->core_paragraph = std::move(bpgh); return bcf; } @@ -447,6 +458,41 @@ namespace vcpkg::Build return command; } + static std::vector> get_external_file_hashes( + const VcpkgPaths& paths, + const std::vector& files) + { + static std::map s_hash_cache; + + const auto& fs = paths.get_filesystem(); + + std::vector> hashes; + for (const fs::path& external_file : files) + { + auto it_hash = s_hash_cache.find(external_file); + + if (it_hash != s_hash_cache.end()) + { + hashes.emplace_back(external_file, it_hash->second); + } + else if (fs.is_regular_file(external_file)) + { + auto emp = s_hash_cache.emplace(external_file.u8string(), + Hash::get_file_hash(fs, external_file, "SHA1")); + hashes.emplace_back(external_file, emp.first->second); + } + else + { + Checks::exit_with_message( + VCPKG_LINE_INFO, + external_file.u8string() + + " was listed as an additional file for calculating the abi, but was not found."); + } + } + + return hashes; + } + static std::string get_triplet_abi(const VcpkgPaths& paths, const PreBuildInfo& pre_build_info, const Triplet& triplet) @@ -496,31 +542,6 @@ namespace vcpkg::Build s_hash_cache.emplace(triplet_file_path, hash); } - for (const fs::path& additional_file : pre_build_info.additional_files) - { - it_hash = s_hash_cache.find(additional_file); - - if (it_hash != s_hash_cache.end()) - { - hash += "-"; - hash += it_hash->second; - } - else if (fs.is_regular_file(additional_file)) - { - std::string tmp_hash = Hash::get_file_hash(fs, additional_file, "SHA1"); - hash += "-"; - hash += tmp_hash; - - s_hash_cache.emplace(additional_file, tmp_hash); - } - else - { - Checks::exit_with_message( - VCPKG_LINE_INFO, - additional_file.u8string() + " was listed as an additional file for calculating the abi, but was not found."); - } - } - return hash; } @@ -572,7 +593,13 @@ namespace vcpkg::Build const size_t error_count = PostBuildLint::perform_all_checks(spec, paths, pre_build_info, build_info, config.port_dir); - auto bcf = create_binary_control_file(*config.scf.core_paragraph, triplet, build_info, abi_tag); + std::unique_ptr bcf = + create_binary_control_file( + *config.scf.core_paragraph, + triplet, + build_info, + pre_build_info, + abi_tag); if (error_count != 0) { @@ -629,7 +656,9 @@ namespace vcpkg::Build std::vector abi_tag_entries(dependency_abis.begin(), dependency_abis.end()); - abi_tag_entries.emplace_back(AbiEntry{"cmake", paths.get_tool_version(Tools::CMAKE)}); + // Sorted here as the order of dependency_abis is the only + // non-deterministicly ordered set of AbiEntries + Util::sort(abi_tag_entries); // If there is an unusually large number of files in the port then // something suspicious is going on. Rather than hash all of them @@ -637,13 +666,16 @@ namespace vcpkg::Build const int max_port_file_count = 100; // the order of recursive_directory_iterator is undefined so save the names to sort - std::vector port_files; + std::vector> hashes_files; for (auto& port_file : fs::stdfs::recursive_directory_iterator(config.port_dir)) { if (fs::is_regular_file(status(port_file))) { - port_files.push_back(port_file); - if (port_files.size() > max_port_file_count) + hashes_files.emplace_back( + vcpkg::Hash::get_file_hash(fs, port_file, "SHA1"), + port_file.path().filename()); + + if (hashes_files.size() > max_port_file_count) { abi_tag_entries.emplace_back(AbiEntry{"no_hash_max_portfile", ""}); break; @@ -651,25 +683,45 @@ namespace vcpkg::Build } } - if (port_files.size() <= max_port_file_count) + if (hashes_files.size() <= max_port_file_count) { - std::sort(port_files.begin(), port_files.end()); + Util::sort(hashes_files); - int counter = 0; - for (auto& port_file : port_files) + for (auto& hash_file : hashes_files) { - // When vcpkg takes a dependency on C++17 it can use fs::relative, - // which will give a stable ordering and better names in the key entry. - // this is not available in the filesystem TS so instead number the files for the key. - std::string key = Strings::format("file_%03d", counter++); - if (Debug::g_debugging) - { - System::print2("[DEBUG] mapping ", key, " from ", port_file.u8string(), "\n"); - } - abi_tag_entries.emplace_back(AbiEntry{key, vcpkg::Hash::get_file_hash(fs, port_file, "SHA1")}); + // We've already sorted by hash so it's safe to write down the + // filename, which will be consistent across machines. + abi_tag_entries.emplace_back( + AbiEntry{ + std::move(hash_file.second), + std::move(hash_file.first) + }); } } + //Make a copy of the external files and their hashes, and sort by hash + auto additional_file_hashes = pre_build_info.external_files; + std::sort( + additional_file_hashes.begin(), + additional_file_hashes.end(), + [](const std::pair& l, + const std::pair& r) + { + return l.second < r.second || + (l.second == r.second && l.first < r.first); + }); + + for (auto& hash_file : additional_file_hashes) + { + abi_tag_entries.emplace_back( + AbiEntry{ + std::move(hash_file.first), + std::move(hash_file.second) + }); + } + + abi_tag_entries.emplace_back(AbiEntry{"cmake", paths.get_tool_version(Tools::CMAKE)}); + abi_tag_entries.emplace_back(AbiEntry{ "vcpkg_fixup_cmake_targets", vcpkg::Hash::get_file_hash(fs, paths.scripts / "cmake" / "vcpkg_fixup_cmake_targets.cmake", "SHA1")}); @@ -682,8 +734,6 @@ namespace vcpkg::Build if (config.build_package_options.use_head_version == UseHeadVersion::YES) abi_tag_entries.emplace_back(AbiEntry{"head", ""}); - Util::sort(abi_tag_entries); - const std::string full_abi_info = Strings::join("", abi_tag_entries, [](const AbiEntry& p) { return p.key + " " + p.value + "\n"; }); @@ -1114,12 +1164,15 @@ namespace vcpkg::Build case VcpkgTripletVar::ENV_PASSTHROUGH : pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";"); break; - case VcpkgTripletVar::ABI_ADDITIONAL_FILES : - pre_build_info.additional_files = Util::fmap(Strings::split(variable_value, ";"), + case VcpkgTripletVar::EXTERNAL_FILES : + pre_build_info.external_files = + get_external_file_hashes( + paths, + Util::fmap(Strings::split(variable_value, ";"), [](const std::string& path) { return fs::path{path}; - }); + })); break; } } diff --git a/toolsrc/src/vcpkg/statusparagraphs.cpp b/toolsrc/src/vcpkg/statusparagraphs.cpp index f204ed568..4f01b9918 100644 --- a/toolsrc/src/vcpkg/statusparagraphs.cpp +++ b/toolsrc/src/vcpkg/statusparagraphs.cpp @@ -118,30 +118,30 @@ namespace vcpkg return it != end() && (*it)->is_installed(); } - bool vcpkg::StatusParagraphs::needs_rebuild(const PackageSpec& spec) - { - auto it = find(spec); - if (it != end()) - { - for (const std::string& dep : (*it)->package.depends) - { - PackageSpec dep_spec = - PackageSpec::from_name_and_triplet( - dep, - spec.triplet()).value_or_exit(VCPKG_LINE_INFO); - - if (needs_rebuild(dep_spec)) - { - (*it)->state = InstallState::NEEDS_REBUILD; - return true; - } - } - - return (*it)->needs_rebuild(); - } - - return false; - } + //bool vcpkg::StatusParagraphs::needs_rebuild(const PackageSpec& spec) + //{ + // auto it = find(spec); + // if (it != end()) + // { + // for (const std::string& dep : (*it)->package.depends) + // { + // PackageSpec dep_spec = + // PackageSpec::from_name_and_triplet( + // dep, + // spec.triplet()).value_or_exit(VCPKG_LINE_INFO); + + // if (needs_rebuild(dep_spec)) + // { + // (*it)->state = InstallState::NEEDS_REBUILD; + // return true; + // } + // } + + // return (*it)->needs_rebuild(); + // } + + // return false; + //} StatusParagraphs::iterator StatusParagraphs::insert(std::unique_ptr pgh) { -- cgit v1.2.3 From 2f2a45595fa925edeace250b694d70095c42b5fa Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 23 Jul 2019 15:26:13 -0700 Subject: Prompt rebuild if external hash changes --- toolsrc/include/vcpkg/binaryparagraph.h | 11 +++++++++++ toolsrc/src/vcpkg/binaryparagraph.cpp | 27 +++++++++++++++++++++++++++ toolsrc/src/vcpkg/build.cpp | 12 ++++++++---- toolsrc/src/vcpkg/dependencies.cpp | 8 ++++++-- 4 files changed, 52 insertions(+), 6 deletions(-) diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index ec14f8a97..a95a68090 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -7,6 +7,13 @@ namespace vcpkg { + enum class ConsistencyState : unsigned + { + UNKNOWN = 0, + CONSISTENT, + INCONSISTENT, + }; + /// /// Built package metadata /// @@ -23,6 +30,8 @@ namespace vcpkg std::string dir() const; + bool is_consistent() const; + PackageSpec spec; std::string version; std::string description; @@ -33,6 +42,8 @@ namespace vcpkg std::string abi; SourceParagraph::TYPE type; std::unordered_map external_files; + + mutable ConsistencyState consistency = ConsistencyState::UNKNOWN; }; struct BinaryControlFile diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index 2e9415dab..88d257e7e 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -1,6 +1,7 @@ #include "pch.h" #include +#include #include #include #include @@ -27,6 +28,32 @@ namespace vcpkg static const std::string EXTERNALFILES = "External-Files"; } + bool BinaryParagraph::is_consistent() const + { + switch (consistency) + { + case ConsistencyState::UNKNOWN : + for (const auto& file_hash : external_files) + { + const auto& realfs = Files::get_real_filesystem(); + + if (realfs.is_regular_file(file_hash.first) && + Hash::get_file_hash(realfs, file_hash.first, "SHA1") != file_hash.second) + { + consistency = ConsistencyState::INCONSISTENT; + return false; + } + } + + consistency = ConsistencyState::CONSISTENT; + return true; + case ConsistencyState::CONSISTENT : return true; + case ConsistencyState::INCONSISTENT : return false; + } + + Checks::unreachable(VCPKG_LINE_INFO); + } + BinaryParagraph::BinaryParagraph() = default; BinaryParagraph::BinaryParagraph(std::unordered_map fields) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 110a571b0..1f0dda590 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -475,11 +475,15 @@ namespace vcpkg::Build { hashes.emplace_back(external_file, it_hash->second); } - else if (fs.is_regular_file(external_file)) + else if (Files::get_real_filesystem().is_regular_file(external_file)) { - auto emp = s_hash_cache.emplace(external_file.u8string(), - Hash::get_file_hash(fs, external_file, "SHA1")); - hashes.emplace_back(external_file, emp.first->second); + auto emp = s_hash_cache.emplace( + external_file.u8string(), + Hash::get_file_hash( + Files::get_real_filesystem(), + external_file, "SHA1")); + + hashes.emplace_back(external_file.u8string(), emp.first->second); } else { diff --git a/toolsrc/src/vcpkg/dependencies.cpp b/toolsrc/src/vcpkg/dependencies.cpp index b604c9acf..50c310dbb 100644 --- a/toolsrc/src/vcpkg/dependencies.cpp +++ b/toolsrc/src/vcpkg/dependencies.cpp @@ -664,13 +664,17 @@ namespace vcpkg::Dependencies if (auto p_installed = cluster.installed.get()) { - if (p_installed->original_features.find(feature) != p_installed->original_features.end()) + if (p_installed->original_features.find(feature) != p_installed->original_features.end() && + p_installed->ipv.core->package.is_consistent()) { return MarkPlusResult::SUCCESS; } } - // This feature was or will be uninstalled, therefore we need to rebuild + //The feature was not previously installed or the external files of the + //port are no longer consistent with the last installation of this port + //(they've either been modified or removed). Mark the cluster + //(aka the entire port) to be removed before re-adding it. mark_minus(cluster, graph, graph_plan, prevent_default_features); return follow_plus_dependencies(feature, cluster, graph, graph_plan, prevent_default_features); -- cgit v1.2.3 From e1813766047b17cf8d80dc4babed4d1195df3b56 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 23 Jul 2019 15:31:53 -0700 Subject: fix condition --- toolsrc/src/vcpkg/binaryparagraph.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index 88d257e7e..7448d456b 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -37,7 +37,7 @@ namespace vcpkg { const auto& realfs = Files::get_real_filesystem(); - if (realfs.is_regular_file(file_hash.first) && + if (!realfs.is_regular_file(file_hash.first) || Hash::get_file_hash(realfs, file_hash.first, "SHA1") != file_hash.second) { consistency = ConsistencyState::INCONSISTENT; -- cgit v1.2.3 From f64d2e9103c8a181ad89cb5d485863a5772105a1 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 23 Jul 2019 15:33:36 -0700 Subject: remove accidental comment --- toolsrc/src/vcpkg/statusparagraphs.cpp | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/toolsrc/src/vcpkg/statusparagraphs.cpp b/toolsrc/src/vcpkg/statusparagraphs.cpp index 4f01b9918..c642af59b 100644 --- a/toolsrc/src/vcpkg/statusparagraphs.cpp +++ b/toolsrc/src/vcpkg/statusparagraphs.cpp @@ -118,31 +118,6 @@ namespace vcpkg return it != end() && (*it)->is_installed(); } - //bool vcpkg::StatusParagraphs::needs_rebuild(const PackageSpec& spec) - //{ - // auto it = find(spec); - // if (it != end()) - // { - // for (const std::string& dep : (*it)->package.depends) - // { - // PackageSpec dep_spec = - // PackageSpec::from_name_and_triplet( - // dep, - // spec.triplet()).value_or_exit(VCPKG_LINE_INFO); - - // if (needs_rebuild(dep_spec)) - // { - // (*it)->state = InstallState::NEEDS_REBUILD; - // return true; - // } - // } - - // return (*it)->needs_rebuild(); - // } - - // return false; - //} - StatusParagraphs::iterator StatusParagraphs::insert(std::unique_ptr pgh) { Checks::check_exit(VCPKG_LINE_INFO, pgh != nullptr, "Inserted null paragraph"); -- cgit v1.2.3 From 829f99b50624778ed1534e50fb04912d782fa4df Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 23 Jul 2019 15:36:13 -0700 Subject: remove needs_rebuild from statusparagraphs --- toolsrc/include/vcpkg/statusparagraphs.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/toolsrc/include/vcpkg/statusparagraphs.h b/toolsrc/include/vcpkg/statusparagraphs.h index 3ebad67de..fa064de7e 100644 --- a/toolsrc/include/vcpkg/statusparagraphs.h +++ b/toolsrc/include/vcpkg/statusparagraphs.h @@ -62,8 +62,6 @@ namespace vcpkg /// `true` if installed, `false` if not or not found. bool is_installed(const FeatureSpec& spec) const; - bool needs_rebuild(const PackageSpec& spec); - iterator insert(std::unique_ptr); friend void serialize(const StatusParagraphs& pgh, std::string& out_str); -- cgit v1.2.3 From 81909e47d1f1563926e78d2e0f0764a3dc1bef03 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 23 Jul 2019 15:38:09 -0700 Subject: Remove types from this PR --- toolsrc/include/vcpkg/binaryparagraph.h | 1 - toolsrc/include/vcpkg/sourceparagraph.h | 10 ---------- toolsrc/src/vcpkg/binaryparagraph.cpp | 4 ++-- toolsrc/src/vcpkg/sourceparagraph.cpp | 30 ------------------------------ 4 files changed, 2 insertions(+), 43 deletions(-) diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index a95a68090..8099367c2 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -40,7 +40,6 @@ namespace vcpkg std::vector default_features; std::vector depends; std::string abi; - SourceParagraph::TYPE type; std::unordered_map external_files; mutable ConsistencyState consistency = ConsistencyState::UNKNOWN; diff --git a/toolsrc/include/vcpkg/sourceparagraph.h b/toolsrc/include/vcpkg/sourceparagraph.h index 9a1c2c843..9fbd83475 100644 --- a/toolsrc/include/vcpkg/sourceparagraph.h +++ b/toolsrc/include/vcpkg/sourceparagraph.h @@ -46,12 +46,6 @@ namespace vcpkg /// struct SourceParagraph { - enum TYPE : unsigned - { - PORT = 0, - SYS_TOOL, - }; - std::string name; std::string version; std::string description; @@ -60,10 +54,6 @@ namespace vcpkg std::vector supports; std::vector depends; std::vector default_features; - TYPE type; - - static TYPE type_from_string(const std::string& in); - static std::string string_from_type(const TYPE& in); }; /// diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index 7448d456b..9b1a8e201 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -119,14 +119,14 @@ namespace vcpkg } BinaryParagraph::BinaryParagraph(const SourceParagraph& spgh, const Triplet& triplet, const std::string& abi_tag) - : version(spgh.version), description(spgh.description), maintainer(spgh.maintainer), abi(abi_tag), type(spgh.type) + : version(spgh.version), description(spgh.description), maintainer(spgh.maintainer), abi(abi_tag) { this->spec = PackageSpec::from_name_and_triplet(spgh.name, triplet).value_or_exit(VCPKG_LINE_INFO); this->depends = filter_dependencies(spgh.depends, triplet); } BinaryParagraph::BinaryParagraph(const SourceParagraph& spgh, const FeatureParagraph& fpgh, const Triplet& triplet) - : version(), description(fpgh.description), maintainer(), feature(fpgh.name), type(spgh.type) + : version(), description(fpgh.description), maintainer(), feature(fpgh.name) { this->spec = PackageSpec::from_name_and_triplet(spgh.name, triplet).value_or_exit(VCPKG_LINE_INFO); this->depends = filter_dependencies(fpgh.depends, triplet); diff --git a/toolsrc/src/vcpkg/sourceparagraph.cpp b/toolsrc/src/vcpkg/sourceparagraph.cpp index 6af93a99b..5542ef923 100644 --- a/toolsrc/src/vcpkg/sourceparagraph.cpp +++ b/toolsrc/src/vcpkg/sourceparagraph.cpp @@ -100,35 +100,6 @@ namespace vcpkg } } - SourceParagraph::TYPE SourceParagraph::type_from_string(const std::string& in) - { - if (Strings::equals(in, "port") || Strings::equals(in, "")) - { - return SourceParagraph::PORT; - } - - if (Strings::equals(in, "sys-tool")) - { - return SourceParagraph::SYS_TOOL; - } - - System::print2( - in, " is not a valid control file type. Valid types are:", - "\n port\n sys-tool"); - - Checks::exit_fail(VCPKG_LINE_INFO); - } - - std::string SourceParagraph::string_from_type(const SourceParagraph::TYPE& in) - { - switch (in) - { - case SourceParagraph::PORT : return "port"; - case SourceParagraph::SYS_TOOL : return "sys-tool"; - default : Checks::exit_with_message(VCPKG_LINE_INFO, "Invalid CONTROL_TYPE value."); - } - } - static ParseExpected parse_source_paragraph(RawParagraph&& fields) { ParagraphParser parser(std::move(fields)); @@ -145,7 +116,6 @@ namespace vcpkg parse_comma_list(parser.optional_field(SourceParagraphFields::BUILD_DEPENDS))); spgh->supports = parse_comma_list(parser.optional_field(SourceParagraphFields::SUPPORTS)); spgh->default_features = parse_comma_list(parser.optional_field(SourceParagraphFields::DEFAULTFEATURES)); - spgh->type = SourceParagraph::type_from_string(parser.optional_field(SourceParagraphFields::TYPE)); auto err = parser.error_info(spgh->name); if (err) -- cgit v1.2.3 From 45cd8cda5a8339ec91693c720dd7df5b496b8856 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 23 Jul 2019 15:49:48 -0700 Subject: move the pre_build_info --- toolsrc/src/vcpkg/build.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index f810d537a..70c664b75 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -603,7 +603,7 @@ namespace vcpkg::Build *config.scf.core_paragraph, triplet, build_info, - pre_build_info, + std::move(pre_build_info), abi_tag); if (error_count != 0) -- cgit v1.2.3 From d68b9a08b1edfe80b77fd65afd21faffc81b162b Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 23 Jul 2019 16:28:00 -0700 Subject: only use filename --- toolsrc/include/vcpkg/build.h | 2 +- toolsrc/src/vcpkg/build.cpp | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index 0445675f0..2d5e18a43 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -138,7 +138,7 @@ namespace vcpkg::Build Optional external_toolchain_file; Optional build_type; std::vector passthrough_env_vars; - std::vector> external_files; + std::vector> external_files; }; std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 70c664b75..9d5b490e3 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -281,7 +281,7 @@ namespace vcpkg::Build for (auto& file_hash : pre_build_info.external_files) { bpgh.external_files.emplace( - std::move(file_hash.first), + file_hash.first.u8string(), std::move(file_hash.second)); } @@ -459,7 +459,7 @@ namespace vcpkg::Build return command; } - static std::vector> get_external_file_hashes( + static std::vector> get_external_file_hashes( const VcpkgPaths& paths, const std::vector& files) { @@ -467,7 +467,7 @@ namespace vcpkg::Build const auto& fs = paths.get_filesystem(); - std::vector> hashes; + std::vector> hashes; for (const fs::path& external_file : files) { auto it_hash = s_hash_cache.find(external_file); @@ -705,7 +705,16 @@ namespace vcpkg::Build } //Make a copy of the external files and their hashes, and sort by hash - auto additional_file_hashes = pre_build_info.external_files; + std::vector> additional_file_hashes + = Util::fmap(pre_build_info.external_files, + [](const std::pair& file_hash) + { + return std::pair{ + file_hash.first.filename().u8string(), + file_hash.second + }; + }); + std::sort( additional_file_hashes.begin(), additional_file_hashes.end(), -- cgit v1.2.3 From 0c7669d009548616aeb754276deea974ba7a53c3 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Wed, 24 Jul 2019 14:24:49 -0700 Subject: store fs::path instead of std::string --- toolsrc/include/vcpkg/binaryparagraph.h | 4 ++-- toolsrc/src/vcpkg/binaryparagraph.cpp | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index 8099367c2..d75e4abb1 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -3,7 +3,7 @@ #include #include -#include +#include namespace vcpkg { @@ -40,7 +40,7 @@ namespace vcpkg std::vector default_features; std::vector depends; std::string abi; - std::unordered_map external_files; + std::map external_files; mutable ConsistencyState consistency = ConsistencyState::UNKNOWN; }; diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index 9b1a8e201..f571e0e8e 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -100,7 +100,9 @@ namespace vcpkg this->spec); } - for (int i = 0; i < external_files_or_hashes.size(); i += 2) + for (decltype(external_files_or_hashes)::size_type i = 0; + i < external_files_or_hashes.size(); + i += 2) { external_files.emplace( std::move(external_files_or_hashes[i]), -- cgit v1.2.3 From be59ecce61a14ba9ca0f65f6eeb7db83782bac22 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Wed, 24 Jul 2019 14:43:44 -0700 Subject: Use correct types --- toolsrc/src/vcpkg/build.cpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index a5383b2a8..ff3025077 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -711,27 +711,19 @@ namespace vcpkg::Build [](const std::pair& file_hash) { return std::pair{ - file_hash.first.filename().u8string(), - file_hash.second + file_hash.second, + file_hash.first.filename().u8string() }; }); - std::sort( - additional_file_hashes.begin(), - additional_file_hashes.end(), - [](const std::pair& l, - const std::pair& r) - { - return l.second < r.second || - (l.second == r.second && l.first < r.first); - }); + std::sort(additional_file_hashes.begin(), additional_file_hashes.end()); for (auto& hash_file : additional_file_hashes) { abi_tag_entries.emplace_back( AbiEntry{ - std::move(hash_file.first), - std::move(hash_file.second) + std::move(hash_file.second), + std::move(hash_file.first) }); } -- cgit v1.2.3 From 67a749b9892b1c68609dd41dd014dd8de2cdbb9b Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Wed, 24 Jul 2019 14:46:55 -0700 Subject: turn path into string --- toolsrc/src/vcpkg/build.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index ff3025077..80ac3ffe6 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -679,7 +679,7 @@ namespace vcpkg::Build { hashes_files.emplace_back( vcpkg::Hash::get_file_hash(fs, port_file, "SHA1"), - port_file.path().filename()); + port_file.path().filename().u8string()); if (hashes_files.size() > max_port_file_count) { -- cgit v1.2.3 From f81aa47176dd805ccceea0fceb8c4e2158e5c554 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Wed, 24 Jul 2019 14:53:50 -0700 Subject: convert path to string --- toolsrc/src/vcpkg/binaryparagraph.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index f571e0e8e..9be2310c6 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -175,9 +175,9 @@ namespace vcpkg out_str.append(Strings::join(",", Util::fmap( pgh.external_files, - [](const std::pair& kv) + [](const std::pair& kv) { - return kv.first + "," + kv.second; + return kv.first.u8string() + "," + kv.second; }))).push_back('\n'); } } -- cgit v1.2.3 From 9da7c5c99ee42e382895dbd0dafdd29beaa61075 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Thu, 25 Jul 2019 09:38:05 -0700 Subject: Make comment better --- toolsrc/src/vcpkg/build.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 80ac3ffe6..69a313c1a 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -705,7 +705,8 @@ namespace vcpkg::Build } } - //Make a copy of the external files and their hashes, and sort by hash + //Make a copy of the external file names and their hashes, and sort by + //hash. std::vector> additional_file_hashes = Util::fmap(pre_build_info.external_files, [](const std::pair& file_hash) -- cgit v1.2.3 From a35494a7799e7bf679654be0455a1b0d2a4585b3 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Fri, 26 Jul 2019 18:57:51 +0800 Subject: [mpmcqueue][spscqueue] Add new port --- ports/mpmcqueue/CONTROL | 4 ++++ ports/mpmcqueue/portfile.cmake | 19 +++++++++++++++++++ ports/spscqueue/CONTROL | 4 ++++ ports/spscqueue/portfile.cmake | 19 +++++++++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 ports/mpmcqueue/CONTROL create mode 100644 ports/mpmcqueue/portfile.cmake create mode 100644 ports/spscqueue/CONTROL create mode 100644 ports/spscqueue/portfile.cmake diff --git a/ports/mpmcqueue/CONTROL b/ports/mpmcqueue/CONTROL new file mode 100644 index 000000000..3da89f6a5 --- /dev/null +++ b/ports/mpmcqueue/CONTROL @@ -0,0 +1,4 @@ +Source: mpmcqueue +Version: 2019-07-26 +Description: A bounded multi-producer multi-consumer lock-free queue written in C++11 +Homepage: https://github.com/rigtorp/MPMCQueue diff --git a/ports/mpmcqueue/portfile.cmake b/ports/mpmcqueue/portfile.cmake new file mode 100644 index 000000000..be2f03064 --- /dev/null +++ b/ports/mpmcqueue/portfile.cmake @@ -0,0 +1,19 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO rigtorp/MPMCQueue + REF 5883e32b07e8a60c22d532d9120ea5c11348aea9 + SHA512 4adbbe5e014e0ef5c7030aaa9faa4e07e2c65753cd89c770da250811c13776576c4f1caf4144542318c41ebc7433b106e802c482a5d44572963a5ab59047257e + HEAD_REF master +) + +file(COPY + ${SOURCE_PATH}/include/rigtorp/MPMCQueue.h + DESTINATION ${CURRENT_PACKAGES_DIR}/include/rigtorp +) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/spscqueue/CONTROL b/ports/spscqueue/CONTROL new file mode 100644 index 000000000..e8330caaa --- /dev/null +++ b/ports/spscqueue/CONTROL @@ -0,0 +1,4 @@ +Source: spscqueue +Version: 2019-07-26 +Description: A bounded single-producer single-consumer wait-free and lock-free queue written in C++11 +Homepage: https://github.com/rigtorp/SPSCQueue diff --git a/ports/spscqueue/portfile.cmake b/ports/spscqueue/portfile.cmake new file mode 100644 index 000000000..5bc0628bc --- /dev/null +++ b/ports/spscqueue/portfile.cmake @@ -0,0 +1,19 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO rigtorp/SPSCQueue + REF 5165a08ac4474c77c636050332eca6ebfdd53533 + SHA512 30cd60711f816e6003a5b114c48bd12da449cb7b0f19aa58dd57e3abc3e5200847c3eb492627b4013f57eec11d5d6f0a11fedbcb21dd8dd5c44682c49456e4e1 + HEAD_REF master +) + +file(COPY + ${SOURCE_PATH}/include/rigtorp/SPSCQueue.h + DESTINATION ${CURRENT_PACKAGES_DIR}/include/rigtorp +) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) -- cgit v1.2.3 From 8cbef1424afff5e4be3bf0e1121058465c7d6f6a Mon Sep 17 00:00:00 2001 From: JackBoosY Date: Thu, 8 Aug 2019 22:37:53 -0700 Subject: [ffmpeg]Add feature avresample. --- ports/ffmpeg/CONTROL | 5 ++++- ports/ffmpeg/portfile.cmake | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ports/ffmpeg/CONTROL b/ports/ffmpeg/CONTROL index 3bbf544c1..abf59b857 100644 --- a/ports/ffmpeg/CONTROL +++ b/ports/ffmpeg/CONTROL @@ -1,5 +1,5 @@ Source: ffmpeg -Version: 4.1-9 +Version: 4.1-10 Homepage: https://ffmpeg.org Description: a library to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations. @@ -45,3 +45,6 @@ Description: allow nonfree and unredistributable libraries Feature: gpl Description: allow GPL licensed libraries + +Feature: avresample +Description: Libav audio resampling library support in ffmpeg diff --git a/ports/ffmpeg/portfile.cmake b/ports/ffmpeg/portfile.cmake index 7309bd544..91c12b553 100644 --- a/ports/ffmpeg/portfile.cmake +++ b/ports/ffmpeg/portfile.cmake @@ -126,6 +126,10 @@ else() set(OPTIONS "${OPTIONS} --disable-bzlib") endif() +if("avresample" IN_LIST FEATURES) + set(OPTIONS "${OPTIONS} --enable-avresample") +endif() + set(OPTIONS_CROSS "") if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") -- cgit v1.2.3 From 0c7d8f414669c6e025794c374f2837e5fa24d02b Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Fri, 9 Aug 2019 14:21:58 -0700 Subject: Change purpose of this PR to just overriding the abi --- toolsrc/include/vcpkg/binaryparagraph.h | 12 --- toolsrc/include/vcpkg/build.h | 7 +- toolsrc/src/vcpkg/binaryparagraph.cpp | 59 --------------- toolsrc/src/vcpkg/build.cpp | 128 ++++++++++---------------------- toolsrc/src/vcpkg/dependencies.cpp | 7 +- 5 files changed, 46 insertions(+), 167 deletions(-) diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index a68fcfb36..0fbd382fa 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -8,13 +8,6 @@ namespace vcpkg { - enum class ConsistencyState : unsigned - { - UNKNOWN = 0, - CONSISTENT, - INCONSISTENT, - }; - /// /// Built package metadata /// @@ -31,8 +24,6 @@ namespace vcpkg std::string dir() const; - bool is_consistent() const; - PackageSpec spec; std::string version; std::string description; @@ -41,9 +32,6 @@ namespace vcpkg std::vector default_features; std::vector depends; std::string abi; - std::map external_files; - - mutable ConsistencyState consistency = ConsistencyState::UNKNOWN; }; struct BinaryControlFile diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index c393d989b..cd1821b32 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -137,8 +137,9 @@ namespace vcpkg::Build Optional visual_studio_path; Optional external_toolchain_file; Optional build_type; + Optional public_abi_override; + Optional port; std::vector passthrough_env_vars; - std::vector> external_files; }; std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset); @@ -153,7 +154,7 @@ namespace vcpkg::Build CHAINLOAD_TOOLCHAIN_FILE, BUILD_TYPE, ENV_PASSTHROUGH, - EXTERNAL_FILES, + PUBLIC_ABI_OVERRIDE, }; const std::unordered_map VCPKG_OPTIONS = { @@ -165,7 +166,7 @@ namespace vcpkg::Build {"VCPKG_CHAINLOAD_TOOLCHAIN_FILE", VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE}, {"VCPKG_BUILD_TYPE", VcpkgTripletVar::BUILD_TYPE}, {"VCPKG_ENV_PASSTHROUGH", VcpkgTripletVar::ENV_PASSTHROUGH}, - {"VCPKG_EXTERNAL_FILES", VcpkgTripletVar::EXTERNAL_FILES}, + {"VCPKG_PUBLIC_ABI_OVERRIDE", VcpkgTripletVar::PUBLIC_ABI_OVERRIDE}, }; struct ExtendedBuildResult diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index ef194f9f3..231380b19 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -25,33 +25,6 @@ namespace vcpkg static const std::string MAINTAINER = "Maintainer"; static const std::string DEPENDS = "Depends"; static const std::string DEFAULTFEATURES = "Default-Features"; - static const std::string EXTERNALFILES = "External-Files"; - } - - bool BinaryParagraph::is_consistent() const - { - switch (consistency) - { - case ConsistencyState::UNKNOWN : - for (const auto& file_hash : external_files) - { - const auto& realfs = Files::get_real_filesystem(); - - if (!realfs.is_regular_file(file_hash.first) || - Hash::get_file_hash(realfs, file_hash.first, "SHA1") != file_hash.second) - { - consistency = ConsistencyState::INCONSISTENT; - return false; - } - } - - consistency = ConsistencyState::CONSISTENT; - return true; - case ConsistencyState::CONSISTENT : return true; - case ConsistencyState::INCONSISTENT : return false; - } - - Checks::unreachable(VCPKG_LINE_INFO); } BinaryParagraph::BinaryParagraph() = default; @@ -89,26 +62,6 @@ namespace vcpkg this->default_features = parse_comma_list(parser.optional_field(Fields::DEFAULTFEATURES)); } - std::vector external_files_or_hashes = - parse_comma_list(parser.optional_field(Fields::EXTERNALFILES)); - - if (external_files_or_hashes.size() % 2 != 0) - { - Checks::exit_with_message( - VCPKG_LINE_INFO, - "The External-Files field is not composed of key-value pairs for ", - this->spec); - } - - for (decltype(external_files_or_hashes)::size_type i = 0; - i < external_files_or_hashes.size(); - i += 2) - { - external_files.emplace( - std::move(external_files_or_hashes[i]), - std::move(external_files_or_hashes[i+1])); - } - if (const auto err = parser.error_info(this->spec.to_string())) { System::print2(System::Color::error, "Error: while parsing the Binary Paragraph for ", this->spec, '\n'); @@ -168,17 +121,5 @@ namespace vcpkg if (!pgh.maintainer.empty()) out_str.append("Maintainer: ").append(pgh.maintainer).push_back('\n'); if (!pgh.abi.empty()) out_str.append("Abi: ").append(pgh.abi).push_back('\n'); if (!pgh.description.empty()) out_str.append("Description: ").append(pgh.description).push_back('\n'); - - if (!pgh.external_files.empty()) - { - out_str.append("External-Files: "); - out_str.append(Strings::join(",", - Util::fmap( - pgh.external_files, - [](const std::pair& kv) - { - return kv.first.u8string() + "," + kv.second; - }))).push_back('\n'); - } } } diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 6f14f46f8..147bbe796 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -277,13 +277,6 @@ namespace vcpkg::Build bpgh.version = *p_ver; } - for (auto& file_hash : pre_build_info.external_files) - { - bpgh.external_files.emplace( - file_hash.first.u8string(), - std::move(file_hash.second)); - } - bcf->core_paragraph = std::move(bpgh); return bcf; } @@ -451,45 +444,6 @@ namespace vcpkg::Build return command; } - static std::vector> get_external_file_hashes( - const VcpkgPaths& paths, - const std::vector& files) - { - static std::map s_hash_cache; - - const auto& fs = paths.get_filesystem(); - - std::vector> hashes; - for (const fs::path& external_file : files) - { - auto it_hash = s_hash_cache.find(external_file); - - if (it_hash != s_hash_cache.end()) - { - hashes.emplace_back(external_file, it_hash->second); - } - else if (Files::get_real_filesystem().is_regular_file(external_file)) - { - auto emp = s_hash_cache.emplace( - external_file.u8string(), - Hash::get_file_hash( - Files::get_real_filesystem(), - external_file, "SHA1")); - - hashes.emplace_back(external_file.u8string(), emp.first->second); - } - else - { - Checks::exit_with_message( - VCPKG_LINE_INFO, - external_file.u8string() + - " was listed as an additional file for calculating the abi, but was not found."); - } - } - - return hashes; - } - static std::string get_triplet_abi(const VcpkgPaths& paths, const PreBuildInfo& pre_build_info, const Triplet& triplet) @@ -645,6 +599,15 @@ namespace vcpkg::Build const PreBuildInfo& pre_build_info, Span dependency_abis) { + if (pre_build_info.public_abi_override) + { + return AbiTagAndFile + { + "override", + pre_build_info.public_abi_override.value_or_exit(VCPKG_LINE_INFO) + }; + } + auto& fs = paths.get_filesystem(); const Triplet& triplet = config.triplet; const std::string& name = config.scf.core_paragraph->name; @@ -694,29 +657,6 @@ namespace vcpkg::Build } } - //Make a copy of the external file names and their hashes, and sort by - //hash. - std::vector> additional_file_hashes - = Util::fmap(pre_build_info.external_files, - [](const std::pair& file_hash) - { - return std::pair{ - file_hash.second, - file_hash.first.filename().u8string() - }; - }); - - std::sort(additional_file_hashes.begin(), additional_file_hashes.end()); - - for (auto& hash_file : additional_file_hashes) - { - abi_tag_entries.emplace_back( - AbiEntry{ - std::move(hash_file.second), - std::move(hash_file.first) - }); - } - abi_tag_entries.emplace_back(AbiEntry{"cmake", paths.get_tool_version(Tools::CMAKE)}); abi_tag_entries.emplace_back(AbiEntry{ @@ -835,11 +775,16 @@ namespace vcpkg::Build if (!required_fspecs.empty()) { - return {BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES, std::move(required_fspecs)}; + return { + BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES, + std::move(required_fspecs) + }; } const PackageSpec spec = - PackageSpec::from_name_and_triplet(config.scf.core_paragraph->name, triplet).value_or_exit(VCPKG_LINE_INFO); + PackageSpec::from_name_and_triplet( + config.scf.core_paragraph->name, + triplet).value_or_exit(VCPKG_LINE_INFO); std::vector dependency_abis; @@ -856,15 +801,27 @@ namespace vcpkg::Build const auto pre_build_info = PreBuildInfo::from_triplet_file(paths, triplet, config.scfl); auto maybe_abi_tag_and_file = compute_abi_tag(paths, config, pre_build_info, dependency_abis); + if (!maybe_abi_tag_and_file) + { + return do_build_package_and_clean_buildtrees( + paths, + pre_build_info, + spec, + AbiTagAndFile{}.tag, + config); + } + std::error_code ec; const auto abi_tag_and_file = maybe_abi_tag_and_file.get(); const fs::path archives_root_dir = paths.root / "archives"; const std::string archive_name = abi_tag_and_file->tag + ".zip"; const fs::path archive_subpath = fs::u8path(abi_tag_and_file->tag.substr(0, 2)) / archive_name; const fs::path archive_path = archives_root_dir / archive_subpath; const fs::path archive_tombstone_path = archives_root_dir / "fail" / archive_subpath; + const fs::path abi_package_dir = paths.package_dir(spec) / "share" / spec.name(); + const fs::path abi_file_in_package = paths.package_dir(spec) / "share" / spec.name() / "vcpkg_abi_info.txt"; - if (config.build_package_options.binary_caching == BinaryCaching::YES && abi_tag_and_file) + if (config.build_package_options.binary_caching == BinaryCaching::YES) { if (fs.exists(archive_path)) { @@ -900,20 +857,19 @@ namespace vcpkg::Build System::printf("Could not locate cached archive: %s\n", archive_path.u8string()); } + fs.create_directories(abi_package_dir, ec); + Checks::check_exit(VCPKG_LINE_INFO, !ec, "Coud not create directory %s", abi_package_dir.u8string()); + fs.copy_file(abi_tag_and_file->tag_file, abi_file_in_package, fs::stdfs::copy_options::none, ec); + Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not copy into file: %s", abi_file_in_package.u8string()); + ExtendedBuildResult result = do_build_package_and_clean_buildtrees( paths, pre_build_info, spec, - maybe_abi_tag_and_file.value_or(AbiTagAndFile{}).tag, + maybe_abi_tag_and_file.value_or_exit(VCPKG_LINE_INFO).tag, config); - std::error_code ec; - fs.create_directories(paths.package_dir(spec) / "share" / spec.name(), ec); - auto abi_file_in_package = paths.package_dir(spec) / "share" / spec.name() / "vcpkg_abi_info.txt"; - fs.copy_file(abi_tag_and_file->tag_file, abi_file_in_package, fs::stdfs::copy_options::none, ec); - Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not copy into file: %s", abi_file_in_package.u8string()); - if (config.build_package_options.binary_caching == BinaryCaching::YES && result.code == BuildResult::SUCCEEDED) { @@ -1098,6 +1054,8 @@ namespace vcpkg::Build PreBuildInfo pre_build_info; + pre_build_info.port = port; + const auto e = lines.cend(); auto cur = std::find(lines.cbegin(), e, FLAG_GUID); if (cur != e) ++cur; @@ -1154,15 +1112,9 @@ namespace vcpkg::Build case VcpkgTripletVar::ENV_PASSTHROUGH : pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";"); break; - case VcpkgTripletVar::EXTERNAL_FILES : - pre_build_info.external_files = - get_external_file_hashes( - paths, - Util::fmap(Strings::split(variable_value, ";"), - [](const std::string& path) - { - return fs::path{path}; - })); + case VcpkgTripletVar::PUBLIC_ABI_OVERRIDE : + pre_build_info.public_abi_override = + variable_value.empty() ? nullopt : Optional{variable_value}; break; } } diff --git a/toolsrc/src/vcpkg/dependencies.cpp b/toolsrc/src/vcpkg/dependencies.cpp index c175cc86f..8c8b2f810 100644 --- a/toolsrc/src/vcpkg/dependencies.cpp +++ b/toolsrc/src/vcpkg/dependencies.cpp @@ -663,16 +663,13 @@ namespace vcpkg::Dependencies if (auto p_installed = cluster.installed.get()) { - if (p_installed->original_features.find(feature) != p_installed->original_features.end() && - p_installed->ipv.core->package.is_consistent()) + if (p_installed->original_features.find(feature) != p_installed->original_features.end()) { return MarkPlusResult::SUCCESS; } } - //The feature was not previously installed or the external files of the - //port are no longer consistent with the last installation of this port - //(they've either been modified or removed). Mark the cluster + //The feature was not previously installed. Mark the cluster //(aka the entire port) to be removed before re-adding it. mark_minus(cluster, graph, graph_plan, prevent_default_features); -- cgit v1.2.3 From ad82c38cc1e8cc87f026cbd179e8bfaa62ce3553 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Fri, 9 Aug 2019 14:40:09 -0700 Subject: Actually only override the PUBLIC ABI, not the private one --- scripts/get_triplet_environment.cmake | 2 +- toolsrc/src/vcpkg/build.cpp | 16 +++------------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake index 8ae365812..a838624ca 100644 --- a/scripts/get_triplet_environment.cmake +++ b/scripts/get_triplet_environment.cmake @@ -13,4 +13,4 @@ message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}") message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}") message("VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH}") -message("VCPKG_EXTERNAL_FILES=${VCPKG_EXTERNAL_FILES}") +message("VCPKG_EXTERNAL_FILES=${VCPKG_PUBLIC_ABI_OVERRIDE}") diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index de8fbc752..7e14a0926 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -611,15 +611,6 @@ namespace vcpkg::Build const PreBuildInfo& pre_build_info, Span dependency_abis) { - if (pre_build_info.public_abi_override) - { - return AbiTagAndFile - { - "override", - pre_build_info.public_abi_override.value_or_exit(VCPKG_LINE_INFO) - }; - } - auto& fs = paths.get_filesystem(); const Triplet& triplet = config.triplet; const std::string& name = config.scf.core_paragraph->name; @@ -823,7 +814,7 @@ namespace vcpkg::Build paths, pre_build_info, spec, - AbiTagAndFile{}.tag, + pre_build_info.public_abi_override.value_or(AbiTagAndFile{}.tag), config); } @@ -883,7 +874,7 @@ namespace vcpkg::Build paths, pre_build_info, spec, - maybe_abi_tag_and_file.value_or_exit(VCPKG_LINE_INFO).tag, + pre_build_info.public_abi_override.value_or(abi_tag_and_file->tag), config); if (config.build_package_options.binary_caching == BinaryCaching::YES && @@ -1129,8 +1120,7 @@ namespace vcpkg::Build pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";"); break; case VcpkgTripletVar::PUBLIC_ABI_OVERRIDE : - pre_build_info.public_abi_override = - variable_value.empty() ? nullopt : Optional{variable_value}; + pre_build_info.public_abi_override = variable_value; break; } } -- cgit v1.2.3 From f9561a08db1add3052d4759adf051fc903e2e3e4 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Fri, 9 Aug 2019 14:47:58 -0700 Subject: remove unnecessary include, fix variable extraction --- scripts/get_triplet_environment.cmake | 2 +- toolsrc/include/vcpkg/binaryparagraph.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake index a838624ca..0457cee9b 100644 --- a/scripts/get_triplet_environment.cmake +++ b/scripts/get_triplet_environment.cmake @@ -13,4 +13,4 @@ message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}") message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}") message("VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH}") -message("VCPKG_EXTERNAL_FILES=${VCPKG_PUBLIC_ABI_OVERRIDE}") +message("VCPKG_PUBLIC_ABI_OVERRIDE=${VCPKG_PUBLIC_ABI_OVERRIDE}") diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index 0fbd382fa..457205384 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -4,8 +4,6 @@ #include #include -#include - namespace vcpkg { /// -- cgit v1.2.3 From f0dd7b62964df89eb3cd50678f9a8ef98392be1d Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Fri, 9 Aug 2019 14:51:16 -0700 Subject: fix missing abi key mistake --- toolsrc/src/vcpkg/build.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 7e14a0926..385013b9b 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -1120,7 +1120,8 @@ namespace vcpkg::Build pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";"); break; case VcpkgTripletVar::PUBLIC_ABI_OVERRIDE : - pre_build_info.public_abi_override = variable_value; + pre_build_info.public_abi_override = + variable_value.empty() ? nullopt : Optional{variable_value}; break; } } -- cgit v1.2.3 From 5bd45366fb0558616a6cb46cdbca6810da5afa4c Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Fri, 9 Aug 2019 15:15:22 -0700 Subject: Add public abi override into the private abi --- toolsrc/src/vcpkg/build.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 385013b9b..1e5394593 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -675,6 +675,15 @@ namespace vcpkg::Build const std::string features = Strings::join(";", config.feature_list); abi_tag_entries.emplace_back(AbiEntry{"features", features}); + if (pre_build_info.public_abi_override) + { + abi_tag_entries.emplace_back( + AbiEntry{ + "public_abi_override", + pre_build_info.public_abi_override.value_or_exit(VCPKG_LINE_INFO) + }); + } + if (config.build_package_options.use_head_version == UseHeadVersion::YES) abi_tag_entries.emplace_back(AbiEntry{"head", ""}); -- cgit v1.2.3 From 4fb51523e91e7a98150e3810241b83757a8d2706 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Mon, 12 Aug 2019 18:22:30 +0200 Subject: [OpenCV] Update to v4.1.1 (#5169) * [OpenCV] update to v4 * [OpenCV] update to v4.1 * [OpenCV] merge #6901 and #6812 * [OpenCV] port patches to v4.1 * [OpenCV] fix naming * [OpenCV] fix regression with static linkage * [OpenCV] fix linking to optional feature dependencies in static mode * fix ffmpeg on some architectures * trigger rebuild of regressions on macOS * [zxing-cpp] fix opencv 4.1 compat * [ogre] improve patching for static builds * [OpenCV] fixes for extra features * [OpenCV] drastically reduce patchset * [OpenCV] fix regression on linux * [OpenCV] fix regression on Windows * [qt5] depends on qt5-activeqt only on windows * update to v4.1.1 * [OpenCV] additional fixes for 4.1.1 * [OpenCV] fix Eigen3 feature integration * [opencv] Fix compilation in UWP * [opencv] Fix merge conflicts * [ffmpeg] fix cmake module for osx * [OpenCV] add pre-caching of optflow cuda package * [gdcm] properly fix #6863 instead of wrong #6901 * [OpenCV] fix OpenMP feature * [opencv] Add missing GetModuleHandle() call guard for UWP * [freeimage] Do not depend on libwebp[all] on UWP * [opencv] Set app container bit for UWP * [zxing-cpp] Fail with explicit message in UWP * [pthreads4w] fix target creation, missing dlls * [pthreads4w] bump CONTROL * [opencv,zxing-cpp] Fix OpenCV Video IO module * [zxing-cpp] Revert unnecessary changes * [opencv] Feature halide * Fix regression in UWP * [ffmpeg] remove unnecessary patch pointing to old OpenCV version * [opencv] remove versioning from windows dll filenames * [opencv] Move port to opencv4 * [opencv,opencv4] Make meta-package install OpenCV 4.1 * [opencv3] Rename old port opencv->opencv3 * Add failure messages when another OpenCV is already installed --- ports/ffmpeg/FindFFMPEG.cmake | 44 ++- ports/ffmpeg/configure_opencv.patch | 11 - ports/ffmpeg/portfile.cmake | 1 - ports/freeimage/CONTROL | 4 +- ports/gdcm/CONTROL | 2 +- ports/gdcm/portfile.cmake | 6 + ports/ogre/CONTROL | 5 +- ports/ogre/portfile.cmake | 15 +- ports/ogre/toolchain_fixes.patch | 200 +++++++--- ports/opencv/0001-winrt-fixes.patch | 46 --- ports/opencv/0002-install-options.patch | 137 ------- ports/opencv/0003-disable-downloading.patch | 11 - ports/opencv/0004-use-find-package-required.patch | 83 ---- .../0005-remove-custom-protobuf-find-package.patch | 25 -- ports/opencv/0006-fix-missing-openjp2.patch | 16 - ports/opencv/CONTROL | 110 +----- ports/opencv/portfile.cmake | 423 +-------------------- ports/opencv/usage | 5 - ports/opencv3/0001-winrt-fixes.patch | 46 +++ ports/opencv3/0002-install-options.patch | 137 +++++++ ports/opencv3/0003-disable-downloading.patch | 11 + ports/opencv3/0004-use-find-package-required.patch | 83 ++++ .../0005-remove-custom-protobuf-find-package.patch | 25 ++ ports/opencv3/0006-fix-missing-openjp2.patch | 16 + ports/opencv3/CONTROL | 93 +++++ ports/opencv3/portfile.cmake | 423 +++++++++++++++++++++ ports/opencv3/usage | 5 + ports/opencv4/0001-disable-downloading.patch | 11 + ports/opencv4/0002-install-options.patch | 69 ++++ .../opencv4/0003-force-package-requirements.patch | 128 +++++++ ports/opencv4/0009-fix-uwp.patch | 57 +++ ports/opencv4/CONTROL | 96 +++++ ports/opencv4/portfile.cmake | 378 ++++++++++++++++++ ports/pthreads/CONTROL | 2 +- ports/pthreads/vcpkg-cmake-wrapper.cmake | 19 +- ports/qt5/CONTROL | 2 +- ports/zxing-cpp/0001-opencv4-compat.patch | 15 +- ports/zxing-cpp/CONTROL | 2 +- 38 files changed, 1844 insertions(+), 918 deletions(-) delete mode 100644 ports/ffmpeg/configure_opencv.patch delete mode 100644 ports/opencv/0001-winrt-fixes.patch delete mode 100644 ports/opencv/0002-install-options.patch delete mode 100644 ports/opencv/0003-disable-downloading.patch delete mode 100644 ports/opencv/0004-use-find-package-required.patch delete mode 100644 ports/opencv/0005-remove-custom-protobuf-find-package.patch delete mode 100644 ports/opencv/0006-fix-missing-openjp2.patch delete mode 100644 ports/opencv/usage create mode 100644 ports/opencv3/0001-winrt-fixes.patch create mode 100644 ports/opencv3/0002-install-options.patch create mode 100644 ports/opencv3/0003-disable-downloading.patch create mode 100644 ports/opencv3/0004-use-find-package-required.patch create mode 100644 ports/opencv3/0005-remove-custom-protobuf-find-package.patch create mode 100644 ports/opencv3/0006-fix-missing-openjp2.patch create mode 100644 ports/opencv3/CONTROL create mode 100644 ports/opencv3/portfile.cmake create mode 100644 ports/opencv3/usage create mode 100644 ports/opencv4/0001-disable-downloading.patch create mode 100644 ports/opencv4/0002-install-options.patch create mode 100644 ports/opencv4/0003-force-package-requirements.patch create mode 100644 ports/opencv4/0009-fix-uwp.patch create mode 100644 ports/opencv4/CONTROL create mode 100644 ports/opencv4/portfile.cmake diff --git a/ports/ffmpeg/FindFFMPEG.cmake b/ports/ffmpeg/FindFFMPEG.cmake index 65ab59e90..b3c187340 100644 --- a/ports/ffmpeg/FindFFMPEG.cmake +++ b/ports/ffmpeg/FindFFMPEG.cmake @@ -35,6 +35,8 @@ include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake) include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake) +set(FFMPEG_VERSION "4.1") + find_dependency(Threads) #list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS Threads::Threads) if(UNIX) @@ -83,7 +85,7 @@ macro(FFMPEG_FIND_GENEX varname shortname headername) set(FFMPEG_${varname}_FOUND 1) list(APPEND FFMPEG_LIBRARY_DIRS ${FFMPEG_${varname}_LIBRARY_RELEASE_DIR} ${FFMPEG_${varname}_LIBRARY_DEBUG_DIR}) endif() -endmacro(FFMPEG_FIND) +endmacro(FFMPEG_FIND_GENEX) if(WIN32) if(NOT FFMPEG_${varname}_INCLUDE_DIRS) @@ -92,8 +94,39 @@ if(WIN32) if (FFMPEG_stdint_INCLUDE_DIRS) set(STDINT_OK TRUE) endif() + FFMPEG_FIND_GENEX(libzlib zlib zlib.h) else() set(STDINT_OK TRUE) + FFMPEG_FIND_GENEX(libzlib z zlib.h) +endif() + +if(APPLE) + find_library(VT_UNIT VideoToolbox) + if (NOT VT_UNIT) + message(FATAL_ERROR "VideoToolbox not found") + endif() + find_library(AT_UNIT AudioToolbox) + if (NOT AT_UNIT) + message(FATAL_ERROR "AudioToolbox not found") + endif() + find_library(SEC_UNIT Security) + if (NOT SEC_UNIT) + message(FATAL_ERROR "Security not found") + endif() + find_library(CF_UNIT CoreFoundation) + if (NOT CF_UNIT) + message(FATAL_ERROR "CoreFoundation not found") + endif() + find_library(CM_UNIT CoreMedia) + if (NOT CM_UNIT) + message(FATAL_ERROR "CoreMedia not found") + endif() + find_library(CV_UNIT CoreVideo) + if (NOT CV_UNIT) + message(FATAL_ERROR "CoreVideo not found") + endif() + find_package(Iconv QUIET) + list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS ${VT_UNIT} ${AT_UNIT} ${SEC_UNIT} ${CF_UNIT} ${CM_UNIT} ${CV_UNIT} ${Iconv_LIBRARIES}) endif() FFMPEG_FIND(libavcodec avcodec avcodec.h) @@ -103,13 +136,20 @@ FFMPEG_FIND(libavformat avformat avformat.h) FFMPEG_FIND(libavutil avutil avutil.h) FFMPEG_FIND(libswresample swresample swresample.h) FFMPEG_FIND(libswscale swscale swscale.h) -FFMPEG_FIND_GENEX(libzlib zlib zlib.h) if (FFMPEG_libavcodec_FOUND AND FFMPEG_libavdevice_FOUND AND FFMPEG_libavfilter_FOUND AND FFMPEG_libavformat_FOUND AND FFMPEG_libavutil_FOUND AND FFMPEG_libswresample_FOUND AND FFMPEG_libswscale_FOUND AND FFMPEG_libzlib_FOUND AND STDINT_OK) list(APPEND FFMPEG_INCLUDE_DIRS ${FFMPEG_libavformat_INCLUDE_DIRS} ${FFMPEG_libavdevice_INCLUDE_DIRS} ${FFMPEG_libavcodec_INCLUDE_DIRS} ${FFMPEG_libavutil_INCLUDE_DIRS} ${FFMPEG_libswscale_INCLUDE_DIRS} ${FFMPEG_stdint_INCLUDE_DIRS}) list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS) list(REMOVE_DUPLICATES FFMPEG_LIBRARY_DIRS) + set(FFMPEG_libavformat_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libavdevice_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libavcodec_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libavutil_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libswscale_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libavfilter_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libswresample_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + list(APPEND FFMPEG_LIBRARIES ${FFMPEG_libavformat_LIBRARY} ${FFMPEG_libavdevice_LIBRARY} diff --git a/ports/ffmpeg/configure_opencv.patch b/ports/ffmpeg/configure_opencv.patch deleted file mode 100644 index ac5c82797..000000000 --- a/ports/ffmpeg/configure_opencv.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/configure -+++ b/configure -@@ -6110,7 +6110,7 @@ enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec - enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb - enabled libopencv && { check_headers opencv2/core/core_c.h && - { check_pkg_config libopencv opencv opencv2/core/core_c.h cvCreateImageHeader || -- require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || -+ require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core341 -lopencv_imgproc341; } || - require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; } - enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion - enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version || diff --git a/ports/ffmpeg/portfile.cmake b/ports/ffmpeg/portfile.cmake index 7309bd544..ea69db42f 100644 --- a/ports/ffmpeg/portfile.cmake +++ b/ports/ffmpeg/portfile.cmake @@ -12,7 +12,6 @@ vcpkg_extract_source_archive_ex( PATCHES create-lib-libraries.patch detect-openssl.patch - configure_opencv.patch fix_windowsinclude-in-ffmpegexe-1.patch fix_windowsinclude-in-ffmpegexe-2.patch fix_libvpx_windows_linking.patch diff --git a/ports/freeimage/CONTROL b/ports/freeimage/CONTROL index 9d9a006c6..c911df6c7 100644 --- a/ports/freeimage/CONTROL +++ b/ports/freeimage/CONTROL @@ -1,5 +1,5 @@ Source: freeimage -Version: 3.18.0-6 -Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp[all], libraw, jxrlib, openexr +Version: 3.18.0-7 +Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp[all] (!uwp), libraw, jxrlib, openexr Homepage: https://sourceforge.net/projects/freeimage/ Description: Support library for graphics image formats diff --git a/ports/gdcm/CONTROL b/ports/gdcm/CONTROL index 32a962eb4..3b49ddec4 100644 --- a/ports/gdcm/CONTROL +++ b/ports/gdcm/CONTROL @@ -1,4 +1,4 @@ Source: gdcm -Version: 3.0.0-3 +Version: 3.0.0-4 Description: Grassroots DICOM library Build-Depends: zlib, expat, openjpeg diff --git a/ports/gdcm/portfile.cmake b/ports/gdcm/portfile.cmake index 36a3e0e1f..b5e825a37 100644 --- a/ports/gdcm/portfile.cmake +++ b/ports/gdcm/portfile.cmake @@ -43,6 +43,12 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share ) +file(READ ${CURRENT_PACKAGES_DIR}/share/gdcm/GDCMTargets.cmake GDCM_TARGETS) +string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" + "set(CMAKE_IMPORT_FILE_VERSION 1) +find_package(OpenJPEG QUIET)" GDCM_TARGETS "${GDCM_TARGETS}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/gdcm/GDCMTargets.cmake "${GDCM_TARGETS}") + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() diff --git a/ports/ogre/CONTROL b/ports/ogre/CONTROL index d7a4dd3f5..2d870641e 100644 --- a/ports/ogre/CONTROL +++ b/ports/ogre/CONTROL @@ -1,5 +1,5 @@ Source: ogre -Version: 1.12.0-1 +Version: 1.12.0-2 Build-Depends: freeimage, freetype, zlib, zziplib Homepage: https://github.com/OGRECave/ogre Description: 3D Object-Oriented Graphics Rendering Engine @@ -7,6 +7,9 @@ Description: 3D Object-Oriented Graphics Rendering Engine Feature: d3d9 Description: Build Direct3D9 RenderSystem +Feature: csharp +Description: Build csharp bindings + Feature: java Description: Build Java (JNI) bindings diff --git a/ports/ogre/portfile.cmake b/ports/ogre/portfile.cmake index 04b4fe608..9f21e1f53 100644 --- a/ports/ogre/portfile.cmake +++ b/ports/ogre/portfile.cmake @@ -1,5 +1,9 @@ include(vcpkg_common_functions) +if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message("${PORT} currently requires the following library from the system package manager:\n Xaw\n\nIt can be installed on Ubuntu systems via apt-get install libxaw7-dev") +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OGRECave/ogre @@ -38,6 +42,12 @@ else() set(WITH_PYTHON OFF) endif() +if("csharp" IN_LIST FEATURES) + set(WITH_CSHARP ON) +else() + set(WITH_CSHARP OFF) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -65,6 +75,7 @@ vcpkg_configure_cmake( # Optional stuff -DOGRE_BUILD_COMPONENT_JAVA=${WITH_JAVA} -DOGRE_BUILD_COMPONENT_PYTHON=${WITH_PYTHON} + -DOGRE_BUILD_COMPONENT_CSHARP=${WITH_CSHARP} -DOGRE_BUILD_RENDERSYSTEM_D3D9=${WITH_D3D9} # vcpkg specific stuff -DOGRE_CMAKE_DIR=share/ogre @@ -92,7 +103,9 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() -if(NOT VCPKG_CMAKE_SYSTEM_NAME) +#Remove OgreMain*.lib from lib/ folder, because autolink would complain, since it defines a main symbol +#manual-link subfolder is here to the rescue! +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "Release") file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") diff --git a/ports/ogre/toolchain_fixes.patch b/ports/ogre/toolchain_fixes.patch index 1af384bdf..22b2e69c7 100644 --- a/ports/ogre/toolchain_fixes.patch +++ b/ports/ogre/toolchain_fixes.patch @@ -1,45 +1,88 @@ diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt -index a7a3796..2e21403 100755 +index a7a3796..7e41f57 100755 --- a/CMake/CMakeLists.txt +++ b/CMake/CMakeLists.txt -@@ -13,10 +13,12 @@ +@@ -13,13 +13,15 @@ # directory, but can also be used for custom projects. ############################################################# --if(WIN32 OR APPLE) -- set(OGRE_CMAKE_DIR "CMake") --else() -- set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") +if(NOT DEFINED OGRE_CMAKE_DIR) -+ if(WIN32 OR APPLE) -+ set(OGRE_CMAKE_DIR "CMake") -+ else() -+ set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") -+ endif() + if(WIN32 OR APPLE) + set(OGRE_CMAKE_DIR "CMake") + else() + set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") endif() ++endif() + +-set(INST_FILES Utils/FindPkgMacros.cmake) ++set(INST_FILES Utils/FindPkgMacros.cmake) - set(INST_FILES Utils/FindPkgMacros.cmake) + if (OGRE_CONFIG_THREAD_PROVIDER STREQUAL "poco") + set(INST_FILES ${INST_FILES} Packages/FindPOCO.cmake) +diff --git a/CMake/ConfigureBuild.cmake b/CMake/ConfigureBuild.cmake +index 26c384f..131e238 100644 +--- a/CMake/ConfigureBuild.cmake ++++ b/CMake/ConfigureBuild.cmake +@@ -68,7 +68,7 @@ if (OGRE_CONFIG_THREADS) + + endif() + +-set(OGRE_ASSERT_MODE 1 CACHE STRING ++set(OGRE_ASSERT_MODE 1 CACHE STRING + "Enable Ogre asserts and exceptions. Possible values: + 0 - Standard asserts in debug builds, nothing in release builds. + 1 - Standard asserts in debug builds, exceptions in release builds. +@@ -197,7 +197,7 @@ if (UNIX) + configure_file(${OGRE_TEMPLATES_DIR}/OGRE-MeshLodGenerator.pc.in ${PROJECT_BINARY_DIR}/pkgconfig/OGRE-MeshLodGenerator.pc @ONLY) + install(FILES ${PROJECT_BINARY_DIR}/pkgconfig/OGRE-MeshLodGenerator.pc DESTINATION ${OGRE_LIB_DIRECTORY}/pkgconfig) + endif () +- ++ + if (OGRE_BUILD_COMPONENT_TERRAIN) + if (OGRE_BUILD_COMPONENT_PAGING) + set(OGRE_PAGING_ADDITIONAL_PACKAGES ", OGRE-Paging = ${OGRE_VERSION}") diff --git a/CMake/InstallResources.cmake b/CMake/InstallResources.cmake -index 783755e..79f7514 100644 +index 783755e..bd7fd3d 100644 --- a/CMake/InstallResources.cmake +++ b/CMake/InstallResources.cmake -@@ -208,10 +208,12 @@ endif () +@@ -131,7 +131,7 @@ configure_file(${OGRE_TEMPLATES_DIR}/tests.cfg.in ${PROJECT_BINARY_DIR}/inst/bin + + + # install resource files +-install(FILES ++install(FILES + ${PROJECT_BINARY_DIR}/inst/bin/resources.cfg + ${PROJECT_BINARY_DIR}/inst/bin/plugins.cfg + ${PROJECT_BINARY_DIR}/inst/bin/samples.cfg +@@ -208,17 +208,19 @@ endif () # Create the CMake package files include(CMakePackageConfigHelpers) --if(WIN32 OR APPLE) -- set(OGRE_CMAKE_DIR "CMake") --else() -- set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") +if(NOT DEFINED OGRE_CMAKE_DIR) -+ if(WIN32 OR APPLE) -+ set(OGRE_CMAKE_DIR "CMake") -+ else() -+ set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") -+ endif() + if(WIN32 OR APPLE) + set(OGRE_CMAKE_DIR "CMake") + else() + set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") endif() ++endif() configure_package_config_file(${OGRE_TEMPLATES_DIR}/OGREConfig.cmake.in ${PROJECT_BINARY_DIR}/cmake/OGREConfig.cmake INSTALL_DESTINATION ${OGRE_CMAKE_DIR} + PATH_VARS CMAKE_INSTALL_PREFIX) + write_basic_package_version_file( +- ${PROJECT_BINARY_DIR}/cmake/OGREConfigVersion.cmake +- VERSION ${OGRE_VERSION} ++ ${PROJECT_BINARY_DIR}/cmake/OGREConfigVersion.cmake ++ VERSION ${OGRE_VERSION} + COMPATIBILITY SameMajorVersion) + install(FILES + ${PROJECT_BINARY_DIR}/cmake/OGREConfig.cmake +@@ -228,4 +230,4 @@ install(FILES + install(EXPORT OgreTargetsRelease CONFIGURATIONS Release None "" DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) + install(EXPORT OgreTargetsRelWithDebInfo CONFIGURATIONS RelWithDebInfo DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) + install(EXPORT OgreTargetsMinSizeRel CONFIGURATIONS MinSizeRel DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) +-install(EXPORT OgreTargetsDebug CONFIGURATIONS Debug DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) +\ No newline at end of file ++install(EXPORT OgreTargetsDebug CONFIGURATIONS Debug DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) diff --git a/CMake/Packages/FindCg.cmake b/CMake/Packages/FindCg.cmake index 4501cf9..e91bfd0 100644 --- a/CMake/Packages/FindCg.cmake @@ -131,29 +174,29 @@ index 7125895..f73c928 100644 add_parent_dir(HLSL2GLSL_INCLUDE_DIRS HLSL2GLSL_INCLUDE_DIR) - diff --git a/CMake/Packages/FindNVAPI.cmake b/CMake/Packages/FindNVAPI.cmake -index 95c70cd..17dabb8 100644 +index 2b9deba..6d8fb37 100644 --- a/CMake/Packages/FindNVAPI.cmake +++ b/CMake/Packages/FindNVAPI.cmake @@ -11,7 +11,7 @@ - # Once done, this will define - # - # NVAPI_FOUND - system has NVAPI --# NVAPI_INCLUDE_DIRS - the NVAPI include directories -+# NVAPI_INCLUDE_DIRS - the NVAPI include directories - # NVAPI_LIBRARIES - link these to use NVAPI - - include(FindPkgMacros) + # Once done, this will define + # + # NVAPI_FOUND - system has NVAPI +-# NVAPI_INCLUDE_DIRS - the NVAPI include directories ++# NVAPI_INCLUDE_DIRS - the NVAPI include directories + # NVAPI_LIBRARIES - link these to use NVAPI + + include(FindPkgMacros) @@ -44,7 +44,7 @@ findpkg_framework(NVAPI) - find_path(NVAPI_INCLUDE_DIR NAMES nvapi.h HINTS ${NVAPI_FRAMEWORK_INCLUDES} ${NVAPI_INC_SEARCH_PATH} ${NVAPI_PKGC_INCLUDE_DIRS} PATH_SUFFIXES NVAPI) - find_library(NVAPI_LIBRARY_REL NAMES ${NVAPI_LIBRARY_NAMES} HINTS ${NVAPI_LIB_SEARCH_PATH} ${NVAPI_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel) - find_library(NVAPI_LIBRARY_DBG NAMES ${NVAPI_LIBRARY_NAMES_DBG} HINTS ${NVAPI_LIB_SEARCH_PATH} ${NVAPI_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug) --make_library_set(NVAPI_LIBRARY) -+make_library_set(NVAPI) - - findpkg_finish(NVAPI) + find_path(NVAPI_INCLUDE_DIR NAMES nvapi.h HINTS ${NVAPI_FRAMEWORK_INCLUDES} ${NVAPI_INC_SEARCH_PATH} ${NVAPI_PKGC_INCLUDE_DIRS} PATH_SUFFIXES NVAPI) + find_library(NVAPI_LIBRARY_REL NAMES ${NVAPI_LIBRARY_NAMES} HINTS ${NVAPI_LIB_SEARCH_PATH} ${NVAPI_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel) + find_library(NVAPI_LIBRARY_DBG NAMES ${NVAPI_LIBRARY_NAMES_DBG} HINTS ${NVAPI_LIB_SEARCH_PATH} ${NVAPI_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug) +-make_library_set(NVAPI_LIBRARY) ++make_library_set(NVAPI) + + findpkg_finish(NVAPI) -add_parent_dir(NVAPI_INCLUDE_DIRS NVAPI_INCLUDE_DIR) \ No newline at end of file -+add_parent_dir(NVAPI_INCLUDE_DIRS NVAPI_INCLUDE_DIR) ++add_parent_dir(NVAPI_INCLUDE_DIRS NVAPI_INCLUDE_DIR) diff --git a/CMake/Packages/FindPOCO.cmake b/CMake/Packages/FindPOCO.cmake index 6b6d7fa..c2cb80e 100644 --- a/CMake/Packages/FindPOCO.cmake @@ -313,6 +356,66 @@ index e97951e..1c7cf00 100644 findpkg_finish(ZZip) - +diff --git a/CMake/Templates/OGREConfig.cmake.in b/CMake/Templates/OGREConfig.cmake.in +index 79c5394..7b22a0d 100644 +--- a/CMake/Templates/OGREConfig.cmake.in ++++ b/CMake/Templates/OGREConfig.cmake.in +@@ -10,12 +10,12 @@ + # Find OGRE includes and library + # + # This module defines +-# OGRE_INCLUDE_DIRS - the OGRE include directories ++# OGRE_INCLUDE_DIRS - the OGRE include directories + # OGRE_LIBRARIES - link these to use the OGRE + # OGRE_LIBRARY_DIRS, the location of the libraries + # OGRE_STATIC - whther ogre was build as static lib + # OGRE_${COMPONENT}_FOUND - ${COMPONENT} is available +-# OGRE_${COMPONENT}_LIBRARIES - link these to only use ${COMPONENT} ++# OGRE_${COMPONENT}_LIBRARIES - link these to only use ${COMPONENT} + # OGRE_PLUGIN_DIR - The directory where the OGRE plugins are located + # OGRE_MEDIA_DIR - The directory where the OGRE sample media is located + # OGRE_CONFIG_DIR - The directory where the OGRE config files are located +@@ -25,7 +25,7 @@ + set(OGRE_STATIC @OGRE_STATIC@) + set(OGRE_MEDIA_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/@OGRE_MEDIA_PATH@") + set(OGRE_PLUGIN_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/lib/OGRE") +-set(OGRE_CONFIG_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/@OGRE_CFG_INSTALL_PATH@") ++set(OGRE_CONFIG_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/@OGRE_CFG_INSTALL_PATH@") + + set(OGRE_PREFIX_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@") + get_filename_component(OGRE_LIBRARY_DIRS "${OGRE_PREFIX_DIR}/lib" ABSOLUTE) +@@ -47,7 +47,7 @@ set(OGRE_PLUGINS) + macro(ogre_declare_component COMPONENT) + set(OGRE_${COMPONENT}_FOUND TRUE) + set(OGRE_${COMPONENT}_LIBRARIES Ogre${COMPONENT}) # backwards compatibility +- ++ + list(APPEND OGRE_COMPONENTS ${COMPONENT}) + list(APPEND OGRE_LIBRARIES Ogre${COMPONENT}) + endmacro() +@@ -55,11 +55,11 @@ endmacro() + macro(ogre_declare_plugin TYPE COMPONENT) + set(OGRE_${TYPE}_${COMPONENT}_FOUND TRUE) + set(OGRE_${TYPE}_${COMPONENT}_LIBRARIES ${TYPE}_${COMPONENT}) +- ++ + if(@OGRE_STATIC@) + list(APPEND OGRE_LIBRARIES ${TYPE}_${COMPONENT}) + endif() +- ++ + list(APPEND OGRE_PLUGINS ${TYPE}_${COMPONENT}) + endmacro() + +@@ -149,7 +149,7 @@ endif() + cmake_policy(POP) + + if(@OGRE_STATIC@) +- list(APPEND OGRE_LIBRARIES OgreGLSupport@OGRE_LIB_SUFFIX@ @CMAKE_DL_LIBS@) # glXXw uses dlopen ++ list(APPEND OGRE_LIBRARIES OgreGLSupport @CMAKE_DL_LIBS@) # glXXw uses dlopen + list(APPEND OGRE_LIBRARY_DIRS "${OGRE_LIBRARY_DIRS}/OGRE") # plugins folder + endif() + diff --git a/CMake/Utils/FindPkgMacros.cmake b/CMake/Utils/FindPkgMacros.cmake index 374f84b..dc7066d 100644 --- a/CMake/Utils/FindPkgMacros.cmake @@ -349,7 +452,7 @@ index 374f84b..dc7066d 100644 # Generate debug names from given release names diff --git a/CMakeLists.txt b/CMakeLists.txt -index d2819f0..8b54b38 100644 +index d2819f0..f40239f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -142,7 +142,7 @@ if (MSVC) @@ -361,7 +464,7 @@ index d2819f0..8b54b38 100644 # Turn on the ability to create folders to organize projects (.vcproj) # It creates "CMakePredefinedTargets" folder by default and adds CMake # defined projects like INSTALL.vcproj and ZERO_CHECK.vcproj -@@ -274,14 +274,9 @@ elseif(EMSCRIPTEN) +@@ -274,12 +274,8 @@ elseif(EMSCRIPTEN) elseif (APPLE AND NOT APPLE_IOS) set(XCODE_ATTRIBUTE_SDKROOT macosx) @@ -372,11 +475,9 @@ index d2819f0..8b54b38 100644 - set(CMAKE_OSX_SYSROOT macosx) - endif() -- # Make sure that the OpenGL render system is selected for non-iOS Apple builds + # Make sure that the OpenGL render system is selected for non-iOS Apple builds set(OGRE_BUILD_RENDERSYSTEM_GLES2 FALSE) - endif () - -@@ -310,7 +305,7 @@ include(Dependencies) +@@ -310,7 +306,7 @@ include(Dependencies) # Customise what to build option(OGRE_STATIC "Static build" FALSE) option(OGRE_ENABLE_PRECOMPILED_HEADERS "Use precompiled headers to speed up build" TRUE) @@ -385,7 +486,7 @@ index d2819f0..8b54b38 100644 "Make ResourceManager strict for faster operation. Possible values: 0 - OFF search in all groups twice - for case sensitive and insensitive lookup [DEPRECATED] 1 - PEDANTIC require an explicit resource group. Case sensitive lookup. -@@ -352,7 +347,7 @@ cmake_dependent_option(OGRE_BUILD_LIBS_AS_FRAMEWORKS "Build frameworks for libra +@@ -352,7 +348,7 @@ cmake_dependent_option(OGRE_BUILD_LIBS_AS_FRAMEWORKS "Build frameworks for libra option(OGRE_BUILD_TESTS "Build the unit tests & PlayPen" FALSE) option(OGRE_CONFIG_DOUBLE "Use doubles instead of floats in Ogre" FALSE) option(OGRE_CONFIG_NODE_INHERIT_TRANSFORM "Tells the node whether it should inherit full transform from it's parent node or derived position, orientation and scale" FALSE) @@ -437,7 +538,7 @@ index bdb303d..e8031d1 100644 \ No newline at end of file +) diff --git a/OgreMain/CMakeLists.txt b/OgreMain/CMakeLists.txt -index 6ec4e34..666a736 100644 +index 6ec4e34..2803a8a 100644 --- a/OgreMain/CMakeLists.txt +++ b/OgreMain/CMakeLists.txt @@ -188,21 +188,21 @@ if (WINDOWS_STORE OR WINDOWS_PHONE) @@ -475,12 +576,13 @@ index 6ec4e34..666a736 100644 list(APPEND LIBRARIES "atomic") else() list(APPEND LIBRARIES "-latomic") -@@ -226,8 +226,6 @@ if (APPLE) +@@ -226,8 +226,7 @@ if (APPLE) LINK_FLAGS "-framework IOKit -framework Cocoa -framework Carbon -framework OpenGL -framework CoreVideo" ) - set(OGRE_OSX_BUILD_CONFIGURATION "$(PLATFORM_NAME)/$(CONFIGURATION)") - ++ if(OGRE_BUILD_LIBS_AS_FRAMEWORKS) add_custom_command(TARGET OgreMain POST_BUILD COMMAND mkdir ARGS -p ${PROJECT_BINARY_DIR}/lib/${OGRE_OSX_BUILD_CONFIGURATION}/Ogre.framework/Headers/Threading diff --git a/ports/opencv/0001-winrt-fixes.patch b/ports/opencv/0001-winrt-fixes.patch deleted file mode 100644 index b2fe1a021..000000000 --- a/ports/opencv/0001-winrt-fixes.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/cmake/OpenCVModule.cmake -+++ b/cmake/OpenCVModule.cmake -@@ -848,7 +848,7 @@ macro(ocv_create_module) - set(the_module_target ${the_module}) - endif() - -- if(WINRT) -+ if(WINRT AND BUILD_TESTS) - # removing APPCONTAINER from modules to run from console - # in case of usual starting of WinRT test apps output is missing - # so starting of console version w/o APPCONTAINER is required to get test results ---- a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp -+++ b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp -@@ -24,6 +24,7 @@ - // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - // POSSIBILITY OF SUCH DAMAGE. - -+#include "opencv2/core/cvdef.h" - using namespace Windows::UI::Xaml::Controls; - - namespace cv ---- a/modules/highgui/src/window_winrt_bridge.hpp -+++ b/modules/highgui/src/window_winrt_bridge.hpp -@@ -28,6 +28,7 @@ - - #include - #include -+#include "opencv2/highgui/highgui_c.h" - - using namespace Windows::UI::Xaml::Controls; - ---- a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp -+++ b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp -@@ -94,10 +94,10 @@ Media::CaptureFrameGrabber::~CaptureFrameGrabber() - - void Media::CaptureFrameGrabber::ShowCameraSettings() - { --#if WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP -+#if (WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP) && (WINAPI_FAMILY!=WINAPI_FAMILY_APP) - if (_state == State::Started) - { -- CameraOptionsUI::Show(_capture.Get()); -+ CameraOptionsUI::Show(_capture.Get()); // TODO: Turn it on again in UWP mode by adding reference to UWP Desktop Extensions - } - #endif - } diff --git a/ports/opencv/0002-install-options.patch b/ports/opencv/0002-install-options.patch deleted file mode 100644 index 0719a7cb9..000000000 --- a/ports/opencv/0002-install-options.patch +++ /dev/null @@ -1,137 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -312,6 +312,10 @@ OCV_OPTION(INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF ) - OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID ) - OCV_OPTION(INSTALL_TO_MANGLED_PATHS "Enables mangled install paths, that help with side by side installs." OFF IF (UNIX AND NOT ANDROID AND NOT APPLE_FRAMEWORK AND BUILD_SHARED_LIBS) ) - OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binaries and test data" OFF) -+OCV_OPTION(INSTALL_HEADERS "Install header files" ON) -+OCV_OPTION(INSTALL_LICENSE "Install license file" ON) -+OCV_OPTION(INSTALL_OTHER "Install other files" ON) -+OCV_OPTION(INSTALL_FORCE_UNIX_PATHS "Force unix-style installation" OFF) - - # OpenCV build options - # =================================================== -@@ -378,7 +382,9 @@ else() - endif() - - if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows) -- if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH) -+ if(DEFINED OpenCV_DISABLE_ARCH_PATH) -+ ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "") -+ elseif(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH) - ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/") - else() - message(STATUS "Can't detect runtime and/or arch") -@@ -433,12 +439,8 @@ else() - ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}") - - if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows) -- if(OpenCV_STATIC) -- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") -- else() -- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}") -- endif() -- ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") -+ ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}") -+ ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}") - ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples) - ocv_update(OPENCV_JAR_INSTALL_PATH java) - ocv_update(OPENCV_OTHER_INSTALL_PATH etc) -@@ -901,7 +903,7 @@ if(NOT OPENCV_LICENSE_FILE) - endif() - - # for UNIX it does not make sense as LICENSE and readme will be part of the package automatically --if(ANDROID OR NOT UNIX) -+if(ANDROID OR NOT UNIX AND INSTALL_LICENSE) - install(FILES ${OPENCV_LICENSE_FILE} - PERMISSIONS OWNER_READ GROUP_READ WORLD_READ - DESTINATION ./ COMPONENT libs) ---- a/cmake/OpenCVGenConfig.cmake -+++ b/cmake/OpenCVGenConfig.cmake -@@ -105,7 +105,7 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME) - endif() - endfunction() - --if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) -+if(((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) OR INSTALL_FORCE_UNIX_PATHS) - ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "") - endif() - -@@ -117,7 +117,7 @@ endif() - # -------------------------------------------------------------------------------------------- - # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages - # -------------------------------------------------------------------------------------------- --if(WIN32) -+if(WIN32 AND NOT INSTALL_FORCE_UNIX_PATHS) - if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows) - if(BUILD_SHARED_LIBS) - set(_lib_suffix "lib") ---- a/cmake/OpenCVGenHeaders.cmake -+++ b/cmake/OpenCVGenHeaders.cmake -@@ -1,7 +1,9 @@ - # platform-specific config file - configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/cvconfig.h.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h") - configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/cvconfig.h.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/cvconfig.h") --install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev) -+if(INSTALL_HEADERS) -+ install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev) -+endif() - - # platform-specific config file - ocv_compiler_optimization_fill_cpu_config() -@@ -29,4 +31,6 @@ set(OPENCV_MODULE_DEFINITIONS_CONFIGMAKE "${OPENCV_MODULE_DEFINITIONS_CONFIGMAKE - #endforeach() - - configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/opencv_modules.hpp.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp") --install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev) -+if(INSTALL_HEADERS) -+ install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev) -+endif() -\ No newline at end of file ---- a/cmake/OpenCVModule.cmake -+++ b/cmake/OpenCVModule.cmake -@@ -1000,7 +1000,9 @@ macro(_ocv_create_module) - foreach(hdr ${OPENCV_MODULE_${the_module}_HEADERS}) - string(REGEX REPLACE "^.*opencv2/" "opencv2/" hdr2 "${hdr}") - if(NOT hdr2 MATCHES "private" AND hdr2 MATCHES "^(opencv2/?.*)/[^/]+.h(..)?$" ) -- install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev) -+ if(INSTALL_HEADERS) -+ install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev) -+ endif() - endif() - endforeach() - endif() ---- a/data/CMakeLists.txt -+++ b/data/CMakeLists.txt -@@ -1,8 +1,10 @@ - file(GLOB HAAR_CASCADES haarcascades/*.xml) - file(GLOB LBP_CASCADES lbpcascades/*.xml) - --install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs) --install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs) -+if(INSTALL_OTHER) -+ install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs) -+ install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs) -+endif() - - if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH) - install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests") ---- a/include/CMakeLists.txt -+++ b/include/CMakeLists.txt -@@ -1,7 +1,9 @@ --file(GLOB old_hdrs "opencv/*.h*") --install(FILES ${old_hdrs} -- DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv -- COMPONENT dev) --install(FILES "opencv2/opencv.hpp" -- DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 -- COMPONENT dev) -+if(INSTALL_HEADERS) -+ file(GLOB old_hdrs "opencv/*.h*") -+ install(FILES ${old_hdrs} -+ DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv -+ COMPONENT dev) -+ install(FILES "opencv2/opencv.hpp" -+ DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 -+ COMPONENT dev) -+endif() diff --git a/ports/opencv/0003-disable-downloading.patch b/ports/opencv/0003-disable-downloading.patch deleted file mode 100644 index 28b00251f..000000000 --- a/ports/opencv/0003-disable-downloading.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/cmake/OpenCVDownload.cmake -+++ b/cmake/OpenCVDownload.cmake -@@ -151,6 +151,8 @@ function(ocv_download) - # Download - if(NOT EXISTS "${CACHE_CANDIDATE}") - ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"") -+ string(REPLACE "${OPENCV_DOWNLOAD_PATH}/" "opencv-cache/" CACHE_SUBPATH "${CACHE_CANDIDATE}") -+ message(FATAL_ERROR " Downloads are not permitted during configure. Please pre-download the file \"${CACHE_CANDIDATE}\":\n \n vcpkg_download_distfile(OCV_DOWNLOAD\n URLS \"${DL_URL}\"\n FILENAME \"${CACHE_SUBPATH}\"\n SHA512 0\n )") - file(DOWNLOAD "${DL_URL}" "${CACHE_CANDIDATE}" - INACTIVITY_TIMEOUT 60 - TIMEOUT 600 diff --git a/ports/opencv/0004-use-find-package-required.patch b/ports/opencv/0004-use-find-package-required.patch deleted file mode 100644 index 4e1daf659..000000000 --- a/ports/opencv/0004-use-find-package-required.patch +++ /dev/null @@ -1,83 +0,0 @@ ---- a/cmake/OpenCVFindLibsGrfmt.cmake -+++ b/cmake/OpenCVFindLibsGrfmt.cmake -@@ -6,7 +6,7 @@ - if(BUILD_ZLIB) - ocv_clear_vars(ZLIB_FOUND) - else() -- find_package(ZLIB "${MIN_VER_ZLIB}") -+ find_package(ZLIB "${MIN_VER_ZLIB}" REQUIRED) - if(ZLIB_FOUND AND ANDROID) - if(ZLIB_LIBRARIES MATCHES "/usr/(lib|lib32|lib64)/libz.so$") - set(ZLIB_LIBRARIES z) -@@ -30,7 +30,7 @@ if(WITH_JPEG) - if(BUILD_JPEG) - ocv_clear_vars(JPEG_FOUND) - else() -- include(FindJPEG) -+ find_package(JPEG REQUIRED) - endif() - - if(NOT JPEG_FOUND) -@@ -51,7 +51,7 @@ if(WITH_TIFF) - if(BUILD_TIFF) - ocv_clear_vars(TIFF_FOUND) - else() -- include(FindTIFF) -+ find_package(TIFF REQUIRED) - if(TIFF_FOUND) - ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION) - endif() -@@ -94,7 +94,7 @@ if(WITH_WEBP) - if(BUILD_WEBP) - ocv_clear_vars(WEBP_FOUND WEBP_LIBRARY WEBP_LIBRARIES WEBP_INCLUDE_DIR) - else() -- include(cmake/OpenCVFindWebP.cmake) -+ find_package(WebP REQUIRED) - if(WEBP_FOUND) - set(HAVE_WEBP 1) - endif() -@@ -135,7 +135,7 @@ if(WITH_JASPER) - if(BUILD_JASPER) - ocv_clear_vars(JASPER_FOUND) - else() -- include(FindJasper) -+ find_package(Jasper REQUIRED) - endif() - - if(NOT JASPER_FOUND) -@@ -159,7 +159,7 @@ if(WITH_PNG) - if(BUILD_PNG) - ocv_clear_vars(PNG_FOUND) - else() -- include(FindPNG) -+ find_package(PNG REQUIRED) - if(PNG_FOUND) - include(CheckIncludeFile) - check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H) -@@ -191,7 +191,7 @@ if(WITH_OPENEXR) - if(BUILD_OPENEXR) - ocv_clear_vars(OPENEXR_FOUND) - else() -- include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake") -+ find_package(OpenEXR REQUIRED) - endif() - - if(NOT OPENEXR_FOUND) -@@ -207,7 +207,7 @@ endif() - - # --- GDAL (optional) --- - if(WITH_GDAL) -- find_package(GDAL QUIET) -+ find_package(GDAL REQUIRED) - - if(NOT GDAL_FOUND) - set(HAVE_GDAL NO) -@@ -219,7 +219,7 @@ if(WITH_GDAL) - endif() - - if (WITH_GDCM) -- find_package(GDCM QUIET) -+ find_package(GDCM REQUIRED) - if(NOT GDCM_FOUND) - set(HAVE_GDCM NO) - ocv_clear_vars(GDCM_VERSION GDCM_LIBRARIES) diff --git a/ports/opencv/0005-remove-custom-protobuf-find-package.patch b/ports/opencv/0005-remove-custom-protobuf-find-package.patch deleted file mode 100644 index 91ac137f9..000000000 --- a/ports/opencv/0005-remove-custom-protobuf-find-package.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -633,7 +633,10 @@ include(cmake/OpenCVFindLibsGUI.cmake) - include(cmake/OpenCVFindLibsVideo.cmake) - include(cmake/OpenCVFindLibsPerf.cmake) - include(cmake/OpenCVFindLAPACK.cmake) --include(cmake/OpenCVFindProtobuf.cmake) -+find_package(protobuf) -+if(Protobuf_LIBRARIES) -+ set(HAVE_PROTOBUF TRUE) -+endif() - - # ---------------------------------------------------------------------------- - # Detect other 3rd-party libraries/tools ---- a/modules/dnn/CMakeLists.txt -+++ b/modules/dnn/CMakeLists.txt -@@ -78,7 +78,7 @@ endif() - - set(include_dirs ${fw_inc}) - set(sources_options "") --set(libs libprotobuf ${LAPACK_LIBRARIES}) -+set(libs protobuf::libprotobuf ${LAPACK_LIBRARIES}) - if(OPENCV_DNN_OPENCL AND HAVE_OPENCL) - list(APPEND include_dirs ${OPENCL_INCLUDE_DIRS}) - else() diff --git a/ports/opencv/0006-fix-missing-openjp2.patch b/ports/opencv/0006-fix-missing-openjp2.patch deleted file mode 100644 index c0afb9952..000000000 --- a/ports/opencv/0006-fix-missing-openjp2.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/modules/imgcodecs/CMakeLists.txt b/modules/imgcodecs/CMakeLists.txt -index 434278c..0d8f4d8 100644 ---- a/modules/imgcodecs/CMakeLists.txt -+++ b/modules/imgcodecs/CMakeLists.txt -@@ -36,6 +36,11 @@ if(HAVE_PNG) - endif() - - if(HAVE_GDCM) -+ if (CMAKE_BUILD_TYPE STREQUAL "Release") -+ link_directories("${CURRENT_INSTALLED_DIR}/lib") -+ else() -+ link_directories("${CURRENT_INSTALLED_DIR}/debug/lib") -+ endif() - ocv_include_directories(${GDCM_INCLUDE_DIRS}) - list(APPEND GRFMT_LIBS ${GDCM_LIBRARIES}) - endif() diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL index 30e04b54c..bfc7d7f81 100644 --- a/ports/opencv/CONTROL +++ b/ports/opencv/CONTROL @@ -1,93 +1,17 @@ -Source: opencv -Version: 3.4.3-9 -Build-Depends: zlib -Homepage: https://github.com/opencv/opencv -Description: computer vision library -Default-Features: opengl, jpeg, png, tiff, eigen, flann - -Feature: opengl -Build-Depends: opengl -Description: opengl support for opencv - -Feature: dnn -Build-Depends: protobuf -Description: opencv_dnn module - -Feature: ovis -Build-Depends: ogre -Description: opencv_ovis module - -Feature: flann -Description: opencv_flann module - -Feature: sfm -Build-Depends: eigen3, glog, gflags, ceres -Description: opencv_sfm module - -Feature: contrib -Build-Depends: opencv[flann] -Description: opencv_contrib module - -Feature: cuda -Build-Depends: cuda -Description: CUDA support for opencv - -Feature: ffmpeg -Description: prebuilt ffmpeg support for opencv - -Feature: ipp -Description: Enable Intel Integrated Performance Primitives - -Feature: tbb -Build-Depends: tbb -Description: Enable Intel Threading Building Blocks - -Feature: qt -Build-Depends: qt5 -Description: Qt GUI support for opencv - -Feature: vtk -Build-Depends: vtk -Description: vtk support for opencv - -Feature: gdcm -Build-Depends: gdcm -Description: GDCM support for opencv - -Feature: webp -Build-Depends: libwebp -Description: WebP support for opencv - -Feature: openexr -Build-Depends: openexr -Description: OpenEXR support for opencv - -Feature: tiff -Build-Depends: tiff -Description: TIFF support for opencv - -Feature: png -Build-Depends: libpng -Description: PNG support for opencv - -Feature: jpeg -Build-Depends: libjpeg-turbo -Description: JPEG support for opencv - -Feature: jasper -Build-Depends: jasper -Description: JPEG 2000 support for opencv - -Feature: eigen -Build-Depends: eigen3 -Description: Eigen support for opencv - -Feature: halide -Build-Depends: halide, opencv[dnn] -Description: Halide support for opencv - -Feature: world -Description: Compile to a single package support for opencv - -Feature: nonfree -Description: allow nonfree and unredistributable libraries +Source: opencv +Version: 1 +Homepage: https://github.com/opencv/opencv +Description: Computer vision library +Build-Depends: opencv4[core] + +Feature: contrib +Description: opencv_contrib module +Build-Depends: opencv4[contrib] + +Feature: cuda +Description: Enable CUDA support in OpenCV +Build-Depends: opencv4[cuda] + +Feature: ffmpeg +Description: Enable ffmpeg support in OpenCV +Build-Depends: opencv4[ffmpeg] diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake index be86319c7..cc6e26fcb 100644 --- a/ports/opencv/portfile.cmake +++ b/ports/opencv/portfile.cmake @@ -1,422 +1 @@ -include(vcpkg_common_functions) - -set(OPENCV_PORT_VERSION "3.4.3") - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO opencv/opencv - REF ${OPENCV_PORT_VERSION} - SHA512 d653a58eb5e3939b9fdb7438ac35f77cf4385cf72d5d22bfd21722a109e1b3283dbb9407985061b7548114f0d05c9395aac9bb62b4d2bc1f68da770a49987fef - HEAD_REF master - PATCHES - 0001-winrt-fixes.patch - 0002-install-options.patch - 0003-disable-downloading.patch - 0004-use-find-package-required.patch - 0005-remove-custom-protobuf-find-package.patch - 0006-fix-missing-openjp2.patch -) - -string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) - -set(CMAKE_MODULE_PATH) - -set(BUILD_opencv_world OFF) -if("world" IN_LIST FEATURES) - set(BUILD_opencv_world ON) -endif() - -set(BUILD_opencv_dnn OFF) -set(WITH_PROTOBUF OFF) -if("dnn" IN_LIST FEATURES) - set(BUILD_opencv_dnn ON) - set(WITH_PROTOBUF ON) - set(PROTOBUF_UPDATE_FILES ON) - set(UPDATE_PROTO_FILES ON) - vcpkg_download_distfile(TINYDNN_ARCHIVE - URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz" - FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz" - SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b - ) -endif() - -set(BUILD_opencv_flann OFF) -if("flann" IN_LIST FEATURES) - set(BUILD_opencv_flann ON) -endif() - -set(BUILD_opencv_ovis OFF) -if("ovis" IN_LIST FEATURES) - set(BUILD_opencv_ovis ON) -endif() - -set(BUILD_opencv_sfm OFF) -if("sfm" IN_LIST FEATURES) - set(BUILD_opencv_sfm ON) -endif() - -set(BUILD_opencv_contrib OFF) -if("contrib" IN_LIST FEATURES) - set(BUILD_opencv_contrib ON) - - # Used for opencv's face module - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat" - FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat" - SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93 - ) - - vcpkg_download_distfile(TINYDNN_ARCHIVE - URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz" - FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz" - SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b - ) - - function(download_opencv_3rdparty ID COMMIT HASH) - if(NOT EXISTS "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp") - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://github.com/opencv/opencv_3rdparty/archive/${COMMIT}.zip" - FILENAME "opencv_3rdparty-${COMMIT}.zip" - SHA512 ${HASH} - ) - vcpkg_extract_source_archive(${OCV_DOWNLOAD}) - file(MAKE_DIRECTORY "${DOWNLOADS}/opencv-cache/${ID}") - file(GLOB XFEATURES2D_I ${CURRENT_BUILDTREES_DIR}/src/opencv_3rdparty-${COMMIT}/*) - foreach(FILE ${XFEATURES2D_I}) - file(COPY ${FILE} DESTINATION "${DOWNLOADS}/opencv-cache/${ID}") - get_filename_component(XFEATURES2D_I_NAME "${FILE}" NAME) - file(MD5 "${FILE}" FILE_HASH) - file(RENAME "${DOWNLOADS}/opencv-cache/${ID}/${XFEATURES2D_I_NAME}" "${DOWNLOADS}/opencv-cache/${ID}/${FILE_HASH}-${XFEATURES2D_I_NAME}") - endforeach() - file(WRITE "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp") - endif() - endfunction() - - # Used for opencv's xfeature2d module - download_opencv_3rdparty( - xfeatures2d/boostdesc - 34e4206aef44d50e6bbcd0ab06354b52e7466d26 - 2ccdc8fb59da55eabc73309a80a4d3b1e73e2341027cdcdd2d714e0f519e60f243f38f79b13ed3de32f595aa23e4f86418eed42e741f32a81b1e6e0879190601 - ) - - # Used for opencv's xfeature2d module - download_opencv_3rdparty( - xfeatures2d/vgg - fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d - 7051f5d6ccb938d296b919dd6d5dcddc5afb527aed456639c9984276a8f64565c084d96a72499a7756f127f8d2b1ce9ab70e4cbb3f89c4e16f82296c2a15daed - ) -endif() - -set(WITH_CUDA OFF) -if("cuda" IN_LIST FEATURES) - set(WITH_CUDA ON) -endif() - -set(WITH_FFMPEG OFF) -if("ffmpeg" IN_LIST FEATURES) - set(WITH_FFMPEG ON) - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg.dll" - FILENAME "opencv-cache/ffmpeg/fa5a2a4e2f37defcb95bde8ed145c2b3-opencv_ffmpeg.dll" - SHA512 875f922e1d9fc2fe7c8e879ede35b1001b6ad8b3c4d71feb3823421ce861f580df3418c791315b23870fcb0378d297b01e0761d3f65277ff11ec2fef8c0b08b7 - ) - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg_64.dll" - FILENAME "opencv-cache/ffmpeg/2cc08fc4fef8199fe80e0f126684834f-opencv_ffmpeg_64.dll" - SHA512 4e74aa4cb115f103b929f93bbc8dcf675de7d0c7916f8f0a80ac46761134b088634be95f959ce5827753ae9ecb2365ca40440dfbb9a9bf89f22ee11b6c8342b3 - ) - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/ffmpeg_version.cmake" - FILENAME "opencv-cache/ffmpeg/3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake" - SHA512 7d0142c30ac6f6260c1bcabc22753030fd25a708477fa28053e8df847c366967d3b93a8ac14af19a2b7b73d9f8241749a431458faf21a0c8efc7d6d99eecfdcf - ) -endif() - -set(WITH_IPP OFF) -if("ipp" IN_LIST FEATURES) - set(WITH_IPP ON) - - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_intel64_general_20180518.zip" - FILENAME "opencv-cache/ippicv/915ff92958089ede8ea532d3c4fe7187-ippicv_2017u3_win_intel64_general_20180518.zip" - SHA512 8aa08292d542d521c042864446e47a7a6bdbf3896d86fc7b43255459c24a2e9f34a4e9b177023d178fed7a2e82a9db410f89d81375a542d049785d263f46c64d - ) - else() - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_ia32_general_20180518.zip" - FILENAME "opencv-cache/ippicv/928168c2d99ab284047dfcfb7a821d91-ippicv_2017u3_win_ia32_general_20180518.zip" - SHA512 b89b0fb739152303cafc9fb064fa8b24fd94850697137ccbb5c1e344e0f5094115603a5e3be3a25f85d0faefc5c53429a7d65da0142d012ada41e8db2bcdd6b7 - ) - endif() -endif() - -set(WITH_TBB OFF) -if("tbb" IN_LIST FEATURES) - set(WITH_TBB ON) -endif() - -set(WITH_QT OFF) -if("qt" IN_LIST FEATURES) - set(WITH_QT ON) -endif() - -set(WITH_VTK OFF) -if("vtk" IN_LIST FEATURES) - set(WITH_VTK ON) -endif() - -set(WITH_WEBP OFF) -if("webp" IN_LIST FEATURES) - set(WITH_WEBP ON) - list(APPEND CMAKE_MODULE_PATH ${CURRENT_INSTALLED_DIR}/share/libwebp) -endif() - -set(WITH_GDCM OFF) -if("gdcm" IN_LIST FEATURES) - set(WITH_GDCM ON) -endif() - -set(WITH_OPENGL OFF) -if("opengl" IN_LIST FEATURES) - set(WITH_OPENGL ON) -endif() - -set(WITH_OPENEXR OFF) -if("openexr" IN_LIST FEATURES) - set(WITH_OPENEXR ON) - list(APPEND CMAKE_MODULE_PATH ${CURRENT_INSTALLED_DIR}/share/openexr) -endif() - -set(WITH_MSMF ON) -if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - set(WITH_MSMF OFF) -endif() - -set(WITH_TIFF OFF) -if("tiff" IN_LIST FEATURES) - set(WITH_TIFF ON) -endif() - -set(WITH_JPEG OFF) -if("jpeg" IN_LIST FEATURES) - set(WITH_JPEG ON) -endif() - -set(WITH_JASPER OFF) -if("jasper" IN_LIST FEATURES) - set(WITH_JASPER ON) -endif() - -set(WITH_PNG OFF) -if("png" IN_LIST FEATURES) - set(WITH_PNG ON) -endif() - -set(WITH_EIGEN OFF) -if("eigen" IN_LIST FEATURES) - set(WITH_EIGEN ON) -endif() - -set(WITH_HALIDE OFF) -if("halide" IN_LIST FEATURES) - set(WITH_HALIDE ON) -endif() - -set(OPENCV_ENABLE_NONFREE OFF) -if("nonfree" IN_LIST FEATURES) - set(OPENCV_ENABLE_NONFREE ON) -endif() - -if(BUILD_opencv_contrib) - vcpkg_from_github( - OUT_SOURCE_PATH CONTRIB_SOURCE_PATH - REPO opencv/opencv_contrib - REF ${OPENCV_PORT_VERSION} - SHA512 456c6f878fb3bd5459f6430405cf05c609431f8d7db743aa699fc75c305d019682ee3a804bf0cf5107597dd1dbbb69b08be3535a0e6c717e4773ed7c05d08e59 - HEAD_REF master - ) - set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") -endif() - -set(WITH_ZLIB ON) -set(BUILD_opencv_line_descriptor ON) -set(BUILD_opencv_saliency ON) -set(BUILD_opencv_bgsegm ON) -if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm") - set(BUILD_opencv_line_descriptor OFF) - set(BUILD_opencv_saliency OFF) - set(BUILD_opencv_bgsegm OFF) -endif() - -string(REPLACE ";" "\\\\\;" CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}") - -vcpkg_configure_cmake( - PREFER_NINJA - SOURCE_PATH ${SOURCE_PATH} - OPTIONS - # Ungrouped Entries - -DOpenCV_DISABLE_ARCH_PATH=ON - # Do not build docs/examples - -DBUILD_DOCS=OFF - -DBUILD_EXAMPLES=OFF - # Do not build integrated libraries, use external ones whenever possible - -DBUILD_JASPER=OFF - -DBUILD_JPEG=OFF - -DBUILD_OPENEXR=OFF - -DBUILD_PACKAGE=OFF - -DBUILD_PERF_TESTS=OFF - -DBUILD_PNG=OFF - -DBUILD_PROTOBUF=OFF - -DBUILD_TESTS=OFF - -DBUILD_TIFF=OFF - -DBUILD_WEBP=OFF - -DBUILD_WITH_DEBUG_INFO=ON - -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} - -DBUILD_ZLIB=OFF - # Select which OpenCV modules should be built - -DBUILD_opencv_apps=OFF - -DBUILD_opencv_bgsegm=${BUILD_opencv_bgsegm} - -DBUILD_opencv_dnn=${BUILD_opencv_dnn} - -DBUILD_opencv_flann=${BUILD_opencv_flann} - -DBUILD_opencv_line_descriptor=${BUILD_opencv_line_descriptor} - -DBUILD_opencv_ovis=${BUILD_opencv_ovis} - -DBUILD_opencv_python2=OFF - -DBUILD_opencv_python3=OFF - -DBUILD_opencv_saliency=${BUILD_opencv_saliency} - -DBUILD_opencv_sfm=${BUILD_opencv_sfm} - -DBUILD_opencv_world=${BUILD_opencv_world} - # PROTOBUF - -DPROTOBUF_UPDATE_FILES=${PROTOBUF_UPDATE_FILES} - -DUPDATE_PROTO_FILES=${UPDATE_PROTO_FILES} - # CMAKE - -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON - -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON - "-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}" - # ENABLE - -DENABLE_CXX11=ON - -DENABLE_PYLINT=OFF - -DOPENCV_ENABLE_NONFREE=${OPENCV_ENABLE_NONFREE} - # INSTALL - -DINSTALL_FORCE_UNIX_PATHS=ON - -DINSTALL_LICENSE=OFF - # OPENCV - -DOPENCV_CONFIG_INSTALL_PATH=share/opencv - "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" - ${BUILD_WITH_CONTRIB_FLAG} - -DOPENCV_OTHER_INSTALL_PATH=share/opencv - # WITH - -DWITH_CUBLAS=${WITH_CUDA} - -DWITH_CUDA=${WITH_CUDA} - -DWITH_EIGEN=${WITH_EIGEN} - -DWITH_FFMPEG=${WITH_FFMPEG} - -DWITH_GDCM=${WITH_GDCM} - -DWITH_IPP=${WITH_IPP} - -DWITH_JASPER=${WITH_JASPER} - -DWITH_JPEG=${WITH_JPEG} - -DWITH_LAPACK=OFF - -DWITH_MATLAB=OFF - -DWITH_MSMF=${WITH_MSMF} - -DWITH_OPENCLAMDBLAS=OFF - -DWITH_OPENEXR=${WITH_OPENEXR} - -DWITH_OPENGL=${WITH_OPENGL} - -DWITH_PNG=${WITH_PNG} - -DWITH_PROTOBUF=${WITH_PROTOBUF} - -DWITH_QT=${WITH_QT} - -DWITH_TBB=${WITH_TBB} - -DWITH_TIFF=${WITH_TIFF} - -DWITH_VTK=${WITH_VTK} - -DWITH_WEBP=${WITH_WEBP} - -DWITH_ZLIB=${WITH_ZLIB} - -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} - OPTIONS_DEBUG - -DINSTALL_HEADERS=OFF - -DINSTALL_OTHER=OFF -) - -vcpkg_install_cmake() - -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/opencv/LICENSE ${CURRENT_PACKAGES_DIR}/share/opencv/copyright) -file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE) - -if(VCPKG_PLATFORM_TOOLSET STREQUAL "v141") - set(OpenCV_RUNTIME vc15) -else() - set(OpenCV_RUNTIME vc14) -endif() -if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(OpenCV_ARCH x64) -elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") - set(OpenCV_ARCH ARM) -elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") - set(OpenCV_ARCH ARM64) -else() - set(OpenCV_ARCH x86) -endif() - -file(GLOB BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*) -file(COPY ${BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}) -file(GLOB DEBUG_BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*) -file(COPY ${DEBUG_BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH}) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH}) - -file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/staticlib/*) -if(STATICLIB) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib) - file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/staticlib) -endif() -file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/debug/staticlib/*) -if(STATICLIB) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib) - file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/staticlib) -endif() - -file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake OPENCV_CONFIG) -string(REPLACE "/staticlib/" - "/lib/" OPENCV_CONFIG "${OPENCV_CONFIG}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake "${OPENCV_CONFIG}") - -file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-release.cmake OPENCV_CONFIG_LIB) -string(REPLACE "/staticlib/" - "/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-release.cmake "${OPENCV_CONFIG_LIB}") - -file(READ ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules-debug.cmake OPENCV_CONFIG_LIB) -string(REPLACE "/staticlib/" - "/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") -string(REPLACE "PREFIX}/lib" - "PREFIX}/debug/lib" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") -string(REPLACE "PREFIX}/bin" - "PREFIX}/debug/bin" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-debug.cmake "${OPENCV_CONFIG_LIB}") - -file(RENAME ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules.cmake ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake) - -file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) -string(REPLACE "${CURRENT_INSTALLED_DIR}" - "\${_VCPKG_INSTALLED_DIR}/\${VCPKG_TARGET_TRIPLET}" OPENCV_MODULES "${OPENCV_MODULES}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) - string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" - "set(CMAKE_IMPORT_FILE_VERSION 1) - find_package(TIFF REQUIRED)" OPENCV_MODULES "${OPENCV_MODULES}") - file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") -endif() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv) - -vcpkg_copy_pdbs() - -set(VCPKG_LIBRARY_LINKAGE "dynamic") - -set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled) +SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) diff --git a/ports/opencv/usage b/ports/opencv/usage deleted file mode 100644 index 1c30e5fea..000000000 --- a/ports/opencv/usage +++ /dev/null @@ -1,5 +0,0 @@ -The package opencv provides CMake integration: - - find_package(OpenCV REQUIRED) - target_include_directories(main PRIVATE ${OpenCV_INCLUDE_DIRS}) - target_link_libraries(main PRIVATE ${OpenCV_LIBS}) diff --git a/ports/opencv3/0001-winrt-fixes.patch b/ports/opencv3/0001-winrt-fixes.patch new file mode 100644 index 000000000..b2fe1a021 --- /dev/null +++ b/ports/opencv3/0001-winrt-fixes.patch @@ -0,0 +1,46 @@ +--- a/cmake/OpenCVModule.cmake ++++ b/cmake/OpenCVModule.cmake +@@ -848,7 +848,7 @@ macro(ocv_create_module) + set(the_module_target ${the_module}) + endif() + +- if(WINRT) ++ if(WINRT AND BUILD_TESTS) + # removing APPCONTAINER from modules to run from console + # in case of usual starting of WinRT test apps output is missing + # so starting of console version w/o APPCONTAINER is required to get test results +--- a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp ++++ b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp +@@ -24,6 +24,7 @@ + // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + // POSSIBILITY OF SUCH DAMAGE. + ++#include "opencv2/core/cvdef.h" + using namespace Windows::UI::Xaml::Controls; + + namespace cv +--- a/modules/highgui/src/window_winrt_bridge.hpp ++++ b/modules/highgui/src/window_winrt_bridge.hpp +@@ -28,6 +28,7 @@ + + #include + #include ++#include "opencv2/highgui/highgui_c.h" + + using namespace Windows::UI::Xaml::Controls; + +--- a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp ++++ b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp +@@ -94,10 +94,10 @@ Media::CaptureFrameGrabber::~CaptureFrameGrabber() + + void Media::CaptureFrameGrabber::ShowCameraSettings() + { +-#if WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP ++#if (WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP) && (WINAPI_FAMILY!=WINAPI_FAMILY_APP) + if (_state == State::Started) + { +- CameraOptionsUI::Show(_capture.Get()); ++ CameraOptionsUI::Show(_capture.Get()); // TODO: Turn it on again in UWP mode by adding reference to UWP Desktop Extensions + } + #endif + } diff --git a/ports/opencv3/0002-install-options.patch b/ports/opencv3/0002-install-options.patch new file mode 100644 index 000000000..0719a7cb9 --- /dev/null +++ b/ports/opencv3/0002-install-options.patch @@ -0,0 +1,137 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -312,6 +312,10 @@ OCV_OPTION(INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF ) + OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID ) + OCV_OPTION(INSTALL_TO_MANGLED_PATHS "Enables mangled install paths, that help with side by side installs." OFF IF (UNIX AND NOT ANDROID AND NOT APPLE_FRAMEWORK AND BUILD_SHARED_LIBS) ) + OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binaries and test data" OFF) ++OCV_OPTION(INSTALL_HEADERS "Install header files" ON) ++OCV_OPTION(INSTALL_LICENSE "Install license file" ON) ++OCV_OPTION(INSTALL_OTHER "Install other files" ON) ++OCV_OPTION(INSTALL_FORCE_UNIX_PATHS "Force unix-style installation" OFF) + + # OpenCV build options + # =================================================== +@@ -378,7 +382,9 @@ else() + endif() + + if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows) +- if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH) ++ if(DEFINED OpenCV_DISABLE_ARCH_PATH) ++ ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "") ++ elseif(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH) + ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/") + else() + message(STATUS "Can't detect runtime and/or arch") +@@ -433,12 +439,8 @@ else() + ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}") + + if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows) +- if(OpenCV_STATIC) +- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") +- else() +- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}") +- endif() +- ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") ++ ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}") ++ ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}") + ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples) + ocv_update(OPENCV_JAR_INSTALL_PATH java) + ocv_update(OPENCV_OTHER_INSTALL_PATH etc) +@@ -901,7 +903,7 @@ if(NOT OPENCV_LICENSE_FILE) + endif() + + # for UNIX it does not make sense as LICENSE and readme will be part of the package automatically +-if(ANDROID OR NOT UNIX) ++if(ANDROID OR NOT UNIX AND INSTALL_LICENSE) + install(FILES ${OPENCV_LICENSE_FILE} + PERMISSIONS OWNER_READ GROUP_READ WORLD_READ + DESTINATION ./ COMPONENT libs) +--- a/cmake/OpenCVGenConfig.cmake ++++ b/cmake/OpenCVGenConfig.cmake +@@ -105,7 +105,7 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME) + endif() + endfunction() + +-if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) ++if(((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) OR INSTALL_FORCE_UNIX_PATHS) + ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "") + endif() + +@@ -117,7 +117,7 @@ endif() + # -------------------------------------------------------------------------------------------- + # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages + # -------------------------------------------------------------------------------------------- +-if(WIN32) ++if(WIN32 AND NOT INSTALL_FORCE_UNIX_PATHS) + if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows) + if(BUILD_SHARED_LIBS) + set(_lib_suffix "lib") +--- a/cmake/OpenCVGenHeaders.cmake ++++ b/cmake/OpenCVGenHeaders.cmake +@@ -1,7 +1,9 @@ + # platform-specific config file + configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/cvconfig.h.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h") + configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/cvconfig.h.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/cvconfig.h") +-install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev) ++if(INSTALL_HEADERS) ++ install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev) ++endif() + + # platform-specific config file + ocv_compiler_optimization_fill_cpu_config() +@@ -29,4 +31,6 @@ set(OPENCV_MODULE_DEFINITIONS_CONFIGMAKE "${OPENCV_MODULE_DEFINITIONS_CONFIGMAKE + #endforeach() + + configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/opencv_modules.hpp.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp") +-install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev) ++if(INSTALL_HEADERS) ++ install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev) ++endif() +\ No newline at end of file +--- a/cmake/OpenCVModule.cmake ++++ b/cmake/OpenCVModule.cmake +@@ -1000,7 +1000,9 @@ macro(_ocv_create_module) + foreach(hdr ${OPENCV_MODULE_${the_module}_HEADERS}) + string(REGEX REPLACE "^.*opencv2/" "opencv2/" hdr2 "${hdr}") + if(NOT hdr2 MATCHES "private" AND hdr2 MATCHES "^(opencv2/?.*)/[^/]+.h(..)?$" ) +- install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev) ++ if(INSTALL_HEADERS) ++ install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev) ++ endif() + endif() + endforeach() + endif() +--- a/data/CMakeLists.txt ++++ b/data/CMakeLists.txt +@@ -1,8 +1,10 @@ + file(GLOB HAAR_CASCADES haarcascades/*.xml) + file(GLOB LBP_CASCADES lbpcascades/*.xml) + +-install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs) +-install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs) ++if(INSTALL_OTHER) ++ install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs) ++ install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs) ++endif() + + if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH) + install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests") +--- a/include/CMakeLists.txt ++++ b/include/CMakeLists.txt +@@ -1,7 +1,9 @@ +-file(GLOB old_hdrs "opencv/*.h*") +-install(FILES ${old_hdrs} +- DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv +- COMPONENT dev) +-install(FILES "opencv2/opencv.hpp" +- DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 +- COMPONENT dev) ++if(INSTALL_HEADERS) ++ file(GLOB old_hdrs "opencv/*.h*") ++ install(FILES ${old_hdrs} ++ DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv ++ COMPONENT dev) ++ install(FILES "opencv2/opencv.hpp" ++ DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 ++ COMPONENT dev) ++endif() diff --git a/ports/opencv3/0003-disable-downloading.patch b/ports/opencv3/0003-disable-downloading.patch new file mode 100644 index 000000000..28b00251f --- /dev/null +++ b/ports/opencv3/0003-disable-downloading.patch @@ -0,0 +1,11 @@ +--- a/cmake/OpenCVDownload.cmake ++++ b/cmake/OpenCVDownload.cmake +@@ -151,6 +151,8 @@ function(ocv_download) + # Download + if(NOT EXISTS "${CACHE_CANDIDATE}") + ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"") ++ string(REPLACE "${OPENCV_DOWNLOAD_PATH}/" "opencv-cache/" CACHE_SUBPATH "${CACHE_CANDIDATE}") ++ message(FATAL_ERROR " Downloads are not permitted during configure. Please pre-download the file \"${CACHE_CANDIDATE}\":\n \n vcpkg_download_distfile(OCV_DOWNLOAD\n URLS \"${DL_URL}\"\n FILENAME \"${CACHE_SUBPATH}\"\n SHA512 0\n )") + file(DOWNLOAD "${DL_URL}" "${CACHE_CANDIDATE}" + INACTIVITY_TIMEOUT 60 + TIMEOUT 600 diff --git a/ports/opencv3/0004-use-find-package-required.patch b/ports/opencv3/0004-use-find-package-required.patch new file mode 100644 index 000000000..4e1daf659 --- /dev/null +++ b/ports/opencv3/0004-use-find-package-required.patch @@ -0,0 +1,83 @@ +--- a/cmake/OpenCVFindLibsGrfmt.cmake ++++ b/cmake/OpenCVFindLibsGrfmt.cmake +@@ -6,7 +6,7 @@ + if(BUILD_ZLIB) + ocv_clear_vars(ZLIB_FOUND) + else() +- find_package(ZLIB "${MIN_VER_ZLIB}") ++ find_package(ZLIB "${MIN_VER_ZLIB}" REQUIRED) + if(ZLIB_FOUND AND ANDROID) + if(ZLIB_LIBRARIES MATCHES "/usr/(lib|lib32|lib64)/libz.so$") + set(ZLIB_LIBRARIES z) +@@ -30,7 +30,7 @@ if(WITH_JPEG) + if(BUILD_JPEG) + ocv_clear_vars(JPEG_FOUND) + else() +- include(FindJPEG) ++ find_package(JPEG REQUIRED) + endif() + + if(NOT JPEG_FOUND) +@@ -51,7 +51,7 @@ if(WITH_TIFF) + if(BUILD_TIFF) + ocv_clear_vars(TIFF_FOUND) + else() +- include(FindTIFF) ++ find_package(TIFF REQUIRED) + if(TIFF_FOUND) + ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION) + endif() +@@ -94,7 +94,7 @@ if(WITH_WEBP) + if(BUILD_WEBP) + ocv_clear_vars(WEBP_FOUND WEBP_LIBRARY WEBP_LIBRARIES WEBP_INCLUDE_DIR) + else() +- include(cmake/OpenCVFindWebP.cmake) ++ find_package(WebP REQUIRED) + if(WEBP_FOUND) + set(HAVE_WEBP 1) + endif() +@@ -135,7 +135,7 @@ if(WITH_JASPER) + if(BUILD_JASPER) + ocv_clear_vars(JASPER_FOUND) + else() +- include(FindJasper) ++ find_package(Jasper REQUIRED) + endif() + + if(NOT JASPER_FOUND) +@@ -159,7 +159,7 @@ if(WITH_PNG) + if(BUILD_PNG) + ocv_clear_vars(PNG_FOUND) + else() +- include(FindPNG) ++ find_package(PNG REQUIRED) + if(PNG_FOUND) + include(CheckIncludeFile) + check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H) +@@ -191,7 +191,7 @@ if(WITH_OPENEXR) + if(BUILD_OPENEXR) + ocv_clear_vars(OPENEXR_FOUND) + else() +- include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake") ++ find_package(OpenEXR REQUIRED) + endif() + + if(NOT OPENEXR_FOUND) +@@ -207,7 +207,7 @@ endif() + + # --- GDAL (optional) --- + if(WITH_GDAL) +- find_package(GDAL QUIET) ++ find_package(GDAL REQUIRED) + + if(NOT GDAL_FOUND) + set(HAVE_GDAL NO) +@@ -219,7 +219,7 @@ if(WITH_GDAL) + endif() + + if (WITH_GDCM) +- find_package(GDCM QUIET) ++ find_package(GDCM REQUIRED) + if(NOT GDCM_FOUND) + set(HAVE_GDCM NO) + ocv_clear_vars(GDCM_VERSION GDCM_LIBRARIES) diff --git a/ports/opencv3/0005-remove-custom-protobuf-find-package.patch b/ports/opencv3/0005-remove-custom-protobuf-find-package.patch new file mode 100644 index 000000000..91ac137f9 --- /dev/null +++ b/ports/opencv3/0005-remove-custom-protobuf-find-package.patch @@ -0,0 +1,25 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -633,7 +633,10 @@ include(cmake/OpenCVFindLibsGUI.cmake) + include(cmake/OpenCVFindLibsVideo.cmake) + include(cmake/OpenCVFindLibsPerf.cmake) + include(cmake/OpenCVFindLAPACK.cmake) +-include(cmake/OpenCVFindProtobuf.cmake) ++find_package(protobuf) ++if(Protobuf_LIBRARIES) ++ set(HAVE_PROTOBUF TRUE) ++endif() + + # ---------------------------------------------------------------------------- + # Detect other 3rd-party libraries/tools +--- a/modules/dnn/CMakeLists.txt ++++ b/modules/dnn/CMakeLists.txt +@@ -78,7 +78,7 @@ endif() + + set(include_dirs ${fw_inc}) + set(sources_options "") +-set(libs libprotobuf ${LAPACK_LIBRARIES}) ++set(libs protobuf::libprotobuf ${LAPACK_LIBRARIES}) + if(OPENCV_DNN_OPENCL AND HAVE_OPENCL) + list(APPEND include_dirs ${OPENCL_INCLUDE_DIRS}) + else() diff --git a/ports/opencv3/0006-fix-missing-openjp2.patch b/ports/opencv3/0006-fix-missing-openjp2.patch new file mode 100644 index 000000000..c0afb9952 --- /dev/null +++ b/ports/opencv3/0006-fix-missing-openjp2.patch @@ -0,0 +1,16 @@ +diff --git a/modules/imgcodecs/CMakeLists.txt b/modules/imgcodecs/CMakeLists.txt +index 434278c..0d8f4d8 100644 +--- a/modules/imgcodecs/CMakeLists.txt ++++ b/modules/imgcodecs/CMakeLists.txt +@@ -36,6 +36,11 @@ if(HAVE_PNG) + endif() + + if(HAVE_GDCM) ++ if (CMAKE_BUILD_TYPE STREQUAL "Release") ++ link_directories("${CURRENT_INSTALLED_DIR}/lib") ++ else() ++ link_directories("${CURRENT_INSTALLED_DIR}/debug/lib") ++ endif() + ocv_include_directories(${GDCM_INCLUDE_DIRS}) + list(APPEND GRFMT_LIBS ${GDCM_LIBRARIES}) + endif() diff --git a/ports/opencv3/CONTROL b/ports/opencv3/CONTROL new file mode 100644 index 000000000..5f65d9e43 --- /dev/null +++ b/ports/opencv3/CONTROL @@ -0,0 +1,93 @@ +Source: opencv3 +Version: 3.4.3-10 +Build-Depends: zlib +Homepage: https://github.com/opencv/opencv +Description: computer vision library +Default-Features: opengl, jpeg, png, tiff, eigen, flann + +Feature: opengl +Build-Depends: opengl +Description: opengl support for opencv + +Feature: dnn +Build-Depends: protobuf +Description: opencv_dnn module + +Feature: ovis +Build-Depends: ogre +Description: opencv_ovis module + +Feature: flann +Description: opencv_flann module + +Feature: sfm +Build-Depends: eigen3, glog, gflags, ceres +Description: opencv_sfm module + +Feature: contrib +Build-Depends: opencv3[flann] +Description: opencv_contrib module + +Feature: cuda +Build-Depends: cuda +Description: CUDA support for opencv + +Feature: ffmpeg +Description: prebuilt ffmpeg support for opencv + +Feature: ipp +Description: Enable Intel Integrated Performance Primitives + +Feature: tbb +Build-Depends: tbb +Description: Enable Intel Threading Building Blocks + +Feature: qt +Build-Depends: qt5 +Description: Qt GUI support for opencv + +Feature: vtk +Build-Depends: vtk +Description: vtk support for opencv + +Feature: gdcm +Build-Depends: gdcm +Description: GDCM support for opencv + +Feature: webp +Build-Depends: libwebp +Description: WebP support for opencv + +Feature: openexr +Build-Depends: openexr +Description: OpenEXR support for opencv + +Feature: tiff +Build-Depends: tiff +Description: TIFF support for opencv + +Feature: png +Build-Depends: libpng +Description: PNG support for opencv + +Feature: jpeg +Build-Depends: libjpeg-turbo +Description: JPEG support for opencv + +Feature: jasper +Build-Depends: jasper +Description: JPEG 2000 support for opencv + +Feature: eigen +Build-Depends: eigen3 +Description: Eigen support for opencv + +Feature: halide +Build-Depends: halide, opencv3[dnn] +Description: Halide support for opencv + +Feature: world +Description: Compile to a single package support for opencv + +Feature: nonfree +Description: allow nonfree and unredistributable libraries diff --git a/ports/opencv3/portfile.cmake b/ports/opencv3/portfile.cmake new file mode 100644 index 000000000..12c4dadae --- /dev/null +++ b/ports/opencv3/portfile.cmake @@ -0,0 +1,423 @@ +if (EXISTS "${CURRENT_INSTALLED_DIR}/share/opencv4") + message(FATAL_ERROR "OpenCV 4 is installed, please uninstall and try again:\n vcpkg remove opencv4") +endif() + +include(vcpkg_common_functions) + +set(OPENCV_PORT_VERSION "3.4.3") + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO opencv/opencv + REF ${OPENCV_PORT_VERSION} + SHA512 d653a58eb5e3939b9fdb7438ac35f77cf4385cf72d5d22bfd21722a109e1b3283dbb9407985061b7548114f0d05c9395aac9bb62b4d2bc1f68da770a49987fef + HEAD_REF master + PATCHES + 0001-winrt-fixes.patch + 0002-install-options.patch + 0003-disable-downloading.patch + 0004-use-find-package-required.patch + 0005-remove-custom-protobuf-find-package.patch + 0006-fix-missing-openjp2.patch +) + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) + +set(CMAKE_MODULE_PATH) + +set(BUILD_opencv_world OFF) +if("world" IN_LIST FEATURES) + set(BUILD_opencv_world ON) +endif() + +set(BUILD_opencv_dnn OFF) +set(WITH_PROTOBUF OFF) +if("dnn" IN_LIST FEATURES) + set(BUILD_opencv_dnn ON) + set(WITH_PROTOBUF ON) + set(PROTOBUF_UPDATE_FILES ON) + set(UPDATE_PROTO_FILES ON) + vcpkg_download_distfile(TINYDNN_ARCHIVE + URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz" + FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz" + SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b + ) +endif() + +set(BUILD_opencv_flann OFF) +if("flann" IN_LIST FEATURES) + set(BUILD_opencv_flann ON) +endif() + +set(BUILD_opencv_ovis OFF) +if("ovis" IN_LIST FEATURES) + set(BUILD_opencv_ovis ON) +endif() + +set(BUILD_opencv_sfm OFF) +if("sfm" IN_LIST FEATURES) + set(BUILD_opencv_sfm ON) +endif() + +set(BUILD_opencv_contrib OFF) +if("contrib" IN_LIST FEATURES) + set(BUILD_opencv_contrib ON) + + # Used for opencv's face module + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat" + FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat" + SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93 + ) + + vcpkg_download_distfile(TINYDNN_ARCHIVE + URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz" + FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz" + SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b + ) + + function(download_opencv_3rdparty ID COMMIT HASH) + if(NOT EXISTS "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://github.com/opencv/opencv_3rdparty/archive/${COMMIT}.zip" + FILENAME "opencv_3rdparty-${COMMIT}.zip" + SHA512 ${HASH} + ) + vcpkg_extract_source_archive(${OCV_DOWNLOAD}) + file(MAKE_DIRECTORY "${DOWNLOADS}/opencv-cache/${ID}") + file(GLOB XFEATURES2D_I ${CURRENT_BUILDTREES_DIR}/src/opencv_3rdparty-${COMMIT}/*) + foreach(FILE ${XFEATURES2D_I}) + file(COPY ${FILE} DESTINATION "${DOWNLOADS}/opencv-cache/${ID}") + get_filename_component(XFEATURES2D_I_NAME "${FILE}" NAME) + file(MD5 "${FILE}" FILE_HASH) + file(RENAME "${DOWNLOADS}/opencv-cache/${ID}/${XFEATURES2D_I_NAME}" "${DOWNLOADS}/opencv-cache/${ID}/${FILE_HASH}-${XFEATURES2D_I_NAME}") + endforeach() + file(WRITE "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp") + endif() + endfunction() + + # Used for opencv's xfeature2d module + download_opencv_3rdparty( + xfeatures2d/boostdesc + 34e4206aef44d50e6bbcd0ab06354b52e7466d26 + 2ccdc8fb59da55eabc73309a80a4d3b1e73e2341027cdcdd2d714e0f519e60f243f38f79b13ed3de32f595aa23e4f86418eed42e741f32a81b1e6e0879190601 + ) + + # Used for opencv's xfeature2d module + download_opencv_3rdparty( + xfeatures2d/vgg + fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d + 7051f5d6ccb938d296b919dd6d5dcddc5afb527aed456639c9984276a8f64565c084d96a72499a7756f127f8d2b1ce9ab70e4cbb3f89c4e16f82296c2a15daed + ) +endif() + +set(WITH_CUDA OFF) +if("cuda" IN_LIST FEATURES) + set(WITH_CUDA ON) +endif() + +set(WITH_FFMPEG OFF) +if("ffmpeg" IN_LIST FEATURES) + set(WITH_FFMPEG ON) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg.dll" + FILENAME "opencv-cache/ffmpeg/fa5a2a4e2f37defcb95bde8ed145c2b3-opencv_ffmpeg.dll" + SHA512 875f922e1d9fc2fe7c8e879ede35b1001b6ad8b3c4d71feb3823421ce861f580df3418c791315b23870fcb0378d297b01e0761d3f65277ff11ec2fef8c0b08b7 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg_64.dll" + FILENAME "opencv-cache/ffmpeg/2cc08fc4fef8199fe80e0f126684834f-opencv_ffmpeg_64.dll" + SHA512 4e74aa4cb115f103b929f93bbc8dcf675de7d0c7916f8f0a80ac46761134b088634be95f959ce5827753ae9ecb2365ca40440dfbb9a9bf89f22ee11b6c8342b3 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/ffmpeg_version.cmake" + FILENAME "opencv-cache/ffmpeg/3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake" + SHA512 7d0142c30ac6f6260c1bcabc22753030fd25a708477fa28053e8df847c366967d3b93a8ac14af19a2b7b73d9f8241749a431458faf21a0c8efc7d6d99eecfdcf + ) +endif() + +set(WITH_IPP OFF) +if("ipp" IN_LIST FEATURES) + set(WITH_IPP ON) + + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_intel64_general_20180518.zip" + FILENAME "opencv-cache/ippicv/915ff92958089ede8ea532d3c4fe7187-ippicv_2017u3_win_intel64_general_20180518.zip" + SHA512 8aa08292d542d521c042864446e47a7a6bdbf3896d86fc7b43255459c24a2e9f34a4e9b177023d178fed7a2e82a9db410f89d81375a542d049785d263f46c64d + ) + else() + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_ia32_general_20180518.zip" + FILENAME "opencv-cache/ippicv/928168c2d99ab284047dfcfb7a821d91-ippicv_2017u3_win_ia32_general_20180518.zip" + SHA512 b89b0fb739152303cafc9fb064fa8b24fd94850697137ccbb5c1e344e0f5094115603a5e3be3a25f85d0faefc5c53429a7d65da0142d012ada41e8db2bcdd6b7 + ) + endif() +endif() + +set(WITH_TBB OFF) +if("tbb" IN_LIST FEATURES) + set(WITH_TBB ON) +endif() + +set(WITH_QT OFF) +if("qt" IN_LIST FEATURES) + set(WITH_QT ON) +endif() + +set(WITH_VTK OFF) +if("vtk" IN_LIST FEATURES) + set(WITH_VTK ON) +endif() + +set(WITH_WEBP OFF) +if("webp" IN_LIST FEATURES) + set(WITH_WEBP ON) + list(APPEND CMAKE_MODULE_PATH ${CURRENT_INSTALLED_DIR}/share/libwebp) +endif() + +set(WITH_GDCM OFF) +if("gdcm" IN_LIST FEATURES) + set(WITH_GDCM ON) +endif() + +set(WITH_OPENGL OFF) +if("opengl" IN_LIST FEATURES) + set(WITH_OPENGL ON) +endif() + +set(WITH_OPENEXR OFF) +if("openexr" IN_LIST FEATURES) + set(WITH_OPENEXR ON) + list(APPEND CMAKE_MODULE_PATH ${CURRENT_INSTALLED_DIR}/share/openexr) +endif() + +set(WITH_MSMF ON) +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(WITH_MSMF OFF) +endif() + +set(WITH_TIFF OFF) +if("tiff" IN_LIST FEATURES) + set(WITH_TIFF ON) +endif() + +set(WITH_JPEG OFF) +if("jpeg" IN_LIST FEATURES) + set(WITH_JPEG ON) +endif() + +set(WITH_JASPER OFF) +if("jasper" IN_LIST FEATURES) + set(WITH_JASPER ON) +endif() + +set(WITH_PNG OFF) +if("png" IN_LIST FEATURES) + set(WITH_PNG ON) +endif() + +set(WITH_EIGEN OFF) +if("eigen" IN_LIST FEATURES) + set(WITH_EIGEN ON) +endif() + +set(WITH_HALIDE OFF) +if("halide" IN_LIST FEATURES) + set(WITH_HALIDE ON) +endif() + +set(OPENCV_ENABLE_NONFREE OFF) +if("nonfree" IN_LIST FEATURES) + set(OPENCV_ENABLE_NONFREE ON) +endif() + +if(BUILD_opencv_contrib) + vcpkg_from_github( + OUT_SOURCE_PATH CONTRIB_SOURCE_PATH + REPO opencv/opencv_contrib + REF ${OPENCV_PORT_VERSION} + SHA512 456c6f878fb3bd5459f6430405cf05c609431f8d7db743aa699fc75c305d019682ee3a804bf0cf5107597dd1dbbb69b08be3535a0e6c717e4773ed7c05d08e59 + HEAD_REF master + ) + set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") +endif() + +set(WITH_ZLIB ON) +set(BUILD_opencv_line_descriptor ON) +set(BUILD_opencv_saliency ON) +set(BUILD_opencv_bgsegm ON) +if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm") + set(BUILD_opencv_line_descriptor OFF) + set(BUILD_opencv_saliency OFF) + set(BUILD_opencv_bgsegm OFF) +endif() + +string(REPLACE ";" "\\\\\;" CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}") + +vcpkg_configure_cmake( + PREFER_NINJA + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + # Ungrouped Entries + -DOpenCV_DISABLE_ARCH_PATH=ON + # Do not build docs/examples + -DBUILD_DOCS=OFF + -DBUILD_EXAMPLES=OFF + # Do not build integrated libraries, use external ones whenever possible + -DBUILD_JASPER=OFF + -DBUILD_JPEG=OFF + -DBUILD_OPENEXR=OFF + -DBUILD_PACKAGE=OFF + -DBUILD_PERF_TESTS=OFF + -DBUILD_PNG=OFF + -DBUILD_PROTOBUF=OFF + -DBUILD_TESTS=OFF + -DBUILD_TIFF=OFF + -DBUILD_WEBP=OFF + -DBUILD_WITH_DEBUG_INFO=ON + -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} + -DBUILD_ZLIB=OFF + # Select which OpenCV modules should be built + -DBUILD_opencv_apps=OFF + -DBUILD_opencv_bgsegm=${BUILD_opencv_bgsegm} + -DBUILD_opencv_dnn=${BUILD_opencv_dnn} + -DBUILD_opencv_flann=${BUILD_opencv_flann} + -DBUILD_opencv_line_descriptor=${BUILD_opencv_line_descriptor} + -DBUILD_opencv_ovis=${BUILD_opencv_ovis} + -DBUILD_opencv_python2=OFF + -DBUILD_opencv_python3=OFF + -DBUILD_opencv_saliency=${BUILD_opencv_saliency} + -DBUILD_opencv_sfm=${BUILD_opencv_sfm} + -DBUILD_opencv_world=${BUILD_opencv_world} + # PROTOBUF + -DPROTOBUF_UPDATE_FILES=${PROTOBUF_UPDATE_FILES} + -DUPDATE_PROTO_FILES=${UPDATE_PROTO_FILES} + # CMAKE + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON + "-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}" + # ENABLE + -DENABLE_CXX11=ON + -DENABLE_PYLINT=OFF + -DOPENCV_ENABLE_NONFREE=${OPENCV_ENABLE_NONFREE} + # INSTALL + -DINSTALL_FORCE_UNIX_PATHS=ON + -DINSTALL_LICENSE=OFF + # OPENCV + -DOPENCV_CONFIG_INSTALL_PATH=share/opencv + "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" + ${BUILD_WITH_CONTRIB_FLAG} + -DOPENCV_OTHER_INSTALL_PATH=share/opencv + # WITH + -DWITH_CUBLAS=${WITH_CUDA} + -DWITH_CUDA=${WITH_CUDA} + -DWITH_EIGEN=${WITH_EIGEN} + -DWITH_FFMPEG=${WITH_FFMPEG} + -DWITH_GDCM=${WITH_GDCM} + -DWITH_HALIDE=${WITH_HALIDE} + -DWITH_IPP=${WITH_IPP} + -DWITH_JASPER=${WITH_JASPER} + -DWITH_JPEG=${WITH_JPEG} + -DWITH_LAPACK=OFF + -DWITH_MATLAB=OFF + -DWITH_MSMF=${WITH_MSMF} + -DWITH_OPENCLAMDBLAS=OFF + -DWITH_OPENEXR=${WITH_OPENEXR} + -DWITH_OPENGL=${WITH_OPENGL} + -DWITH_PNG=${WITH_PNG} + -DWITH_PROTOBUF=${WITH_PROTOBUF} + -DWITH_QT=${WITH_QT} + -DWITH_TBB=${WITH_TBB} + -DWITH_TIFF=${WITH_TIFF} + -DWITH_VTK=${WITH_VTK} + -DWITH_WEBP=${WITH_WEBP} + -DWITH_ZLIB=${WITH_ZLIB} + -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} + OPTIONS_DEBUG + -DINSTALL_HEADERS=OFF + -DINSTALL_OTHER=OFF +) + +vcpkg_install_cmake() + +if(VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + set(OpenCV_RUNTIME vc15) +else() + set(OpenCV_RUNTIME vc14) +endif() +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(OpenCV_ARCH x64) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(OpenCV_ARCH ARM) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(OpenCV_ARCH ARM64) +else() + set(OpenCV_ARCH x86) +endif() + +file(GLOB BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*) +file(COPY ${BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}) +file(GLOB DEBUG_BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*) +file(COPY ${DEBUG_BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH}) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH}) + +file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/staticlib/*) +if(STATICLIB) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib) + file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/staticlib) +endif() +file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/debug/staticlib/*) +if(STATICLIB) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib) + file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/staticlib) +endif() + +file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake OPENCV_CONFIG) +string(REPLACE "/staticlib/" + "/lib/" OPENCV_CONFIG "${OPENCV_CONFIG}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake "${OPENCV_CONFIG}") + +file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-release.cmake OPENCV_CONFIG_LIB) +string(REPLACE "/staticlib/" + "/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-release.cmake "${OPENCV_CONFIG_LIB}") + +file(READ ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules-debug.cmake OPENCV_CONFIG_LIB) +string(REPLACE "/staticlib/" + "/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +string(REPLACE "PREFIX}/lib" + "PREFIX}/debug/lib" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +string(REPLACE "PREFIX}/bin" + "PREFIX}/debug/bin" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-debug.cmake "${OPENCV_CONFIG_LIB}") + +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules.cmake ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake) + +file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) +string(REPLACE "${CURRENT_INSTALLED_DIR}" + "\${_VCPKG_INSTALLED_DIR}/\${VCPKG_TARGET_TRIPLET}" OPENCV_MODULES "${OPENCV_MODULES}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) + string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" + "set(CMAKE_IMPORT_FILE_VERSION 1) + find_package(TIFF REQUIRED)" OPENCV_MODULES "${OPENCV_MODULES}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv) + +vcpkg_copy_pdbs() + +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv3) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/opencv3/LICENSE ${CURRENT_PACKAGES_DIR}/share/opencv3/copyright) + +set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled) diff --git a/ports/opencv3/usage b/ports/opencv3/usage new file mode 100644 index 000000000..1c30e5fea --- /dev/null +++ b/ports/opencv3/usage @@ -0,0 +1,5 @@ +The package opencv provides CMake integration: + + find_package(OpenCV REQUIRED) + target_include_directories(main PRIVATE ${OpenCV_INCLUDE_DIRS}) + target_link_libraries(main PRIVATE ${OpenCV_LIBS}) diff --git a/ports/opencv4/0001-disable-downloading.patch b/ports/opencv4/0001-disable-downloading.patch new file mode 100644 index 000000000..28b00251f --- /dev/null +++ b/ports/opencv4/0001-disable-downloading.patch @@ -0,0 +1,11 @@ +--- a/cmake/OpenCVDownload.cmake ++++ b/cmake/OpenCVDownload.cmake +@@ -151,6 +151,8 @@ function(ocv_download) + # Download + if(NOT EXISTS "${CACHE_CANDIDATE}") + ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"") ++ string(REPLACE "${OPENCV_DOWNLOAD_PATH}/" "opencv-cache/" CACHE_SUBPATH "${CACHE_CANDIDATE}") ++ message(FATAL_ERROR " Downloads are not permitted during configure. Please pre-download the file \"${CACHE_CANDIDATE}\":\n \n vcpkg_download_distfile(OCV_DOWNLOAD\n URLS \"${DL_URL}\"\n FILENAME \"${CACHE_SUBPATH}\"\n SHA512 0\n )") + file(DOWNLOAD "${DL_URL}" "${CACHE_CANDIDATE}" + INACTIVITY_TIMEOUT 60 + TIMEOUT 600 diff --git a/ports/opencv4/0002-install-options.patch b/ports/opencv4/0002-install-options.patch new file mode 100644 index 000000000..10aa08c24 --- /dev/null +++ b/ports/opencv4/0002-install-options.patch @@ -0,0 +1,69 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8631bbc..e801558 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -647,7 +647,7 @@ endif() + + if(WIN32) + # Postfix of DLLs: +- set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}") ++ set(OPENCV_DLLVERSION "") + set(OPENCV_DEBUG_POSTFIX d) + else() + # Postfix of so's: +@@ -698,7 +698,7 @@ endif() + ocv_cmake_hook(POST_CMAKE_BUILD_OPTIONS) + + # --- Python Support --- +-if(NOT IOS) ++if(0) + include(cmake/OpenCVDetectPython.cmake) + endif() + +diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake +index e3ae62f..d866162 100644 +--- a/cmake/OpenCVCompilerOptions.cmake ++++ b/cmake/OpenCVCompilerOptions.cmake +@@ -256,7 +256,6 @@ if(MSVC) + #endif() + + if(BUILD_WITH_DEBUG_INFO) +- set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} /Zi") + set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE} /debug") + set(OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE} /debug") + endif() +diff --git a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake +index cef9d0b..b6ddb81 100644 +--- a/cmake/OpenCVGenConfig.cmake ++++ b/cmake/OpenCVGenConfig.cmake +@@ -109,7 +109,7 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME) + endif() + endfunction() + +-if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) ++if(NOT ANDROID) + ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "") + endif() + +@@ -121,7 +121,7 @@ endif() + # -------------------------------------------------------------------------------------------- + # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages + # -------------------------------------------------------------------------------------------- +-if(WIN32) ++if(0) + if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows) + if(BUILD_SHARED_LIBS) + set(_lib_suffix "lib") +diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt +index 1f0d720..0bb1ff7 100644 +--- a/data/CMakeLists.txt ++++ b/data/CMakeLists.txt +@@ -1,8 +1,6 @@ + file(GLOB HAAR_CASCADES haarcascades/*.xml) + file(GLOB LBP_CASCADES lbpcascades/*.xml) + +-install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs) +-install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs) + + if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH) + install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests") diff --git a/ports/opencv4/0003-force-package-requirements.patch b/ports/opencv4/0003-force-package-requirements.patch new file mode 100644 index 000000000..b6051f849 --- /dev/null +++ b/ports/opencv4/0003-force-package-requirements.patch @@ -0,0 +1,128 @@ +diff --git a/cmake/OpenCVFindLibsGrfmt.cmake b/cmake/OpenCVFindLibsGrfmt.cmake +index 227cfb2..7a97a19 100644 +--- a/cmake/OpenCVFindLibsGrfmt.cmake ++++ b/cmake/OpenCVFindLibsGrfmt.cmake +@@ -6,7 +6,7 @@ + if(BUILD_ZLIB) + ocv_clear_vars(ZLIB_FOUND) + else() +- find_package(ZLIB "${MIN_VER_ZLIB}") ++ find_package(ZLIB "${MIN_VER_ZLIB}" REQUIRED) + if(ZLIB_FOUND AND ANDROID) + if(ZLIB_LIBRARIES MATCHES "/usr/(lib|lib32|lib64)/libz.so$") + set(ZLIB_LIBRARIES z) +@@ -30,7 +30,7 @@ if(WITH_JPEG) + if(BUILD_JPEG) + ocv_clear_vars(JPEG_FOUND) + else() +- include(FindJPEG) ++ find_package(JPEG REQUIRED) + endif() + + if(NOT JPEG_FOUND) +@@ -74,7 +74,7 @@ if(WITH_TIFF) + if(BUILD_TIFF) + ocv_clear_vars(TIFF_FOUND) + else() +- include(FindTIFF) ++ find_package(TIFF REQUIRED) + if(TIFF_FOUND) + ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION) + endif() +@@ -117,7 +117,7 @@ if(WITH_WEBP) + if(BUILD_WEBP) + ocv_clear_vars(WEBP_FOUND WEBP_LIBRARY WEBP_LIBRARIES WEBP_INCLUDE_DIR) + else() +- include(cmake/OpenCVFindWebP.cmake) ++ find_package(WebP REQUIRED) + if(WEBP_FOUND) + set(HAVE_WEBP 1) + endif() +@@ -158,7 +158,7 @@ if(WITH_JASPER) + if(BUILD_JASPER) + ocv_clear_vars(JASPER_FOUND) + else() +- include(FindJasper) ++ find_package(Jasper REQUIRED) + endif() + + if(NOT JASPER_FOUND) +@@ -182,7 +182,7 @@ if(WITH_PNG) + if(BUILD_PNG) + ocv_clear_vars(PNG_FOUND) + else() +- include(FindPNG) ++ find_package(PNG REQUIRED) + if(PNG_FOUND) + include(CheckIncludeFile) + check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H) +@@ -213,7 +213,7 @@ endif() + if(WITH_OPENEXR) + ocv_clear_vars(HAVE_OPENEXR) + if(NOT BUILD_OPENEXR) +- include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake") ++ find_package(OpenEXR REQUIRED) + endif() + + if(OPENEXR_FOUND) +@@ -231,7 +231,7 @@ endif() + + # --- GDAL (optional) --- + if(WITH_GDAL) +- find_package(GDAL QUIET) ++ find_package(GDAL REQUIRED) + + if(NOT GDAL_FOUND) + set(HAVE_GDAL NO) +@@ -243,7 +243,7 @@ if(WITH_GDAL) + endif() + + if (WITH_GDCM) +- find_package(GDCM QUIET) ++ find_package(GDCM REQUIRED) + if(NOT GDCM_FOUND) + set(HAVE_GDCM NO) + ocv_clear_vars(GDCM_VERSION GDCM_LIBRARIES) +@@ -273,4 +273,4 @@ if(WITH_IMGCODEC_PFM) + set(HAVE_IMGCODEC_PFM ON) + elseif(DEFINED WITH_IMGCODEC_PFM) + set(HAVE_IMGCODEC_PFM OFF) +-endif() +\ No newline at end of file ++endif() +diff --git a/cmake/OpenCVFindLibsPerf.cmake b/cmake/OpenCVFindLibsPerf.cmake +index a658bf6..5c9411a 100644 +--- a/cmake/OpenCVFindLibsPerf.cmake ++++ b/cmake/OpenCVFindLibsPerf.cmake +@@ -41,14 +41,9 @@ endif(WITH_CUDA) + + # --- Eigen --- + if(WITH_EIGEN AND NOT HAVE_EIGEN) +- find_package(Eigen3 QUIET) ++ find_package(Eigen3 REQUIRED) + + if(Eigen3_FOUND) +- if(TARGET Eigen3::Eigen) +- # Use Eigen3 imported target if possible +- list(APPEND OPENCV_LINKER_LIBS Eigen3::Eigen) +- set(HAVE_EIGEN 1) +- else() + if(DEFINED EIGEN3_INCLUDE_DIRS) + set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIRS}) + set(HAVE_EIGEN 1) +@@ -56,7 +51,6 @@ if(WITH_EIGEN AND NOT HAVE_EIGEN) + set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIR}) + set(HAVE_EIGEN 1) + endif() +- endif() + if(HAVE_EIGEN) + if(DEFINED EIGEN3_WORLD_VERSION) # CMake module + set(EIGEN_WORLD_VERSION ${EIGEN3_WORLD_VERSION}) +@@ -67,6 +61,7 @@ if(WITH_EIGEN AND NOT HAVE_EIGEN) + set(EIGEN_MAJOR_VERSION ${EIGEN3_VERSION_MINOR}) + set(EIGEN_MINOR_VERSION ${EIGEN3_VERSION_PATCH}) + endif() ++ ocv_include_directories(${EIGEN_INCLUDE_PATH}) + endif() + endif() + diff --git a/ports/opencv4/0009-fix-uwp.patch b/ports/opencv4/0009-fix-uwp.patch new file mode 100644 index 000000000..5c54256a5 --- /dev/null +++ b/ports/opencv4/0009-fix-uwp.patch @@ -0,0 +1,57 @@ +diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake +index 799592b..3f44173 100644 +--- a/cmake/OpenCVModule.cmake ++++ b/cmake/OpenCVModule.cmake +@@ -852,7 +852,7 @@ macro(ocv_create_module) + set(the_module_target ${the_module}) + endif() + +- if(WINRT) ++ if(WINRT AND BUILD_TESTS) + # removing APPCONTAINER from modules to run from console + # in case of usual starting of WinRT test apps output is missing + # so starting of console version w/o APPCONTAINER is required to get test results +@@ -1175,7 +1175,7 @@ function(ocv_add_perf_tests) + set_target_properties(${the_target} PROPERTIES FOLDER "tests performance") + endif() + +- if(WINRT) ++ if(WINRT AND BUILD_TESTS) + # removing APPCONTAINER from tests to run from console + # look for detailed description inside of ocv_create_module macro above + add_custom_command(TARGET "opencv_perf_${name}" +diff --git a/modules/core/src/utils/datafile.cpp b/modules/core/src/utils/datafile.cpp +index aafbfdf..10543ae 100644 +--- a/modules/core/src/utils/datafile.cpp ++++ b/modules/core/src/utils/datafile.cpp +@@ -108,7 +108,7 @@ static cv::String getModuleLocation(const void* addr) + CV_UNUSED(addr); + #ifdef _WIN32 + HMODULE m = 0; +-#if _WIN32_WINNT >= 0x0501 ++#if _WIN32_WINNT >= 0x0501 && (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) + ::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + reinterpret_cast(addr), + &m); +@@ -155,7 +155,7 @@ bool getBinLocation(std::wstring& dst) + { + void* addr = (void*)getModuleLocation; // using code address, doesn't work with static linkage! + HMODULE m = 0; +-#if _WIN32_WINNT >= 0x0501 ++#if _WIN32_WINNT >= 0x0501 && (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) + ::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + reinterpret_cast(addr), + &m); +diff --git a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp +index 236e227..eccf97e 100644 +--- a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp ++++ b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp +@@ -94,7 +94,7 @@ Media::CaptureFrameGrabber::~CaptureFrameGrabber() + + void Media::CaptureFrameGrabber::ShowCameraSettings() + { +-#if WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP ++#if (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) && (WINAPI_FAMILY != WINAPI_FAMILY_PC_APP) + if (_state == State::Started) + { + CameraOptionsUI::Show(_capture.Get()); diff --git a/ports/opencv4/CONTROL b/ports/opencv4/CONTROL new file mode 100644 index 000000000..29d6ec9ce --- /dev/null +++ b/ports/opencv4/CONTROL @@ -0,0 +1,96 @@ +Source: opencv4 +Version: 4.1.1 +Build-Depends: protobuf, zlib +Description: computer vision library +Default-Features: dnn, jpeg, opengl, png, tiff, webp + +Feature: nonfree +Description: opencv nonfree module + +Feature: ade +Build-Depends: ade +Description: graph api + +Feature: contrib +Build-Depends: hdf5 (!uwp) +Description: opencv_contrib module + +Feature: cuda +Build-Depends: opencv4[contrib], cuda +Description: CUDA support for opencv + +Feature: dnn +Description: Enable dnn module + +Feature: eigen +Build-Depends: eigen3 +Description: Eigen support for opencv + +Feature: ffmpeg +Build-Depends: ffmpeg +Description: ffmpeg support for opencv + +Feature: gdcm +Build-Depends: gdcm +Description: GDCM support for opencv + +Feature: ipp +Description: Enable Intel Integrated Performance Primitives + +Feature: jasper +Build-Depends: jasper +Description: JPEG 2000 support for opencv + +Feature: jpeg +Build-Depends: libjpeg-turbo +Description: JPEG support for opencv + +Feature: openexr +Build-Depends: openexr +Description: OpenEXR support for opencv + +Feature: opengl +Build-Depends: opengl +Description: opengl support for opencv + +Feature: openmp +Description: Enable openmp support for opencv + +Feature: ovis +Build-Depends: opencv4[contrib], ogre +Description: opencv_ovis module + +Feature: png +Build-Depends: libpng +Description: PNG support for opencv + +Feature: qt +Build-Depends: qt5 +Description: Qt GUI support for opencv + +Feature: sfm +Build-Depends: opencv4[contrib], eigen3, glog, gflags, ceres +Description: opencv_sfm module + +Feature: tbb +Build-Depends: tbb +Description: Enable Intel Threading Building Blocks + +Feature: tiff +Build-Depends: tiff +Description: TIFF support for opencv + +Feature: vtk +Build-Depends: vtk +Description: vtk support for opencv + +Feature: webp +Build-Depends: libwebp +Description: WebP support for opencv + +Feature: halide +Build-Depends: halide, opencv4[dnn] +Description: Halide support for opencv + +Feature: world +Description: Compile to a single package support for opencv diff --git a/ports/opencv4/portfile.cmake b/ports/opencv4/portfile.cmake new file mode 100644 index 000000000..a1faafc71 --- /dev/null +++ b/ports/opencv4/portfile.cmake @@ -0,0 +1,378 @@ +if (EXISTS "${CURRENT_INSTALLED_DIR}/share/opencv3") + message(FATAL_ERROR "OpenCV 3 is installed, please uninstall and try again:\n vcpkg remove opencv3") +endif() + +include(vcpkg_common_functions) + +set(OPENCV_VERSION "4.1.1") + +if(VCPKG_TARGET_IS_LINUX) + message("OpenCV currently requires the following library from the system package manager:\n libgtk3\n\nThis can be installed on Ubuntu systems via apt-get install libgtk-3-dev") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO opencv/opencv + REF ${OPENCV_VERSION} + SHA512 80fa48d992ca06a2a4ab6740df6d8c21f4926165486b393969da2c5bbe2f3a0b799fb76dee5e3654e90c743e49bbd2b5b02ad59a4766896bbf4cd5b4e3251e0f + HEAD_REF master + PATCHES + 0001-disable-downloading.patch + 0002-install-options.patch + 0003-force-package-requirements.patch + 0009-fix-uwp.patch +) + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) + +set(ADE_DIR ${CURRENT_INSTALLED_DIR}/share/ade CACHE PATH "Path to existing ADE CMake Config file") + +vcpkg_check_features( + "ade" WITH_ADE + "contrib" WITH_CONTRIB + "cuda" WITH_CUDA + "dnn" BUILD_opencv_dnn + "eigen" WITH_EIGEN + "ffmpeg" WITH_FFMPEG + "gdcm" WITH_GDCM + "halide" WITH_HALIDE + "ipp" WITH_IPP + "jasper" WITH_JASPER + "jpeg" WITH_JPEG + "nonfree" OPENCV_ENABLE_NONFREE + "openexr" WITH_OPENEXR + "opengl" WITH_OPENGL + "openmp" WITH_OPENMP + "ovis" BUILD_opencv_ovis + "png" WITH_PNG + "qt" WITH_QT + "sfm" BUILD_opencv_sfm + "tbb" WITH_TBB + "tiff" WITH_TIFF + "vtk" WITH_VTK + "webp" WITH_WEBP + "world" BUILD_opencv_world +) + +if(WITH_CUDA) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://github.com/NVIDIA/NVIDIAOpticalFlowSDK/archive/79c6cee80a2df9a196f20afd6b598a9810964c32.zip" + FILENAME "opencv-cache/nvidia_optical_flow/ca5acedee6cb45d0ec610a6732de5c15-79c6cee80a2df9a196f20afd6b598a9810964c32.zip" + SHA512 d80cdedec588dafaad4ebb8615349f842ecdc64d3ca9480fee7086d606e6f2362606a9a2ce273c5cf507be2840ec24bbcbe32c2962672c3bcfb72d31428ef73d + ) +endif() + +# Build image quality module when building with 'contrib' feature and not UWP. +set(BUILD_opencv_quality OFF) +if(WITH_CONTRIB) + if (VCPKG_TARGET_IS_UWP) + set(BUILD_opencv_quality OFF) + message(WARNING "The image quality module (quality) does not build for UWP, the module has been disabled.") + # The hdf module is silently disabled by OpenCVs buildsystem if HDF5 is not detected. + message(WARNING "The hierarchical data format module (hdf) depends on HDF5 which doesn't support UWP, the module has been disabled.") + else() + set(BUILD_opencv_quality CMAKE_DEPENDS_IN_PROJECT_ONLY) + endif() + + vcpkg_from_github( + OUT_SOURCE_PATH CONTRIB_SOURCE_PATH + REPO opencv/opencv_contrib + REF ${OPENCV_VERSION} + SHA512 8af13f0a5f350360316662c1ce5e58c21d906a58591acfbd575a8dacde19b6f3bbd694c3c199feb35c33549cf8c37e3fb4c494b586a00ad29fe3b4aeeb2d22ab + HEAD_REF master + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i" + SHA512 5c8702a60314fac4ebb6dafb62a603948ec034058d1a582fcb89a063b51511802c02e192eadfc0b233b1f711f4c74cabab6d9ebe8a50c3554ea0ccdbef87dc5c + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_bi.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i" + SHA512 b28ba2b615e0755ff0f6733b567682800fb9e7d522250aa498075cc1b8927f4177cacdcb0cfdf712539a29c4773232dc714931b6d292292b091b5cf170b203a6 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i" + SHA512 c214045c3730a1d9dfc594f70895edf82d2fd3058a3928908627014371e02460d052cbaedf41bb96cf76460c0a8b4b01b7b0ac7d269ec5d3f17f2a46c9f0091b + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i" + SHA512 f32240a7b975233d2bbad02fdb74c6e29ed71ed6f0c08172ca33eb1e69a7a7f6d6964adf41422213a0452121a9c4bb2effe3d7b9d6743c9bf58d4bc8c9b1db36 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i" + SHA512 f58e2bebfaa690d324691a6c2067d9a1e5267037ea0f2b397966289253b9efd27d8238aff6206e95262086e1fcddf01ae1a1c49f066a8bbac3aa7908214b9a8f + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i" + SHA512 351ee07b9714a379c311f293d96e99f001c894393c911a421b4c536345d43c02ba2d867e9f657eac104841563045ab8c8edab878e5ffeb1e1a7494375ef58987 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i" + SHA512 7fa12e2207ff154acf2433bbb4f3f47aa71d1fa8789493b688d635d20586b7ead30ee8dcd3b3753992ebbe98062cbde44d02683db1c563d52e35aefd7912a4f2 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_48.i" + FILENAME "opencv-cache/xfeatures2d/vgg/e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i" + SHA512 2403e9119738261a05a3116ca7e5c9e11da452c422f8670cd96ad2cb5bf970f76172e23b9913a3172adf06f2b31bee956f605b66dbccf3d706c4334aff713774 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i" + FILENAME "opencv-cache/xfeatures2d/vgg/7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i" + SHA512 2c954223677905f489b01988389ac80a8caa33bdb57adb3cb9409075012b5e2f472f14966d8be75d75c90c9330f66d59c69539dc6b5a5e265a4d98ff5041f0ea + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i" + FILENAME "opencv-cache/xfeatures2d/vgg/7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i" + SHA512 9931ad1d1bd6d11951ca5357ab0a524f6ff9b33f936ceeafebc0dafb379ec7e2105e467443e9f424f60a0f2f445bdff821ed9e42330abed883227183ebad4a9e + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i" + FILENAME "opencv-cache/xfeatures2d/vgg/151805e03568c9f490a5e3a872777b75-vgg_generated_120.i" + SHA512 ad7c1d2b159ab5790c898815663bb90549f1cf7ade3c82d939d381608b26d26c5b2af01eb1ba21f4d114ced74586ab3fc83f14e2d8cfe4e6faac538aa0e7e255 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat" + FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat" + SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93 + ) + set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") +endif() + +if(BUILD_opencv_dnn) + vcpkg_download_distfile(TINYDNN_ARCHIVE + URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz" + FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz" + SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b + ) +endif() + +if(WITH_IPP) + if(VCPKG_TARGET_IS_OSX) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_mac_intel64_general_20180723.tgz" + FILENAME "opencv-cache/ippicv/fe6b2bb75ae0e3f19ad3ae1a31dfa4a2-ippicv_2019_mac_intel64_general_20180723.tgz" + SHA512 266fe3fecf8e95e1f51c09b65330a577743ef72b423b935d4d1fe8d87f1b4f258c282fe6a18fc805d489592f137ebed37c9f1d1b34026590d9f1ba107015132e + ) + else() + message(WARNING "This target architecture is not supported IPPICV") + set(WITH_IPP OFF) + endif() + elseif(VCPKG_TARGET_IS_LINUX) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz" + FILENAME "opencv-cache/ippicv/c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz" + SHA512 e4ec6b3b9fc03d7b3ae777c2a26f57913e83329fd2f7be26c259b07477ca2a641050b86979e0c96e25aa4c1f9f251b28727690358a77418e76dd910d0f4845c9 + ) + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_ia32_general_20180723.tgz" + FILENAME "opencv-cache/ippicv/4f38432c30bfd6423164b7a24bbc98a0-ippicv_2019_lnx_ia32_general_20180723.tgz" + SHA512 d96d3989928ff11a18e631bf5ecfdedf88fd350162a23fa2c8f7dbc3bf878bf442aff7fb2a07dc56671d7268cc20682055891be75b9834e9694d20173e92b6a3 + ) + else() + message(WARNING "This target architecture is not supported IPPICV") + set(WITH_IPP OFF) + endif() + elseif(VCPKG_TARGET_IS_WINDOWS) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_win_intel64_20180723_general.zip" + FILENAME "opencv-cache/ippicv/1d222685246896fe089f88b8858e4b2f-ippicv_2019_win_intel64_20180723_general.zip" + SHA512 b6c4f2696e2004b8f5471efd9bdc6c684b77830e0533d8880310c0b665b450d6f78e10744c937f5592ab900e187c475e46cb49e98701bb4bcbbc7da77723011d + ) + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_win_ia32_20180723_general.zip" + FILENAME "opencv-cache/ippicv/0157251a2eb9cd63a3ebc7eed0f3e59e-ippicv_2019_win_ia32_20180723_general.zip" + SHA512 c33fd4019c71b064b153e1b25e0307f9c7ada693af8ec910410edeab471c6f14df9b11bf9f5302ceb0fcd4282f5c0b6c92fb5df0e83eb50ed630c45820d1e184 + ) + else() + message(WARNING "This target architecture is not supported IPPICV") + set(WITH_IPP OFF) + endif() + else() + message(WARNING "This target architecture is not supported IPPICV") + set(WITH_IPP OFF) + endif() +endif() + +set(WITH_MSMF ON) +if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP) + set(WITH_MSMF OFF) +endif() + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + if (WITH_TBB) + message(WARNING "TBB is currently unsupported in this build configuration, turning it off") + set(WITH_TBB OFF) + endif() + + if (WITH_VTK) + message(WARNING "VTK is currently unsupported in this build configuration, turning it off") + set(WITH_VTK OFF) + endif() + + if (VCPKG_TARGET_IS_WINDOWS AND BUILD_opencv_ovis) + message(WARNING "OVIS is currently unsupported in this build configuration, turning it off") + set(BUILD_opencv_ovis OFF) + endif() +endif() + +vcpkg_configure_cmake( + PREFER_NINJA + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + ###### ocv_options + -DOpenCV_INSTALL_BINARIES_PREFIX= + -DOPENCV_LIB_INSTALL_PATH=lib + -DOPENCV_3P_LIB_INSTALL_PATH=lib + -DOPENCV_CONFIG_INSTALL_PATH=share/opencv + -DOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG + -DCMAKE_DEBUG_POSTFIX=d + ###### Ungrouped Entries + -DOPENCV_ENABLE_NONFREE=${OPENCV_ENABLE_NONFREE} + -DBUILD_opencv_java=OFF + -Dade_DIR=${ADE_DIR} + ###### Disable build 3rd party libs + -DBUILD_JASPER=OFF + -DBUILD_JPEG=OFF + -DBUILD_OPENEXR=OFF + -DBUILD_PNG=OFF + -DBUILD_TIFF=OFF + -DBUILD_WEBP=OFF + -DBUILD_ZLIB=OFF + -DBUILD_TBB=OFF + -DBUILD_IPP_IW=OFF + -DBUILD_ITT=OFF + ###### Disable build 3rd party components + -DBUILD_PROTOBUF=OFF + ###### OpenCV Build components + -DBUILD_opencv_apps=OFF + -DBUILD_opencv_js=OFF + -DBUILD_ANDROID_PROJECT=OFF + -DBUILD_ANDROID_EXAMPLES=OFF + -DBUILD_DOCS=OFF + -DBUILD_EXAMPLES=OFF + -DBUILD_PACKAGE=OFF + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=OFF + -DBUILD_WITH_DEBUG_INFO=ON + -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} + -DBUILD_JAVA=OFF + -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} + ###### PROTOBUF + -DPROTOBUF_UPDATE_FILES=ON + -DUPDATE_PROTO_FILES=ON + ###### PYLINT/FLAKE8 + -DENABLE_PYLINT=OFF + -DENABLE_FLAKE8=OFF + # CMAKE + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + # ENABLE + -DENABLE_CXX11=ON + ###### OPENCV vars + "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" + ${BUILD_WITH_CONTRIB_FLAG} + -DOPENCV_OTHER_INSTALL_PATH=share/opencv + ###### customized properties + -DWITH_ADE=${WITH_ADE} + -DWITH_CUBLAS=${WITH_CUDA} + -DWITH_CUDA=${WITH_CUDA} + -DWITH_EIGEN=${WITH_EIGEN} + -DWITH_FFMPEG=${WITH_FFMPEG} + -DWITH_GDCM=${WITH_GDCM} + -DWITH_HALIDE=${WITH_HALIDE} + -DWITH_IPP=${WITH_IPP} + -DWITH_JASPER=${WITH_JASPER} + -DWITH_JPEG=${WITH_JPEG} + -DWITH_MSMF=${WITH_MSMF} + -DWITH_OPENEXR=${WITH_OPENEXR} + -DWITH_OPENGL=${WITH_OPENGL} + -DWITH_OPENMP=${WITH_OPENMP} + -DWITH_PNG=${WITH_PNG} + -DWITH_PROTOBUF=ON + -DWITH_QT=${WITH_QT} + -DWITH_TBB=${WITH_TBB} + -DWITH_TIFF=${WITH_TIFF} + -DWITH_VTK=${WITH_VTK} + -DWITH_WEBP=${WITH_WEBP} + ###### WITH PROPERTIES explicitly disabled, they have problems with libraries if already installed by user and that are "involuntarily" found during install + -DWITH_LAPACK=OFF + ###### BUILD_options (mainly modules which require additional libraries) + -DBUILD_opencv_ovis=${BUILD_opencv_ovis} + -DBUILD_opencv_sfm=${BUILD_opencv_sfm} + -DBUILD_opencv_dnn=${BUILD_opencv_dnn} + -DBUILD_opencv_world=${BUILD_opencv_world} + ###### The following modules are disabled for UWP + -DBUILD_opencv_quality=${BUILD_opencv_quality} +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH "share/opencv" TARGET_PATH "share/opencv") +vcpkg_copy_pdbs() + +# OpenCV does not list TIFF as a dependency. +# We explicitly add it to the module file, +# in order to fix unresolved symbols linking problems +# for downstream projects using OpenCV as static library +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) + string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" + "set(CMAKE_IMPORT_FILE_VERSION 1) +find_package(TIFF REQUIRED) +find_package(Protobuf REQUIRED) +if(Protobuf_FOUND) + if(TARGET protobuf::libprotobuf) + add_library(libprotobuf INTERFACE IMPORTED) + set_target_properties(libprotobuf PROPERTIES + INTERFACE_LINK_LIBRARIES protobuf::libprotobuf + ) + else() + add_library(libprotobuf UNKNOWN IMPORTED) + set_target_properties(libprotobuf PROPERTIES + IMPORTED_LOCATION \"${Protobuf_LIBRARY}\" + INTERFACE_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" + ) + endif() +endif() +find_package(HDF5 QUIET) +find_package(Freetype QUIET) +find_package(Ogre QUIET) +find_package(gflags QUIET) +find_package(Ceres QUIET) +find_package(ade QUIET) +find_package(VTK QUIET) +find_package(OpenMP QUIET) +find_package(GDCM QUIET)" OPENCV_MODULES "${OPENCV_MODULES}") + + if(WITH_OPENMP) + string(REPLACE "set_target_properties(opencv_core PROPERTIES + INTERFACE_LINK_LIBRARIES \"" + "set_target_properties(opencv_core PROPERTIES + INTERFACE_LINK_LIBRARIES \"\$;" OPENCV_MODULES "${OPENCV_MODULES}") + endif() + + file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") + + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE ${CURRENT_PACKAGES_DIR}/setup_vars_opencv4.cmd) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/setup_vars_opencv4.cmd) +file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE) + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv4 RENAME copyright) diff --git a/ports/pthreads/CONTROL b/ports/pthreads/CONTROL index 53d5706c7..448fb9951 100644 --- a/ports/pthreads/CONTROL +++ b/ports/pthreads/CONTROL @@ -1,4 +1,4 @@ Source: pthreads -Version: 3.0.0-2 +Version: 3.0.0-3 Homepage: https://sourceware.org/pub/pthreads-win32/ Description: pthreads for windows diff --git a/ports/pthreads/vcpkg-cmake-wrapper.cmake b/ports/pthreads/vcpkg-cmake-wrapper.cmake index 8d3a4e875..12d390a7a 100644 --- a/ports/pthreads/vcpkg-cmake-wrapper.cmake +++ b/ports/pthreads/vcpkg-cmake-wrapper.cmake @@ -70,18 +70,21 @@ if(NOT PThreads4W_STRUCTEXC_LIBRARY) find_library(PThreads4W_STRUCTEXC_LIBRARY_DEBUG NAMES pthreadVSE${PThreads4W_MAJOR_VERSION}d) select_library_configurations(PThreads4W_STRUCTEXC) endif() -if(WIN32) - string( REPLACE ".lib" ".dll" PThreads4W_LIBRARY_RELEASE_DLL "${PThreads4W_LIBRARY_RELEASE}" ) - string( REPLACE ".lib" ".dll" PThreads4W_LIBRARY_DEBUG_DLL "${PThreads4W_LIBRARY_DEBUG}" ) - string( REPLACE ".lib" ".dll" PThreads4W_CXXEXC_LIBRARY_RELEASE_DLL "${PThreads4W_CXXEXC_LIBRARY_RELEASE}" ) - string( REPLACE ".lib" ".dll" PThreads4W_CXXEXC_LIBRARY_DEBUG_DLL "${PThreads4W_CXXEXC_LIBRARY_DEBUG}" ) - string( REPLACE ".lib" ".dll" PThreads4W_STRUCTEXC_LIBRARY_RELEASE_DLL "${PThreads4W_STRUCTEXC_LIBRARY_RELEASE}" ) - string( REPLACE ".lib" ".dll" PThreads4W_STRUCTEXC_LIBRARY_DEBUG_DLL "${PThreads4W_STRUCTEXC_LIBRARY_DEBUG}" ) -endif() find_package_handle_standard_args(PThreads4W DEFAULT_MSG PThreads4W_LIBRARY PThreads4W_CXXEXC_LIBRARY PThreads4W_STRUCTEXC_LIBRARY PThreads4W_INCLUDE_DIR) mark_as_advanced(PThreads4W_INCLUDE_DIR PThreads4W_LIBRARY PThreads4W_CXXEXC_LIBRARY PThreads4W_STRUCTEXC_LIBRARY) +set(PThreads4W_DLL_DIR ${PThreads4W_INCLUDE_DIR}) +list(TRANSFORM PThreads4W_DLL_DIR APPEND "/../bin") +message(STATUS "PThreads4W_DLL_DIR: ${PThreads4W_DLL_DIR}") + +find_file(PThreads4W_LIBRARY_RELEASE_DLL NAMES pthreadVC${PThreads4W_MAJOR_VERSION}.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_LIBRARY_DEBUG_DLL NAMES pthreadVC${PThreads4W_MAJOR_VERSION}d.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_CXXEXC_LIBRARY_RELEASE_DLL NAMES pthreadVCE${PThreads4W_MAJOR_VERSION}.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_CXXEXC_LIBRARY_DEBUG_DLL NAMES pthreadVCE${PThreads4W_MAJOR_VERSION}d.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_STRUCTEXC_LIBRARY_RELEASE_DLL NAMES pthreadVSE${PThreads4W_MAJOR_VERSION}.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_STRUCTEXC_LIBRARY_DEBUG_DLL NAMES pthreadVSE${PThreads4W_MAJOR_VERSION}d.dll PATHS ${PThreads4W_DLL_DIR}) + #Compatibility definitions, deprecated set(PTHREAD_INCLUDE_DIR ${PThreads4W_INCLUDE_DIR} CACHE PATH "") set(PTHREADS_INCLUDE_DIR ${PThreads4W_INCLUDE_DIR} CACHE PATH "") diff --git a/ports/qt5/CONTROL b/ports/qt5/CONTROL index 74b69467a..0f6bdeafd 100644 --- a/ports/qt5/CONTROL +++ b/ports/qt5/CONTROL @@ -2,4 +2,4 @@ Source: qt5 Version: 5.12.3 Homepage: https://www.qt.io/ Description: Qt5 Application Framework -Build-Depends: qt5-3d, qt5-activeqt, qt5-base, qt5-charts, qt5-datavis3d, qt5-declarative, qt5-gamepad, qt5-graphicaleffects, qt5-imageformats, qt5-location, qt5-multimedia, qt5-mqtt, qt5-networkauth, qt5-purchasing, qt5-quickcontrols, qt5-quickcontrols2, qt5-script, qt5-scxml, qt5-sensors, qt5-serialport, qt5-speech, qt5-svg, qt5-tools, qt5-virtualkeyboard, qt5-webchannel, qt5-websockets, qt5-winextras (windows), qt5-macextras (osx), qt5-xmlpatterns +Build-Depends: qt5-3d, qt5-activeqt (windows), qt5-base, qt5-charts, qt5-datavis3d, qt5-declarative, qt5-gamepad, qt5-graphicaleffects, qt5-imageformats, qt5-location, qt5-multimedia, qt5-mqtt, qt5-networkauth, qt5-purchasing, qt5-quickcontrols, qt5-quickcontrols2, qt5-script, qt5-scxml, qt5-sensors, qt5-serialport, qt5-speech, qt5-svg, qt5-tools, qt5-virtualkeyboard, qt5-webchannel, qt5-websockets, qt5-winextras (windows), qt5-macextras (osx), qt5-xmlpatterns diff --git a/ports/zxing-cpp/0001-opencv4-compat.patch b/ports/zxing-cpp/0001-opencv4-compat.patch index 51cec5387..76ad1f4a0 100644 --- a/ports/zxing-cpp/0001-opencv4-compat.patch +++ b/ports/zxing-cpp/0001-opencv4-compat.patch @@ -1,5 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ccb2ba9..5ade734 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,7 @@ + cmake_minimum_required(VERSION 3.0) + + project(zxing) +- ++set(CMAKE_CXX_STANDARD 11) + option(BUILD_TESTING "Enable generation of test targets" OFF) + + set(CMAKE_LIBRARY_PATH /opt/local/lib ${CMAKE_LIBRARY_PATH}) diff --git a/opencv-cli/src/main.cpp b/opencv-cli/src/main.cpp -index 63b6fd3..430dda6 100755 +index 63b6fd3..5900c4f 100644 --- a/opencv-cli/src/main.cpp +++ b/opencv-cli/src/main.cpp @@ -135,14 +135,14 @@ int main(int argc, char** argv) { diff --git a/ports/zxing-cpp/CONTROL b/ports/zxing-cpp/CONTROL index c97ad1734..16343782d 100644 --- a/ports/zxing-cpp/CONTROL +++ b/ports/zxing-cpp/CONTROL @@ -1,4 +1,4 @@ Source: zxing-cpp -Version: 3.3.3-5 +Version: 3.3.3-6 Build-Depends: opencv Description: Barcode detection and decoding library. -- cgit v1.2.3 From 25e948e2ba0ca1d1630040051dd9492375558c22 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Tue, 13 Aug 2019 00:43:59 +0800 Subject: [tiny-bignum-c] Add new port (#7531) * [tiny-bignum-c] Add new port * [tiny-bignum-c] Fix UWP build --- ports/tiny-bignum-c/CMakeLists.txt | 28 ++++++++++++++++++++++++++++ ports/tiny-bignum-c/CONTROL | 4 ++++ ports/tiny-bignum-c/portfile.cmake | 30 ++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 ports/tiny-bignum-c/CMakeLists.txt create mode 100644 ports/tiny-bignum-c/CONTROL create mode 100644 ports/tiny-bignum-c/portfile.cmake diff --git a/ports/tiny-bignum-c/CMakeLists.txt b/ports/tiny-bignum-c/CMakeLists.txt new file mode 100644 index 000000000..8891356d7 --- /dev/null +++ b/ports/tiny-bignum-c/CMakeLists.txt @@ -0,0 +1,28 @@ +cmake_minimum_required(VERSION 3.14) + +project(tiny-bignum-c LANGUAGES C) + +include(GNUInstallDirs) + +add_library(tiny-bignum-c bn.c) + +target_include_directories( + tiny-bignum-c + PUBLIC + $ +) +target_compile_definitions( + tiny-bignum-c + PRIVATE + $<$:_CRT_SECURE_NO_WARNINGS> +) +set_target_properties(tiny-bignum-c PROPERTIES PUBLIC_HEADER bn.h) + +install(TARGETS tiny-bignum-c EXPORT unofficial-tiny-bignum-c-config) + +install( + EXPORT unofficial-tiny-bignum-c-config + NAMESPACE unofficial::tiny-bignum-c:: + DESTINATION share/unofficial-tiny-bignum-c + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ +) diff --git a/ports/tiny-bignum-c/CONTROL b/ports/tiny-bignum-c/CONTROL new file mode 100644 index 000000000..5015bc2d0 --- /dev/null +++ b/ports/tiny-bignum-c/CONTROL @@ -0,0 +1,4 @@ +Source: tiny-bignum-c +Version: 2019-07-31 +Description: Small portable multiple-precision unsigned integer arithmetic in C +Homepage: https://github.com/kokke/tiny-bignum-c diff --git a/ports/tiny-bignum-c/portfile.cmake b/ports/tiny-bignum-c/portfile.cmake new file mode 100644 index 000000000..732271241 --- /dev/null +++ b/ports/tiny-bignum-c/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO kokke/tiny-bignum-c + REF e814d2b6b522ecaa67701453c492811a8adbc555 + SHA512 2cea21588d018bd74fb9a128576764feecd87364d157acee21bd37cd8890c0776b228e25580de88a0c6d723a7b8e88cb8120c8c66b3999661c707b04dffc3f5b + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-${PORT} TARGET_PATH share/unofficial-${PORT}) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) + +# CMake integration test +vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT}) -- cgit v1.2.3 From 5c11033ad7a52960500c8b604a4b7e7b4fb2a1b3 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Mon, 12 Aug 2019 10:22:05 -0700 Subject: Fix formatting, hash override, don't move pre_build_info --- toolsrc/src/vcpkg/binaryparagraph.cpp | 1 - toolsrc/src/vcpkg/build.cpp | 85 ++++++++++++----------------------- 2 files changed, 28 insertions(+), 58 deletions(-) diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index 231380b19..b4cd9cc4b 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 1e5394593..e0dc603ea 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -263,12 +263,11 @@ namespace vcpkg::Build return BinaryParagraph(source_paragraph, feature_paragraph, triplet); } - static std::unique_ptr create_binary_control_file( - const SourceParagraph& source_paragraph, - const Triplet& triplet, - const BuildInfo& build_info, - const PreBuildInfo& pre_build_info, - const std::string& abi_tag) + static std::unique_ptr create_binary_control_file(const SourceParagraph& source_paragraph, + const Triplet& triplet, + const BuildInfo& build_info, + const PreBuildInfo& pre_build_info, + const std::string& abi_tag) { auto bcf = std::make_unique(); BinaryParagraph bpgh(source_paragraph, triplet, abi_tag); @@ -554,12 +553,7 @@ namespace vcpkg::Build PostBuildLint::perform_all_checks(spec, paths, pre_build_info, build_info, config.port_dir); std::unique_ptr bcf = - create_binary_control_file( - *config.scf.core_paragraph, - triplet, - build_info, - std::move(pre_build_info), - abi_tag); + create_binary_control_file(*config.scf.core_paragraph, triplet, build_info, pre_build_info, abi_tag); if (error_count != 0) { @@ -632,9 +626,8 @@ namespace vcpkg::Build { if (fs::is_regular_file(status(port_file))) { - hashes_files.emplace_back( - vcpkg::Hash::get_file_hash(fs, port_file, "SHA1"), - port_file.path().filename().u8string()); + hashes_files.emplace_back(vcpkg::Hash::get_file_hash(fs, port_file, "SHA1"), + port_file.path().filename().u8string()); if (hashes_files.size() > max_port_file_count) { @@ -652,16 +645,12 @@ namespace vcpkg::Build { // We've already sorted by hash so it's safe to write down the // filename, which will be consistent across machines. - abi_tag_entries.emplace_back( - AbiEntry{ - std::move(hash_file.second), - std::move(hash_file.first) - }); + abi_tag_entries.emplace_back(AbiEntry{std::move(hash_file.second), std::move(hash_file.first)}); } } abi_tag_entries.emplace_back(AbiEntry{"cmake", paths.get_tool_version(Tools::CMAKE)}); - + #if defined(_WIN32) abi_tag_entries.emplace_back(AbiEntry{"powershell", paths.get_tool_version("powershell-core")}); #endif @@ -677,11 +666,9 @@ namespace vcpkg::Build if (pre_build_info.public_abi_override) { - abi_tag_entries.emplace_back( - AbiEntry{ - "public_abi_override", - pre_build_info.public_abi_override.value_or_exit(VCPKG_LINE_INFO) - }); + abi_tag_entries.emplace_back(AbiEntry{ + "public_abi_override", + Hash::get_string_hash(pre_build_info.public_abi_override.value_or_exit(VCPKG_LINE_INFO), "SHA1")}); } if (config.build_package_options.use_head_version == UseHeadVersion::YES) @@ -791,16 +778,11 @@ namespace vcpkg::Build if (!required_fspecs.empty()) { - return { - BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES, - std::move(required_fspecs) - }; + return {BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES, std::move(required_fspecs)}; } const PackageSpec spec = - PackageSpec::from_name_and_triplet( - config.scf.core_paragraph->name, - triplet).value_or_exit(VCPKG_LINE_INFO); + PackageSpec::from_name_and_triplet(config.scf.core_paragraph->name, triplet).value_or_exit(VCPKG_LINE_INFO); std::vector dependency_abis; @@ -820,11 +802,7 @@ namespace vcpkg::Build if (!maybe_abi_tag_and_file) { return do_build_package_and_clean_buildtrees( - paths, - pre_build_info, - spec, - pre_build_info.public_abi_override.value_or(AbiTagAndFile{}.tag), - config); + paths, pre_build_info, spec, pre_build_info.public_abi_override.value_or(AbiTagAndFile{}.tag), config); } std::error_code ec; @@ -878,16 +856,10 @@ namespace vcpkg::Build fs.copy_file(abi_tag_and_file->tag_file, abi_file_in_package, fs::stdfs::copy_options::none, ec); Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not copy into file: %s", abi_file_in_package.u8string()); - ExtendedBuildResult result = - do_build_package_and_clean_buildtrees( - paths, - pre_build_info, - spec, - pre_build_info.public_abi_override.value_or(abi_tag_and_file->tag), - config); + ExtendedBuildResult result = do_build_package_and_clean_buildtrees( + paths, pre_build_info, spec, pre_build_info.public_abi_override.value_or(abi_tag_and_file->tag), config); - if (config.build_package_options.binary_caching == BinaryCaching::YES && - result.code == BuildResult::SUCCEEDED) + if (config.build_package_options.binary_caching == BinaryCaching::YES && result.code == BuildResult::SUCCEEDED) { const auto tmp_archive_path = paths.buildtrees / spec.name() / (spec.triplet().to_string() + ".zip"); @@ -898,16 +870,15 @@ namespace vcpkg::Build if (ec) { System::printf(System::Color::warning, - "Failed to store binary cache %s: %s\n", - archive_path.u8string(), - ec.message()); + "Failed to store binary cache %s: %s\n", + archive_path.u8string(), + ec.message()); } else System::printf("Stored binary cache: %s\n", archive_path.u8string()); } else if (config.build_package_options.binary_caching == BinaryCaching::YES && - (result.code == BuildResult::BUILD_FAILED || - result.code == BuildResult::POST_BUILD_CHECKS_FAILED)) + (result.code == BuildResult::BUILD_FAILED || result.code == BuildResult::POST_BUILD_CHECKS_FAILED)) { if (!fs.exists(archive_tombstone_path)) { @@ -922,9 +893,9 @@ namespace vcpkg::Build if (log_file.path().extension() == ".log") { fs.copy_file(log_file.path(), - tmp_log_path_destination / log_file.path().filename(), - fs::stdfs::copy_options::none, - ec); + tmp_log_path_destination / log_file.path().filename(), + fs::stdfs::copy_options::none, + ec); } } @@ -1125,10 +1096,10 @@ namespace vcpkg::Build Checks::exit_with_message( VCPKG_LINE_INFO, "Unknown setting for VCPKG_BUILD_TYPE: %s", variable_value); break; - case VcpkgTripletVar::ENV_PASSTHROUGH : + case VcpkgTripletVar::ENV_PASSTHROUGH: pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";"); break; - case VcpkgTripletVar::PUBLIC_ABI_OVERRIDE : + case VcpkgTripletVar::PUBLIC_ABI_OVERRIDE: pre_build_info.public_abi_override = variable_value.empty() ? nullopt : Optional{variable_value}; break; -- cgit v1.2.3 From 44e08d28e777faa08a773054b2dac2d5cf949569 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Mon, 12 Aug 2019 11:19:16 -0700 Subject: remove uneeded header --- toolsrc/src/vcpkg/binaryparagraph.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp index b4cd9cc4b..8b1886098 100644 --- a/toolsrc/src/vcpkg/binaryparagraph.cpp +++ b/toolsrc/src/vcpkg/binaryparagraph.cpp @@ -1,7 +1,6 @@ #include "pch.h" #include -#include #include #include #include -- cgit v1.2.3 From c605f4eea632878dc495fd280a41734bd14e851f Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Mon, 12 Aug 2019 11:40:03 -0700 Subject: drop uneeded parameter from create_binary_control_file --- toolsrc/src/vcpkg/build.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index e0dc603ea..199a7db1a 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -266,7 +266,6 @@ namespace vcpkg::Build static std::unique_ptr create_binary_control_file(const SourceParagraph& source_paragraph, const Triplet& triplet, const BuildInfo& build_info, - const PreBuildInfo& pre_build_info, const std::string& abi_tag) { auto bcf = std::make_unique(); @@ -553,7 +552,7 @@ namespace vcpkg::Build PostBuildLint::perform_all_checks(spec, paths, pre_build_info, build_info, config.port_dir); std::unique_ptr bcf = - create_binary_control_file(*config.scf.core_paragraph, triplet, build_info, pre_build_info, abi_tag); + create_binary_control_file(*config.scf.core_paragraph, triplet, build_info, abi_tag); if (error_count != 0) { -- cgit v1.2.3 From 8c42dc553ebe078a7ba0aa85fff520f9226dc8cf Mon Sep 17 00:00:00 2001 From: myd7349 Date: Tue, 13 Aug 2019 03:24:53 +0800 Subject: [tgc] Add new port (#7644) --- ports/tgc/CMakeLists.txt | 25 ++++++++++++++++++++++ ports/tgc/CONTROL | 4 ++++ ports/tgc/portfile.cmake | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 ports/tgc/CMakeLists.txt create mode 100644 ports/tgc/CONTROL create mode 100644 ports/tgc/portfile.cmake diff --git a/ports/tgc/CMakeLists.txt b/ports/tgc/CMakeLists.txt new file mode 100644 index 000000000..20f5f0a1a --- /dev/null +++ b/ports/tgc/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.14) + +project(tgc LANGUAGES C) + +include(GNUInstallDirs) + +add_library(tgc tgc.c) + +target_include_directories( + tgc + PUBLIC + $ + $ +) + +set_target_properties(tgc PROPERTIES PUBLIC_HEADER tgc.h) + +install(TARGETS tgc EXPORT unofficial-tgc-config) + +install( + EXPORT unofficial-tgc-config + NAMESPACE unofficial::tgc:: + DESTINATION share/unofficial-tgc + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ +) diff --git a/ports/tgc/CONTROL b/ports/tgc/CONTROL new file mode 100644 index 000000000..85466c147 --- /dev/null +++ b/ports/tgc/CONTROL @@ -0,0 +1,4 @@ +Source: tgc +Version: 2019-08-11 +Description: A tiny garbage collector for C +Homepage: https://github.com/orangeduck/tgc diff --git a/ports/tgc/portfile.cmake b/ports/tgc/portfile.cmake new file mode 100644 index 000000000..ebd9c66c3 --- /dev/null +++ b/ports/tgc/portfile.cmake @@ -0,0 +1,54 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +set(SOURCE_VERSION 35207051557c79ea25942c021fb18856c72af8e3) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/orangeduck-tgc-${SOURCE_VERSION}) + +file(MAKE_DIRECTORY ${SOURCE_PATH}) + +# See ports/nlohmann-json/portfile.cmake +function(download_src SUBPATH SHA512) + vcpkg_download_distfile( + FILE + URLS "https://raw.githubusercontent.com/orangeduck/tgc/master/${SUBPATH}" + FILENAME "orangeduck-tgc-${SOURCE_VERSION}/${SUBPATH}" + SHA512 ${SHA512} + ) + get_filename_component(SUBPATH_DIR "${SOURCE_PATH}/${SUBPATH}" DIRECTORY) + file(COPY ${FILE} DESTINATION ${SUBPATH_DIR}) +endfunction() + +download_src( + tgc.h + 55944055fa83cfc1cbdf026f6ea65d42c1704800d26a7cb6d31a0afcfc61a2ca61d5e539edbf354c4572a885dbc6f38cbb6593cbb66d5dc78eb7d3b66d613dd8 +) +download_src( + tgc.c + 942eefd9b02558f94315023734e9b3b74e326d5a705e9e8809cb4ddb0c6272d8ba9b9715f7d53d7a6151b8cff1377561d169a310c48d200698f9d26ba2c106c3 +) +download_src( + LICENSE.md + 89c46e23f61d2912f47a10e807ee823e78b708804c5cfea2382e1d5a9955f0f1a67e421453b5868db2f71229aae8b83c271bb1cf89631b43e91e5d6c4fcbf1a7 +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_copy_pdbs() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-${PORT} TARGET_PATH share/unofficial-${PORT}) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) + +# CMake integration test +vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT}) -- cgit v1.2.3 From ea2360b7f375072bbc4956045608a217ce37e83b Mon Sep 17 00:00:00 2001 From: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> Date: Mon, 12 Aug 2019 13:22:22 -0700 Subject: [bento4] Add new port (#7595) --- ports/bento4/CONTROL | 5 +++ ports/bento4/LICENSE | 6 ++++ ports/bento4/fix-install-and-c4996-error.patch | 43 ++++++++++++++++++++++++++ ports/bento4/portfile.cmake | 25 +++++++++++++++ 4 files changed, 79 insertions(+) create mode 100644 ports/bento4/CONTROL create mode 100644 ports/bento4/LICENSE create mode 100644 ports/bento4/fix-install-and-c4996-error.patch create mode 100644 ports/bento4/portfile.cmake diff --git a/ports/bento4/CONTROL b/ports/bento4/CONTROL new file mode 100644 index 000000000..eff84ed98 --- /dev/null +++ b/ports/bento4/CONTROL @@ -0,0 +1,5 @@ +Source: bento4 +Version: 1.5.1-628 +Homepage: https://github.com/axiomatic-systems/Bento4 +Description: Bento4 is a C++ class library and tools designed to read and write ISO-MP4 files. This format is defined in international specifications ISO/IEC 14496-12, 14496-14 and 14496-15. + diff --git a/ports/bento4/LICENSE b/ports/bento4/LICENSE new file mode 100644 index 000000000..c1d00b26c --- /dev/null +++ b/ports/bento4/LICENSE @@ -0,0 +1,6 @@ +Bento4 is developed by Axiomatic Systems LLC in San Francisco, California. + +This software is available under two different licenses +For applications that are entirely distributable under the terms of the GPL(https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html), the Bento4 GPL license applies. +For applications that cannot be entirely distributable under the terms of the GPL (either the application, or code modules linked with the application are not compatible with the terms of the GPL licence), a non-GPL commercial license is available from Axiomatic Systems LLC. +Contact Gilles Boccon-Gibod (licensing@axiosys.com or bok@bok.net) for more information. \ No newline at end of file diff --git a/ports/bento4/fix-install-and-c4996-error.patch b/ports/bento4/fix-install-and-c4996-error.patch new file mode 100644 index 000000000..c99fdc411 --- /dev/null +++ b/ports/bento4/fix-install-and-c4996-error.patch @@ -0,0 +1,43 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2f08b2f..fccf2a8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -35,6 +35,8 @@ endif() + + add_library(ap4 STATIC ${AP4_SOURCES}) + ++add_definitions(-D_CRT_SECURE_NO_WARNINGS) ++ + # Includes + include_directories( + ${SOURCE_CORE} +@@ -43,6 +45,14 @@ include_directories( + ${SOURCE_METADATA} + ) + ++# AP4 includes ++file(GLOB AP4_INCLUDES ++ ${SOURCE_CODECS}/*.h ++ ${SOURCE_CORE}/*.h ++ ${SOURCE_CRYPTO}/*.h ++ ${SOURCE_METADATA}/*.h ++) ++ + # Apps + file(GLOB BENTO4_APPS RELATIVE ${SOURCE_ROOT}/Apps ${SOURCE_ROOT}/Apps/*) + foreach(app ${BENTO4_APPS}) +@@ -50,3 +60,13 @@ foreach(app ${BENTO4_APPS}) + add_executable(${binary_name} ${SOURCE_ROOT}/Apps/${app}/${app}.cpp) + target_link_libraries(${binary_name} ap4) + endforeach() ++ ++# Install targets ++install(TARGETS ap4 ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++) ++ ++# Install headers ++install(FILES ${AP4_INCLUDES} DESTINATION include) +\ No newline at end of file diff --git a/ports/bento4/portfile.cmake b/ports/bento4/portfile.cmake new file mode 100644 index 000000000..b485fbb19 --- /dev/null +++ b/ports/bento4/portfile.cmake @@ -0,0 +1,25 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO axiomatic-systems/Bento4 + REF v1.5.1-628 + SHA512 2bf44f55307178cc9128e323904acbfaa2f88e06beff26cf27fc0a7707875942de89778a0ee1a8315ef2c3b19754edad77d32fdb74f3d651f03c2623e7a9122d + HEAD_REF master + PATCHES fix-install-and-c4996-error.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +vcpkg_copy_pdbs() + +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) -- cgit v1.2.3 From 28e510cbcc4a24ee093b1d95ce843c01fa1bb845 Mon Sep 17 00:00:00 2001 From: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> Date: Mon, 12 Aug 2019 13:32:38 -0700 Subject: [dbow2] Add new port (#7552) * [dbow2] Add new port * Fix case sensitive in Linux. --- ports/dbow2/CONTROL | 5 +++++ ports/dbow2/portfile.cmake | 30 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 ports/dbow2/CONTROL create mode 100644 ports/dbow2/portfile.cmake diff --git a/ports/dbow2/CONTROL b/ports/dbow2/CONTROL new file mode 100644 index 000000000..4b5c4c1e0 --- /dev/null +++ b/ports/dbow2/CONTROL @@ -0,0 +1,5 @@ +Source: dbow2 +Version: 2019-08-05 +Homepage: https://github.com/dorian3d/DBoW2 +Description: DBoW2 is an improved version of the DBow library, an open source C++ library for indexing and converting images into a bag-of-word representation. +Build-Depends: opencv diff --git a/ports/dbow2/portfile.cmake b/ports/dbow2/portfile.cmake new file mode 100644 index 000000000..c569e89ac --- /dev/null +++ b/ports/dbow2/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO dorian3d/DBoW2 + REF 4d08e9fc751fac9063874d85a43c1ccdcda8b401 + SHA512 0a4ad8506c731395cb23d96d0e8afe4131576af88468723b9496cdbc95a031089ecdeb61dbb7205cb3a7599acb60a39887fa9852e7d7a690b8152a1bd26d9bd0 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DBUILD_Demo=OFF +) + +vcpkg_install_cmake() + +# Move CMake files to the right place +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/DBoW2) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/DBoW2/DBoW2Config.cmake) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) + -- cgit v1.2.3 From da61a933fc325d99eecc1b39cd29dbe1584e1bf9 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Tue, 13 Aug 2019 05:01:37 +0800 Subject: [tiny-aes-c] Add new port (#7530) --- ports/tiny-aes-c/CMakeLists.txt | 24 ++++++++++++++++++++++++ ports/tiny-aes-c/CONTROL | 4 ++++ ports/tiny-aes-c/portfile.cmake | 30 ++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 ports/tiny-aes-c/CMakeLists.txt create mode 100644 ports/tiny-aes-c/CONTROL create mode 100644 ports/tiny-aes-c/portfile.cmake diff --git a/ports/tiny-aes-c/CMakeLists.txt b/ports/tiny-aes-c/CMakeLists.txt new file mode 100644 index 000000000..6e3222547 --- /dev/null +++ b/ports/tiny-aes-c/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.14) + +project(tiny-aes-c LANGUAGES C ASM) + +include(GNUInstallDirs) + +add_library(tiny-aes-c aes.c) + +target_include_directories( + tiny-aes-c + PUBLIC + $ +) + +install(FILES aes.h aes.hpp DESTINATION include) + +install(TARGETS tiny-aes-c EXPORT unofficial-tiny-aes-c-config) + +install( + EXPORT unofficial-tiny-aes-c-config + NAMESPACE unofficial::tiny-aes-c:: + DESTINATION share/unofficial-tiny-aes-c + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ +) diff --git a/ports/tiny-aes-c/CONTROL b/ports/tiny-aes-c/CONTROL new file mode 100644 index 000000000..e87499074 --- /dev/null +++ b/ports/tiny-aes-c/CONTROL @@ -0,0 +1,4 @@ +Source: tiny-aes-c +Version: 2019-07-31 +Description: Small portable AES128/192/256 in C +Homepage: https://github.com/kokke/tiny-AES-c diff --git a/ports/tiny-aes-c/portfile.cmake b/ports/tiny-aes-c/portfile.cmake new file mode 100644 index 000000000..e1bb5cb31 --- /dev/null +++ b/ports/tiny-aes-c/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO kokke/tiny-AES-c + REF ca85e00de963102d3999ea5fa865c0deff6370d3 + SHA512 538d5d9cee8cecbf801d3553f2425f8a1331b59c652c11ee56c6e46a23450c1e9a59e3e1833f4384b7a4d992a93f30635855a47e2414b9293e0d27c426b6a4f3 + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-${PORT} TARGET_PATH share/unofficial-${PORT}) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/unlicense.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) + +# CMake integration test +vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT}) -- cgit v1.2.3 From 875648e10b2e5b5dfba6be75997171f10cb868ed Mon Sep 17 00:00:00 2001 From: nicole mazzuca Date: Mon, 12 Aug 2019 14:02:59 -0700 Subject: [vcpkg] Fix the build on VS2015 debug (#7637) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The VS2015 standard library requires, in debug mode, a comparison operator on `T × U` and `U × T` to also be a comparison operator on `T × T` and on `U × U`, and so in vcpkg::Install::install_package::intersection_compare, I've added two new `operator()` overloads which take those respectively, on VS2015. Also, `[nodiscard]` was added to somewhere in `vcpkg/base/strings.h`, which gives a warning in VS2015 -- thus, I added the `vcpkg/pragmas.h` include, since that fixes the warning. --- toolsrc/include/vcpkg/base/strings.h | 2 ++ toolsrc/src/vcpkg/install.cpp | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/toolsrc/include/vcpkg/base/strings.h b/toolsrc/include/vcpkg/base/strings.h index dde4e9693..a147a8373 100644 --- a/toolsrc/include/vcpkg/base/strings.h +++ b/toolsrc/include/vcpkg/base/strings.h @@ -1,10 +1,12 @@ #pragma once + #include #include #include #include #include +#include #include diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index 165f13126..974e5f798 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -202,6 +202,12 @@ namespace vcpkg::Install struct intersection_compare { + // The VS2015 standard library requires comparison operators of T and U + // to also support comparison of T and T, and of U and U, due to debug checks. +#if _MSC_VER < 1910 + bool operator()(const std::string& lhs, const std::string& rhs) { return lhs < rhs; } + bool operator()(const file_pack& lhs, const file_pack& rhs) { return lhs.first < rhs.first; } +#endif bool operator()(const std::string& lhs, const file_pack& rhs) { return lhs < rhs.first; } bool operator()(const file_pack& lhs, const std::string& rhs) { return lhs.first < rhs; } }; -- cgit v1.2.3 From 0f3b6fc1638c3c0bf33a560d1ab89215b7af02fd Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Mon, 12 Aug 2019 14:41:53 -0700 Subject: vs 2019 integration bug (#7623) --- scripts/buildsystems/vcpkg.cmake | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index f657e2710..6eb0f62dd 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -38,17 +38,7 @@ else() elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017$") set(_VCPKG_TARGET_TRIPLET_ARCH x86) elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 16 2019$") - if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^[Xx]86$") - set(_VCPKG_TARGET_TRIPLET_ARCH x86) - elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^[Aa][Mm][Dd]64$") - set(_VCPKG_TARGET_TRIPLET_ARCH x64) - elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^[Aa][Rr][Mm]$") - set(_VCPKG_TARGET_TRIPLET_ARCH arm) - elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^[Aa][Rr][Mm]64$") - set(_VCPKG_TARGET_TRIPLET_ARCH arm64) - else() - - endif() + set(_VCPKG_TARGET_TRIPLET_ARCH x86) else() find_program(_VCPKG_CL cl) if(_VCPKG_CL MATCHES "amd64/cl.exe$" OR _VCPKG_CL MATCHES "x64/cl.exe$") -- cgit v1.2.3 From 0e9d0cd89bf0bb13d24ef78ccf3a528215a5dc0b Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Mon, 12 Aug 2019 14:42:45 -0700 Subject: [tiff][tesseract][xerces-c] Disable unmanaged optional dependencies (#7622) --- ports/tesseract/CONTROL | 2 +- ports/tesseract/portfile.cmake | 9 +++++---- ports/tiff/CONTROL | 2 +- ports/tiff/portfile.cmake | 2 ++ ports/xerces-c/CONTROL | 2 +- ports/xerces-c/portfile.cmake | 1 + 6 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ports/tesseract/CONTROL b/ports/tesseract/CONTROL index a31493e76..a24dd9435 100644 --- a/ports/tesseract/CONTROL +++ b/ports/tesseract/CONTROL @@ -1,5 +1,5 @@ Source: tesseract -Version: 4.1.0-1 +Version: 4.1.0-2 Homepage: https://github.com/tesseract-ocr/tesseract Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. Build-Depends: leptonica diff --git a/ports/tesseract/portfile.cmake b/ports/tesseract/portfile.cmake index e9c2ffa9f..08f581cfe 100644 --- a/ports/tesseract/portfile.cmake +++ b/ports/tesseract/portfile.cmake @@ -9,7 +9,7 @@ vcpkg_from_github( SHA512 d617f5c5b826640b2871dbe3d7973bcc5e66fafd837921a20e009d683806ed50f0f258aa455019d99fc54f5cb65c2fa0380e3a3c92b39ab0684b8799c730b09d PATCHES fix-tiff-linkage.patch - fix-text2image.patch + fix-text2image.patch ) # The built-in cmake FindICU is better @@ -38,9 +38,10 @@ vcpkg_configure_cmake( OPTIONS -DSTATIC=ON -DUSE_SYSTEM_ICU=True - #any value for vcpkg leptonica link cmake branch select - -DLeptonica_DIR=YES - ${OPTIONS_LIST} + -DCMAKE_DISABLE_FIND_PACKAGE_LibArchive=ON + -DCMAKE_DISABLE_FIND_PACKAGE_OpenCL=ON + -DLeptonica_DIR=YES + ${OPTIONS_LIST} ) vcpkg_install_cmake() diff --git a/ports/tiff/CONTROL b/ports/tiff/CONTROL index 9c88261a6..7cf6005dc 100644 --- a/ports/tiff/CONTROL +++ b/ports/tiff/CONTROL @@ -1,5 +1,5 @@ Source: tiff -Version: 4.0.10-6 +Version: 4.0.10-7 Build-Depends: zlib, libjpeg-turbo, liblzma Homepage: https://download.osgeo.org/libtiff Description: A library that supports the manipulation of TIFF image files diff --git a/ports/tiff/portfile.cmake b/ports/tiff/portfile.cmake index d36dce238..373ceac7c 100644 --- a/ports/tiff/portfile.cmake +++ b/ports/tiff/portfile.cmake @@ -33,6 +33,8 @@ vcpkg_configure_cmake( -Djpeg12=OFF -Dwebp=OFF -Dzstd=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL=ON + -DCMAKE_DISABLE_FIND_PACKAGE_GLUT=ON ${TIFF_CXX_TARGET} ) diff --git a/ports/xerces-c/CONTROL b/ports/xerces-c/CONTROL index 3d2a4337e..6a7b0d216 100644 --- a/ports/xerces-c/CONTROL +++ b/ports/xerces-c/CONTROL @@ -1,5 +1,5 @@ Source: xerces-c -Version: 3.2.2-10 +Version: 3.2.2-11 Homepage: https://github.com/apache/xerces-c Description: Xerces-C++ is a XML parser, for parsing, generating, manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs. diff --git a/ports/xerces-c/portfile.cmake b/ports/xerces-c/portfile.cmake index 0350d53ed..214cf971b 100644 --- a/ports/xerces-c/portfile.cmake +++ b/ports/xerces-c/portfile.cmake @@ -28,6 +28,7 @@ vcpkg_configure_cmake( -DDISABLE_DOC=ON -DDISABLE_SAMPLES=ON -DCMAKE_DISABLE_FIND_PACKAGE_ICU=${DISABLE_ICU} + -DCMAKE_DISABLE_FIND_PACKAGE_CURL=ON ${XMLCHTYPE} ) -- cgit v1.2.3 From 7a6f716b9eb1e87023e7ee47fc40061962f23ba2 Mon Sep 17 00:00:00 2001 From: Victor Romero Date: Mon, 12 Aug 2019 20:52:13 -0700 Subject: [opencv] Expose all features from opencv4 (#7659) --- ports/opencv/CONTROL | 94 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 89 insertions(+), 5 deletions(-) diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL index bfc7d7f81..ccb7e4659 100644 --- a/ports/opencv/CONTROL +++ b/ports/opencv/CONTROL @@ -1,17 +1,101 @@ Source: opencv -Version: 1 +Version: 4.1.1 Homepage: https://github.com/opencv/opencv Description: Computer vision library -Build-Depends: opencv4[core] +Build-Depends: opencv4 + +Feature: nonfree +Build-Depends: opencv4[nonfree] +Description: opencv nonfree module + +Feature: ade +Build-Depends: opencv4[ade] +Description: graph api Feature: contrib -Description: opencv_contrib module Build-Depends: opencv4[contrib] +Description: opencv_contrib module Feature: cuda -Description: Enable CUDA support in OpenCV Build-Depends: opencv4[cuda] +Description: CUDA support for opencv + +Feature: dnn +Build-Depends: opencv4[dnn] +Description: Enable dnn module + +Feature: eigen +Build-Depends: opencv4[eigen] +Description: Eigen support for opencv Feature: ffmpeg -Description: Enable ffmpeg support in OpenCV Build-Depends: opencv4[ffmpeg] +Description: ffmpeg support for opencv + +Feature: gdcm +Build-Depends: opencv4[gdcm] +Description: GDCM support for opencv + +Feature: ipp +Build-Depends: opencv4[ipp] +Description: Enable Intel Integrated Performance Primitives + +Feature: jasper +Build-Depends: opencv4[jasper] +Description: JPEG 2000 support for opencv + +Feature: jpeg +Build-Depends: opencv4[jpeg] +Description: JPEG support for opencv + +Feature: openexr +Build-Depends: opencv4[openexr] +Description: OpenEXR support for opencv + +Feature: opengl +Build-Depends: opencv4[opengl] +Description: opengl support for opencv + +Feature: openmp +Build-Depends: opencv4[openmp] +Description: Enable openmp support for opencv + +Feature: ovis +Build-Depends: opencv4[ovis] +Description: opencv_ovis module + +Feature: png +Build-Depends: opencv4[png] +Description: PNG support for opencv + +Feature: qt +Build-Depends: opencv4[qt] +Description: Qt GUI support for opencv + +Feature: sfm +Build-Depends: opencv4[sfm] +Description: opencv_sfm module + +Feature: tbb +Build-Depends: opencv4[tbb] +Description: Enable Intel Threading Building Blocks + +Feature: tiff +Build-Depends: opencv4[tiff] +Description: TIFF support for opencv + +Feature: vtk +Build-Depends: opencv4[vtk] +Description: vtk support for opencv + +Feature: webp +Build-Depends: opencv4[webp] +Description: WebP support for opencv + +Feature: halide +Build-Depends: opencv4[halide] +Description: Halide support for opencv + +Feature: world +Build-Depends: opencv4[world] +Description: Compile to a single package support for opencv -- cgit v1.2.3 From 80f887934cd3157929e5508977116875427556d0 Mon Sep 17 00:00:00 2001 From: Genos <53925101+g-e-n-o-s@users.noreply.github.com> Date: Tue, 13 Aug 2019 10:31:37 -0700 Subject: [drlibs] Add new port (#7656) --- ports/drlibs/CONTROL | 4 ++++ ports/drlibs/portfile.cmake | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 ports/drlibs/CONTROL create mode 100644 ports/drlibs/portfile.cmake diff --git a/ports/drlibs/CONTROL b/ports/drlibs/CONTROL new file mode 100644 index 000000000..284f99c35 --- /dev/null +++ b/ports/drlibs/CONTROL @@ -0,0 +1,4 @@ +Source: drlibs +Version: 2019-08-12 +Homepage: https://github.com/mackron/dr_libs +Description: A collection of public domain single-file libraries for C/C++. diff --git a/ports/drlibs/portfile.cmake b/ports/drlibs/portfile.cmake new file mode 100644 index 000000000..3c50aff94 --- /dev/null +++ b/ports/drlibs/portfile.cmake @@ -0,0 +1,17 @@ +#header-only library +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mackron/dr_libs + REF b777360d73c10a367d268a8bb51bc0d1f36020b5 + SHA512 65d2c01ea72868e1212dc5af6b8bad7603a40e030a6c6ee59ae4e723de9c974ed31385475e2bcf0f22d424666fc70c7851c3998d0c51afc845785e71ed267a8f + HEAD_REF master +) + +# Put the licence file where vcpkg expects it +file(COPY ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/drlibs) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/drlibs/README.md ${CURRENT_PACKAGES_DIR}/share/drlibs/copyright) + +# Copy the header files +file(GLOB HEADER_FILES ${SOURCE_PATH}/*.h) +file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include) -- cgit v1.2.3 From 157ddb24bce7d013388207ffc51c2f993c9de5b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Blissing?= Date: Tue, 13 Aug 2019 19:37:01 +0200 Subject: Update osg version to 3.6.4 (#7653) --- ports/osg/CONTROL | 4 ++-- ports/osg/portfile.cmake | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ports/osg/CONTROL b/ports/osg/CONTROL index 9b981af9d..f677e0284 100644 --- a/ports/osg/CONTROL +++ b/ports/osg/CONTROL @@ -1,8 +1,8 @@ Source: osg -Version: 3.6.3-1 +Version: 3.6.4 Homepage: https://github.com/openscenegraph/OpenSceneGraph Description: The OpenSceneGraph is an open source high performance 3D graphics toolkit. -Build-Depends: freetype, jasper, openexr, zlib, gdal, giflib, libjpeg-turbo, libpng, tiff +Build-Depends: freetype, jasper, openexr, zlib, gdal, giflib, libjpeg-turbo, libpng, tiff, fontconfig Feature: collada Description: Support for Collada (.dae) files diff --git a/ports/osg/portfile.cmake b/ports/osg/portfile.cmake index cb759ca1a..8c6b5f299 100644 --- a/ports/osg/portfile.cmake +++ b/ports/osg/portfile.cmake @@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openscenegraph/OpenSceneGraph - REF OpenSceneGraph-3.6.3 - SHA512 5d66002cffa935ce670a119ffaebd8e4709acdf79ae2b34b37ad9df284ec8a1a74fee5a7a4109fbf3da6b8bd857960f2b7ae68c4c2e26036edbf484fccf08322 + REF OpenSceneGraph-3.6.4 + SHA512 7cb34fc279ba62a7d7177d3f065f845c28255688bd29026ffb305346e1bb2e515a22144df233e8a7246ed392044ee3e8b74e51bf655282d33ab27dcaf12f4b19 HEAD_REF master PATCHES collada.patch @@ -38,12 +38,12 @@ file(REMOVE_RECURSE ${OSG_TOOLS}) file(GLOB OSG_TOOLS_DBG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) file(REMOVE_RECURSE ${OSG_TOOLS_DBG}) -file(GLOB OSG_PLUGINS_DBG ${CURRENT_PACKAGES_DIR}/debug/bin/osgPlugins-3.6.3/*.dll) -file(COPY ${OSG_PLUGINS_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/osg/osgPlugins-3.6.3) -file(GLOB OSG_PLUGINS_REL ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.6.3/*.dll) -file(COPY ${OSG_PLUGINS_REL} DESTINATION ${OSG_TOOL_PATH}/osgPlugins-3.6.3) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/osgPlugins-3.6.3/) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.6.3/) +file(GLOB OSG_PLUGINS_DBG ${CURRENT_PACKAGES_DIR}/debug/bin/osgPlugins-3.6.4/*.dll) +file(COPY ${OSG_PLUGINS_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/osg/osgPlugins-3.6.4) +file(GLOB OSG_PLUGINS_REL ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.6.4/*.dll) +file(COPY ${OSG_PLUGINS_REL} DESTINATION ${OSG_TOOL_PATH}/osgPlugins-3.6.4) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/osgPlugins-3.6.4/) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.6.4/) # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/osg) -- cgit v1.2.3 From 69f7376b22b43089567bfa074f8479b4d815989d Mon Sep 17 00:00:00 2001 From: Bill Avery Date: Tue, 13 Aug 2019 10:42:47 -0700 Subject: [cppgraphqlgen] Update with matching PEGTL (#7639) * [cppgraphqlgen] Update with matching PEGTL * Pick up cppgraphqlgen v3.0.2 --- ports/cppgraphqlgen/CONTROL | 2 +- ports/cppgraphqlgen/portfile.cmake | 6 +++--- ports/pegtl/CONTROL | 2 +- ports/pegtl/portfile.cmake | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ports/cppgraphqlgen/CONTROL b/ports/cppgraphqlgen/CONTROL index d3f13de82..67b17b7fc 100644 --- a/ports/cppgraphqlgen/CONTROL +++ b/ports/cppgraphqlgen/CONTROL @@ -1,4 +1,4 @@ Source: cppgraphqlgen -Version: 3.0.0 +Version: 3.0.2 Build-Depends: boost-filesystem (!uwp&!windows), boost-program-options, pegtl, rapidjson Description: C++ GraphQL schema service generator diff --git a/ports/cppgraphqlgen/portfile.cmake b/ports/cppgraphqlgen/portfile.cmake index 5c92e1a60..b4f22868e 100644 --- a/ports/cppgraphqlgen/portfile.cmake +++ b/ports/cppgraphqlgen/portfile.cmake @@ -2,9 +2,9 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH - REPO Microsoft/cppgraphqlgen - REF v3.0.0 - SHA512 26da9b559b7220f44bc1aabd68250a4cf869329a5496ac439f9bc7cea5137e0ef9068dc6e868adf441cd5c212f21dd08f0a21db393eb4c237525961eefd49389 + REPO microsoft/cppgraphqlgen + REF v3.0.2 + SHA512 ae2e94e7cb8853c88d2dbf226dec52e30fb16d1889f14f94d2a585dd2be1985e58ac8c16765b970c4417c08d519b32514080d90bfab7e34b66dc7c32b9f9caa6 HEAD_REF master ) diff --git a/ports/pegtl/CONTROL b/ports/pegtl/CONTROL index f7f685e0d..52906a8c1 100644 --- a/ports/pegtl/CONTROL +++ b/ports/pegtl/CONTROL @@ -1,3 +1,3 @@ Source: pegtl -Version: 3.0.0-pre +Version: 3.0.0-pre-697aaa0 Description: The Parsing Expression Grammar Template Library (PEGTL) is a zero-dependency C++ header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG). diff --git a/ports/pegtl/portfile.cmake b/ports/pegtl/portfile.cmake index f12b170b5..3e3f92f97 100644 --- a/ports/pegtl/portfile.cmake +++ b/ports/pegtl/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO taocpp/pegtl - REF c5d158ffab4baa0e1c3f6d54c0684f05a2412f74 - SHA512 efd5d36ca14c27948005cd034e72e24855f6046141c316a1d4b7186af9753fd035dab8303dc86e2f2de1b185f5fa3f5d678672892b1fc4ab69e827492a94e897 + REF 697aaa06564c6ea9d13f95de081a2d2d46b39160 + SHA512 453821966526569a2d1842ec0bebe6f65dee0241d6ab7d38255726243326356b6a972bf5ca58168e94f51dd87c74ce17fdefffd19fe67570fe9dc52f1f6a4f16 HEAD_REF master ) -- cgit v1.2.3 From d9eeafec4f98c9bda26047f535f71d49950fad66 Mon Sep 17 00:00:00 2001 From: Genos <53925101+g-e-n-o-s@users.noreply.github.com> Date: Tue, 13 Aug 2019 10:44:54 -0700 Subject: [monkeys-audio] Update library to 4.8.3 (#7634) * Update portfile.cmake * Update CONTROL --- ports/monkeys-audio/CONTROL | 2 +- ports/monkeys-audio/portfile.cmake | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ports/monkeys-audio/CONTROL b/ports/monkeys-audio/CONTROL index 2b6447dbe..fdd72f340 100644 --- a/ports/monkeys-audio/CONTROL +++ b/ports/monkeys-audio/CONTROL @@ -1,5 +1,5 @@ Source: monkeys-audio -Version: 4.3.3-1 +Version: 4.8.3 Homepage: https://monkeysaudio.com Description: Monkey's Audio is an excellent audio compression tool which has multiple advantages over traditional methods. Audio files compressed with it ends with .ape extension. diff --git a/ports/monkeys-audio/portfile.cmake b/ports/monkeys-audio/portfile.cmake index fbde63a4a..719db6e29 100644 --- a/ports/monkeys-audio/portfile.cmake +++ b/ports/monkeys-audio/portfile.cmake @@ -6,17 +6,17 @@ endif() vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_STATIC_CRT) -if(EXISTS ${CURRENT_BUILDTREES_DIR}/src/MAC_SDK_433.zip.extracted) +if(EXISTS ${CURRENT_BUILDTREES_DIR}/src/MAC_SDK_483.zip.extracted) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src) endif() set(VERSION 4.7) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/433) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/483) vcpkg_download_distfile(ARCHIVE - URLS "http://monkeysaudio.com/files/MAC_SDK_433.zip" - FILENAME "MAC_SDK_433.zip" - SHA512 957ba262da29a8542ab82dc828328b19bf80ecf0d09165db935924b390cb6a3a2d9303a2e07b86b28ecf4210a66dd5c4be840205a9f09518189101033f1a13c8 + URLS "http://monkeysaudio.com/files/MAC_SDK_483.zip" + FILENAME "MAC_SDK_483.zip" + SHA512 c080aa87997def3b970050f6bd334b6908884cc521f192abc02d774a8b3067207781dcab30f052015d4ae891fc6390c6f0b33ed319d9d7fd0850dab6fcded8f0 ) vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_PATH}) @@ -29,7 +29,7 @@ file(REMOVE vcpkg_install_msbuild( SOURCE_PATH ${SOURCE_PATH} - PROJECT_SUBPATH Source/Projects/VS2017/Console/Console.vcxproj + PROJECT_SUBPATH Source/Projects/VS2019/Console/Console.vcxproj ) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include) -- cgit v1.2.3 From e0989ba7aa0b9aa097b567044fabce4d6ac740a4 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Wed, 14 Aug 2019 01:47:47 +0800 Subject: [nt-wrapper] Add new port (#7633) --- ports/nt-wrapper/CONTROL | 4 ++++ ports/nt-wrapper/portfile.cmake | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 ports/nt-wrapper/CONTROL create mode 100644 ports/nt-wrapper/portfile.cmake diff --git a/ports/nt-wrapper/CONTROL b/ports/nt-wrapper/CONTROL new file mode 100644 index 000000000..cd16e9541 --- /dev/null +++ b/ports/nt-wrapper/CONTROL @@ -0,0 +1,4 @@ +Source: nt-wrapper +Version: 2019-08-10 +Description: A header only wrapper library around native windows system APIs +Homepage: https://github.com/JustasMasiulis/nt_wrapper diff --git a/ports/nt-wrapper/portfile.cmake b/ports/nt-wrapper/portfile.cmake new file mode 100644 index 000000000..7ed8146ff --- /dev/null +++ b/ports/nt-wrapper/portfile.cmake @@ -0,0 +1,25 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO JustasMasiulis/nt_wrapper + REF 6a150292a43f6aea35918a5c5e93a66c334ea301 + SHA512 fb8a1c4c934d3cb48a76a935ba69fd51ec2e6b66f5c265a8da9456691f933c6080057fec9a714f252c39d02525603b993cecd905452598058254ac9318655c4f + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DBUILD_TESTING=OFF +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) -- cgit v1.2.3 From fed6f0422d9b18e769fff98db10c316f5977b92b Mon Sep 17 00:00:00 2001 From: myd7349 Date: Wed, 14 Aug 2019 01:49:08 +0800 Subject: [xorstr] Add new port (#7631) --- ports/xorstr/CONTROL | 4 ++++ ports/xorstr/portfile.cmake | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 ports/xorstr/CONTROL create mode 100644 ports/xorstr/portfile.cmake diff --git a/ports/xorstr/CONTROL b/ports/xorstr/CONTROL new file mode 100644 index 000000000..f3555680c --- /dev/null +++ b/ports/xorstr/CONTROL @@ -0,0 +1,4 @@ +Source: xorstr +Version: 2019-08-10 +Description: Heavily vectorized c++17 compile time string encryption +Homepage: https://github.com/JustasMasiulis/xorstr diff --git a/ports/xorstr/portfile.cmake b/ports/xorstr/portfile.cmake new file mode 100644 index 000000000..3d97ba190 --- /dev/null +++ b/ports/xorstr/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO JustasMasiulis/xorstr + REF 5d7371dcb70601ce9c252d475cc3dc6cf8f1e0db + SHA512 7625d2ebdb95a5414f0a1ac7ac8951b612d5159be5eccce4e13b88a4d17ffa3c65ff81ce5df5b64064b5712da7238ec1f564d2c213852731cad30c367ebad72e + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/include/xorstr.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) -- cgit v1.2.3 From 04b7dd89d84b9d6b4e6d98fa98a52de55f3980f0 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Wed, 14 Aug 2019 01:49:32 +0800 Subject: [lazy-importer] Add new port (#7630) --- ports/lazy-importer/CONTROL | 4 ++++ ports/lazy-importer/portfile.cmake | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 ports/lazy-importer/CONTROL create mode 100644 ports/lazy-importer/portfile.cmake diff --git a/ports/lazy-importer/CONTROL b/ports/lazy-importer/CONTROL new file mode 100644 index 000000000..c46a768b0 --- /dev/null +++ b/ports/lazy-importer/CONTROL @@ -0,0 +1,4 @@ +Source: lazy-importer +Version: 2019-08-10 +Description: Library for importing functions from dlls in a hidden, reverse engineer unfriendly way +Homepage: https://github.com/JustasMasiulis/lazy_importer diff --git a/ports/lazy-importer/portfile.cmake b/ports/lazy-importer/portfile.cmake new file mode 100644 index 000000000..076bb7c34 --- /dev/null +++ b/ports/lazy-importer/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO JustasMasiulis/lazy_importer + REF 88186bfce98845eba9050f7597332754f621c0fc + SHA512 04789501ea9c9cf600326b3f8292c441f54d0915452eb29b063fe0a8d56a31157cf338a4ec44aa658e397d754b6593ece51af2736d5980e72d67359a1abc2625 + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/include/lazy_importer.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) -- cgit v1.2.3 From fc7b1ff7a7a9dc2edf432f28fdcbfdfef790c5fb Mon Sep 17 00:00:00 2001 From: Ehsan Date: Tue, 13 Aug 2019 22:19:59 +0430 Subject: [ade] Update library to 0.1.1f (#7628) --- ports/ade/CONTROL | 2 +- ports/ade/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/ade/CONTROL b/ports/ade/CONTROL index 28fd3328f..fd8286ecd 100644 --- a/ports/ade/CONTROL +++ b/ports/ade/CONTROL @@ -1,3 +1,3 @@ Source: ade -Version: 0.1.1e +Version: 0.1.1f Description: ADE Framework is a graph construction, manipulation, and processing framework. ADE Framework is suitable for organizing data flow processing and execution. \ No newline at end of file diff --git a/ports/ade/portfile.cmake b/ports/ade/portfile.cmake index 198e64b00..83d8503b8 100644 --- a/ports/ade/portfile.cmake +++ b/ports/ade/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opencv/ade - REF v0.1.1e - SHA512 6271b3a6d23b155757a47b21f70cb169b0469501bd1a7c99aa91a76117387840e02b4c70dc4069b7c50408f760b9a7ea77527a30b4691048a1ee55dd94988dd5 + REF v0.1.1f + SHA512 fbdec8f3d5811a573abb81f1ceb6fb8d40274439013f749645db5430c6d9cdc52227c25203f1a68177b263d648bb65197ea7c2bea7871264a06585e59892631c HEAD_REF master ) -- cgit v1.2.3 From 886dad5911a54f70d9922c59453588637da0e0d6 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Wed, 14 Aug 2019 01:50:49 +0800 Subject: [plf-colony][plf-list][plf-nanotimer][plf-stack] Add new ports (#7627) --- ports/plf-colony/CONTROL | 4 ++++ ports/plf-colony/portfile.cmake | 16 ++++++++++++++++ ports/plf-list/CONTROL | 4 ++++ ports/plf-list/portfile.cmake | 16 ++++++++++++++++ ports/plf-nanotimer/CONTROL | 4 ++++ ports/plf-nanotimer/portfile.cmake | 16 ++++++++++++++++ ports/plf-stack/CONTROL | 4 ++++ ports/plf-stack/portfile.cmake | 16 ++++++++++++++++ 8 files changed, 80 insertions(+) create mode 100644 ports/plf-colony/CONTROL create mode 100644 ports/plf-colony/portfile.cmake create mode 100644 ports/plf-list/CONTROL create mode 100644 ports/plf-list/portfile.cmake create mode 100644 ports/plf-nanotimer/CONTROL create mode 100644 ports/plf-nanotimer/portfile.cmake create mode 100644 ports/plf-stack/CONTROL create mode 100644 ports/plf-stack/portfile.cmake diff --git a/ports/plf-colony/CONTROL b/ports/plf-colony/CONTROL new file mode 100644 index 000000000..384ce2d19 --- /dev/null +++ b/ports/plf-colony/CONTROL @@ -0,0 +1,4 @@ +Source: plf-colony +Version: 2019-08-10 +Description: An unordered data container providing fast iteration/insertion/erasure while maintaining pointer validity to non-erased elements +Homepage: https://www.plflib.org/ diff --git a/ports/plf-colony/portfile.cmake b/ports/plf-colony/portfile.cmake new file mode 100644 index 000000000..eef608ce8 --- /dev/null +++ b/ports/plf-colony/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mattreecebentley/plf_colony + REF 81fe8c4daf433491f14248837ee8ed5cf447c856 + SHA512 a6ae03d383c94b0a758e7aedee2838d46b3665881e2c0823b064a3579140a351d96fec66d456de5843b6c4c8d2f6f6efac5f547841c08edd349b0f153e9c4871 + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/plf_colony.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/plf-list/CONTROL b/ports/plf-list/CONTROL new file mode 100644 index 000000000..338eec5ea --- /dev/null +++ b/ports/plf-list/CONTROL @@ -0,0 +1,4 @@ +Source: plf-list +Version: 2019-08-10 +Description: A drop-in replacement for std::list with 293% faster insertion, 57% faster erasure, 17% faster iteration and 77% faster sorting on average +Homepage: https://www.plflib.org/ diff --git a/ports/plf-list/portfile.cmake b/ports/plf-list/portfile.cmake new file mode 100644 index 000000000..f9efd1e61 --- /dev/null +++ b/ports/plf-list/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mattreecebentley/plf_list + REF 42fcfca9890598d1c1fda45eb9dbe2b2b2d4dd2b + SHA512 879157aac16dc1b76db942a8ddf25dc33ede10e769496b7f300a070913c6c6946cb40853dd3071ecf3d9c870e1dee5d420d42fbb388e83361235659171f6bd44 + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/plf_list.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/plf-nanotimer/CONTROL b/ports/plf-nanotimer/CONTROL new file mode 100644 index 000000000..10ac0ac2c --- /dev/null +++ b/ports/plf-nanotimer/CONTROL @@ -0,0 +1,4 @@ +Source: plf-nanotimer +Version: 2019-08-10 +Description: A simple C++ 03/11/etc timer class for ~microsecond-precision cross-platform benchmarking +Homepage: https://www.plflib.org/ diff --git a/ports/plf-nanotimer/portfile.cmake b/ports/plf-nanotimer/portfile.cmake new file mode 100644 index 000000000..4c25a2c73 --- /dev/null +++ b/ports/plf-nanotimer/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mattreecebentley/plf_nanotimer + REF bc8b44d2befc4395f63701c923ece89835d8415c + SHA512 ec816e82ab855dd7029b03931ffb1e945d3e77f7bb446c4985c4a8404afe20e9de8fac02f64459c47c34e31c06fa8838dba310263197d309e39ec1b0b5da0b6d + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/plf_nanotimer.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/plf-stack/CONTROL b/ports/plf-stack/CONTROL new file mode 100644 index 000000000..d0a40be45 --- /dev/null +++ b/ports/plf-stack/CONTROL @@ -0,0 +1,4 @@ +Source: plf-stack +Version: 2019-08-10 +Description: A C++ data container replicating std::stack functionality but with better performance +Homepage: https://www.plflib.org/ diff --git a/ports/plf-stack/portfile.cmake b/ports/plf-stack/portfile.cmake new file mode 100644 index 000000000..11a9fb068 --- /dev/null +++ b/ports/plf-stack/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mattreecebentley/plf_stack + REF 9d046154d8954eafc12f8d4845505beec8c4a5da + SHA512 2202bbff0e93bf515ae7b237551d084dcba9b870bca82f49b4e1a64446f4574079b0cb45fb91f0ad0472e008f21ad014464b45e307ffa6dab19affc6dc38626a + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/plf_stack.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) -- cgit v1.2.3 From ed027d4956f34f874d3248cc74754128482eb24e Mon Sep 17 00:00:00 2001 From: myd7349 Date: Wed, 14 Aug 2019 01:51:47 +0800 Subject: [tiny-regex-c] Add new port (#7626) --- ports/tiny-regex-c/CMakeLists.txt | 24 ++++++++++++++++++++++++ ports/tiny-regex-c/CONTROL | 4 ++++ ports/tiny-regex-c/portfile.cmake | 30 ++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 ports/tiny-regex-c/CMakeLists.txt create mode 100644 ports/tiny-regex-c/CONTROL create mode 100644 ports/tiny-regex-c/portfile.cmake diff --git a/ports/tiny-regex-c/CMakeLists.txt b/ports/tiny-regex-c/CMakeLists.txt new file mode 100644 index 000000000..44c7ad710 --- /dev/null +++ b/ports/tiny-regex-c/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.14) + +project(tiny-regex-c LANGUAGES C) + +include(GNUInstallDirs) + +add_library(tiny-regex-c re.c) + +target_include_directories( + tiny-regex-c + PUBLIC + $ +) + +set_target_properties(tiny-regex-c PROPERTIES PUBLIC_HEADER re.h) + +install(TARGETS tiny-regex-c EXPORT unofficial-tiny-regex-c-config) + +install( + EXPORT unofficial-tiny-regex-c-config + NAMESPACE unofficial::tiny-regex-c:: + DESTINATION share/unofficial-tiny-regex-c + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ +) diff --git a/ports/tiny-regex-c/CONTROL b/ports/tiny-regex-c/CONTROL new file mode 100644 index 000000000..12b5ea0c5 --- /dev/null +++ b/ports/tiny-regex-c/CONTROL @@ -0,0 +1,4 @@ +Source: tiny-regex-c +Version: 2019-07-31 +Description: A small regex implementation in C +Homepage: https://github.com/kokke/tiny-regex-c diff --git a/ports/tiny-regex-c/portfile.cmake b/ports/tiny-regex-c/portfile.cmake new file mode 100644 index 000000000..2e21fb433 --- /dev/null +++ b/ports/tiny-regex-c/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO kokke/tiny-regex-c + REF d3058f271f7a06ff298dff0a6a9a1e0753a5fa17 + SHA512 bd524c63850b08f02fa5f7725fcde85cbd9c9c6ec8a804f2570df0e04518961a758c017cdb33ebaf72df1abca42ba3b82681655404bc26e6142b5a52a0534ab4 + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-${PORT} TARGET_PATH share/unofficial-${PORT}) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) + +# CMake integration test +vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT}) -- cgit v1.2.3 From 1516bfddf78455788f0cefe228a30ce7b965b652 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Wed, 14 Aug 2019 02:44:11 +0800 Subject: [hayai] Add new port (#7624) * [hayai] Add new port * [hayai] Fixup Linux CMake targets * [hayai] Fix UWP build * [hayai] Fixup CMake targets on Linux --- ports/hayai/CONTROL | 4 +++ ports/hayai/portfile.cmake | 70 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 ports/hayai/CONTROL create mode 100644 ports/hayai/portfile.cmake diff --git a/ports/hayai/CONTROL b/ports/hayai/CONTROL new file mode 100644 index 000000000..7943d301b --- /dev/null +++ b/ports/hayai/CONTROL @@ -0,0 +1,4 @@ +Source: hayai +Version: 2019-08-10 +Description: C++ benchmarking framework +Homepage: https://github.com/nickbruun/hayai diff --git a/ports/hayai/portfile.cmake b/ports/hayai/portfile.cmake new file mode 100644 index 000000000..c175d6633 --- /dev/null +++ b/ports/hayai/portfile.cmake @@ -0,0 +1,70 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO nickbruun/hayai + REF 0234860c7a851362ab33efc6c018203cded3eb48 + SHA512 e4c65d834eddaeb77e73a3bc24645a531b93d26e32ff1daffbe71c579b76b4b8b4865f6c7ea07b378cafbe2da3a698414d4135f28fc9821eef995ed78d0987f2 + HEAD_REF master +) + +if(VCPKG_TARGET_IS_UWP) + set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS") + set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS") +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DINSTALL_HAYAI=ON + -DBUILD_HAYAI_TESTS=OFF + -DBUILD_HAYAI_SAMPLES=OFF +) + +vcpkg_install_cmake() + +if(EXISTS ${CURRENT_PACKAGES_DIR}/CMake) + vcpkg_fixup_cmake_targets(CONFIG_PATH CMake) +elseif(EXISTS ${CURRENT_PACKAGES_DIR}/lib/CMake/${PORT}) + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/CMake/${PORT}) +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle manual-link libraries +if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/hayai_main.lib) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(RENAME + ${CURRENT_PACKAGES_DIR}/debug/lib/hayai_main.lib + ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/hayai_main.lib + ) + + vcpkg_replace_string( + ${CURRENT_PACKAGES_DIR}/share/${PORT}/hayai-targets-debug.cmake + "\${CMAKE_CURRENT_LIST_DIR}/../../debug/lib/hayai_main.lib" + "\${CMAKE_CURRENT_LIST_DIR}/../../debug/lib/manual-link/hayai_main.lib" + ) +endif() + +if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/hayai_main.lib) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(RENAME + ${CURRENT_PACKAGES_DIR}/lib/hayai_main.lib + ${CURRENT_PACKAGES_DIR}/lib/manual-link/hayai_main.lib + ) + + vcpkg_replace_string( + ${CURRENT_PACKAGES_DIR}/share/${PORT}/hayai-targets-release.cmake + "\${CMAKE_CURRENT_LIST_DIR}/../../lib/hayai_main.lib" + "\${CMAKE_CURRENT_LIST_DIR}/../../lib/manual-link/hayai_main.lib" + ) +endif() + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) + +# CMake integration test +vcpkg_test_cmake(PACKAGE_NAME ${PORT}) -- cgit v1.2.3 From 86ec91b6ee56ab59a03d966fc3e38e74f4382874 Mon Sep 17 00:00:00 2001 From: Lily <47812810+wangli28@users.noreply.github.com> Date: Wed, 14 Aug 2019 05:12:28 +0800 Subject: [yasm] Add new port (#7478) * [yasm] Add new port * [yasm] Add new port * Remove patch; Use port var; use vcpkg_add_to_path --- ports/yasm/CONTROL | 4 ++++ ports/yasm/portfile.cmake | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 ports/yasm/CONTROL create mode 100644 ports/yasm/portfile.cmake diff --git a/ports/yasm/CONTROL b/ports/yasm/CONTROL new file mode 100644 index 000000000..5cb349270 --- /dev/null +++ b/ports/yasm/CONTROL @@ -0,0 +1,4 @@ +Source: yasm +Version: 1.3.0 +Homepage: https://github.com/yasm/yasm +Description: Yasm is a complete rewrite of the NASM assembler under the “new†BSD License. diff --git a/ports/yasm/portfile.cmake b/ports/yasm/portfile.cmake new file mode 100644 index 000000000..5dfe2a51c --- /dev/null +++ b/ports/yasm/portfile.cmake @@ -0,0 +1,51 @@ +include(vcpkg_common_functions) + +if (NOT VCPKG_TARGET_IS_WINDOWS) + message(FATAL_ERROR "${PORT} only supports windows") +elseif (TRIPLET_SYSTEM_ARCH MATCHES "arm") + message(FATAL_ERROR "ARM is currently not supported.") +elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) + message(FATAL_ERROR "Error: UWP builds are currently not supported.") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO yasm/yasm + REF v1.3.0 + SHA512 f5053e2012e0d2ce88cc1cc06e3bdb501054aed5d1f78fae40bb3e676fe2eb9843d335a612d7614d99a2b9e49dca998d57f61b0b89fac8225afa4ae60ae848f1 + HEAD_REF master +) + +vcpkg_find_acquire_program(PYTHON2) +get_filename_component(PYTHON_PATH ${PYTHON2} DIRECTORY) +vcpkg_add_to_path("${PYTHON_PATH}") + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(REMOVE + ${CURRENT_PACKAGES_DIR}/debug/bin/vsyasm.exe + ${CURRENT_PACKAGES_DIR}/debug/bin/yasm.exe + ${CURRENT_PACKAGES_DIR}/debug/bin/ytasm.exe +) + +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vsyasm.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vsyasm.exe) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/yasm.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/yasm.exe) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/ytasm.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/ytasm.exe) + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) \ No newline at end of file -- cgit v1.2.3 From 56136b326897dc36d172e13f712879cca127932e Mon Sep 17 00:00:00 2001 From: RT222 Date: Tue, 13 Aug 2019 23:27:28 +0200 Subject: [directxtk][directxtk12][directxmesh][directxtex] Updated to June version and improved platform toolset support (#7665) * [directxtk][directxtk12][directxmesh][directxtex] Updated to June version and improved platform toolset support * [directxtk12] Fixed build error on x86 platform * [directxmesh][directxtex] Fixed UWP builds failure --- ports/directxmesh/CONTROL | 2 +- ports/directxmesh/portfile.cmake | 40 +++++++++++++++++++++++-------- ports/directxtex/CONTROL | 2 +- ports/directxtex/portfile.cmake | 50 ++++++++++++++++++++++++++------------- ports/directxtk/CONTROL | 2 +- ports/directxtk/portfile.cmake | 49 +++++++++++++++++++++----------------- ports/directxtk12/CONTROL | 2 +- ports/directxtk12/portfile.cmake | 51 ++++++++++++++++++++++++++-------------- 8 files changed, 130 insertions(+), 68 deletions(-) diff --git a/ports/directxmesh/CONTROL b/ports/directxmesh/CONTROL index 700756964..331466f53 100644 --- a/ports/directxmesh/CONTROL +++ b/ports/directxmesh/CONTROL @@ -1,4 +1,4 @@ Source: directxmesh -Version: apr2019 +Version: jun2019-1 Homepage: https://github.com/Microsoft/DirectXMesh Description: DirectXMesh geometry processing library \ No newline at end of file diff --git a/ports/directxmesh/portfile.cmake b/ports/directxmesh/portfile.cmake index 53cd44b0c..3cf718727 100644 --- a/ports/directxmesh/portfile.cmake +++ b/ports/directxmesh/portfile.cmake @@ -3,14 +3,14 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic") - message(FATAL_ERROR "DirectXMesh only supports dynamic CRT linkage") + message(FATAL_ERROR "DirectXMesh only supports dynamic CRT linkage") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXMesh - REF apr2019 - SHA512 a9e0dbf6483633a1727592de7e2fa733de993daff848d9ec2241ce54b67c7d24ed0419058f2f6ce256021dcf7e16d178b62ed9b8c7a1756504ab044f8740be1d + REF jun2019 + SHA512 6d42cd4d3e34e7f3bd5cee1a9ad90c9f89eafa55951a0a8d776034a05caa06b0fd17629547d14c8f2b4d0c5fafdbd24ae05c2a6582b5d069093d6b4dadac09a0 HEAD_REF master ) @@ -20,8 +20,24 @@ ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) ENDIF() +if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140") + set(VS_VERSION "2015") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + set(VS_VERSION "2017") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + set(VS_VERSION "2019") +else() + message(FATAL_ERROR "Unsupported platform toolset.") +endif() + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(SLN_NAME "Windows10_${VS_VERSION}") +else() + set(SLN_NAME "Desktop_${VS_VERSION}") +endif() + vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/DirectXMesh_Desktop_2017.sln + PROJECT_PATH ${SOURCE_PATH}/DirectXMesh_${SLN_NAME}.sln PLATFORM ${BUILD_ARCH} ) @@ -30,17 +46,21 @@ file(INSTALL ${SOURCE_PATH}/DirectXMesh/DirectXMesh.inl DESTINATION ${CURRENT_PACKAGES_DIR}/include ) + file(INSTALL - ${SOURCE_PATH}/DirectXMesh/Bin/Desktop_2017/${BUILD_ARCH}/Debug/DirectXMesh.lib + ${SOURCE_PATH}/DirectXMesh/Bin/${SLN_NAME}/${BUILD_ARCH}/Debug/DirectXMesh.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(INSTALL - ${SOURCE_PATH}/DirectXMesh/Bin/Desktop_2017/${BUILD_ARCH}/Release/DirectXMesh.lib + ${SOURCE_PATH}/DirectXMesh/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/DirectXMesh.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -set(TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools) -file(INSTALL - ${SOURCE_PATH}/Meshconvert/Bin/Desktop_2017/${BUILD_ARCH}/Release/Meshconvert.exe - DESTINATION ${TOOL_PATH}) +if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/directxmesh) + file(MAKE_DIRECTORY ${TOOL_PATH}) + file(INSTALL + ${SOURCE_PATH}/Meshconvert/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/Meshconvert.exe + DESTINATION ${TOOL_PATH}) +endif() # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/directxmesh) diff --git a/ports/directxtex/CONTROL b/ports/directxtex/CONTROL index 69b6d2ee2..4eb03bb01 100644 --- a/ports/directxtex/CONTROL +++ b/ports/directxtex/CONTROL @@ -1,4 +1,4 @@ Source: directxtex -Version: apr2019 +Version: jun2019-1 Homepage: https://github.com/Microsoft/DirectXTex Description: DirectXTex texture processing library \ No newline at end of file diff --git a/ports/directxtex/portfile.cmake b/ports/directxtex/portfile.cmake index 94f9b69cb..a58d53169 100644 --- a/ports/directxtex/portfile.cmake +++ b/ports/directxtex/portfile.cmake @@ -9,8 +9,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXTex - REF apr2019 - SHA512 3e50c5beb25416a0720614321bb2b712b5677b50989909ca703801080023f8f8ad168bbe4e5dc522500325989a8f6982026d7dc5029ee28d9dcfe35efdd002de + REF jun2019 + SHA512 036a4593f8117e622cd6f609aea5bad734f9c3fc239984ec4f970cb6634ac3097cdb5ed2e467d3b1549e2340bcfe10ee4925b4e3691cf7f729ca538d3724c26e HEAD_REF master ) @@ -20,8 +20,24 @@ ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) ENDIF() +if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140") + set(VS_VERSION "2015") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + set(VS_VERSION "2017") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + set(VS_VERSION "2019") +else() + message(FATAL_ERROR "Unsupported platform toolset.") +endif() + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(SLN_NAME "Windows10_${VS_VERSION}") +else() + set(SLN_NAME "Desktop_${VS_VERSION}") +endif() + vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/DirectXTex_Desktop_2017.sln + PROJECT_PATH ${SOURCE_PATH}/DirectXTex_${SLN_NAME}.sln PLATFORM ${BUILD_ARCH} ) @@ -31,23 +47,25 @@ file(INSTALL DESTINATION ${CURRENT_PACKAGES_DIR}/include ) file(INSTALL - ${SOURCE_PATH}/DirectXTex/Bin/Desktop_2017/${BUILD_ARCH}/Debug/DirectXTex.lib + ${SOURCE_PATH}/DirectXTex/Bin/${SLN_NAME}/${BUILD_ARCH}/Debug/DirectXTex.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(INSTALL - ${SOURCE_PATH}/DirectXTex/Bin/Desktop_2017/${BUILD_ARCH}/Release/DirectXTex.lib + ${SOURCE_PATH}/DirectXTex/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/DirectXTex.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -set(TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools) -file(MAKE_DIRECTORY ${TOOL_PATH}) -file(INSTALL - ${SOURCE_PATH}/Texdiag/Bin/Desktop_2017/${BUILD_ARCH}/Release/texdiag.exe - DESTINATION ${TOOL_PATH}) -file(INSTALL - ${SOURCE_PATH}/Texconv/Bin/Desktop_2017/${BUILD_ARCH}/Release/Texconv.exe - DESTINATION ${TOOL_PATH}) -file(INSTALL - ${SOURCE_PATH}/Texassemble/Bin/Desktop_2017/${BUILD_ARCH}/Release/Texassemble.exe - DESTINATION ${TOOL_PATH}) +if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/directxtex) + file(MAKE_DIRECTORY ${TOOL_PATH}) + file(INSTALL + ${SOURCE_PATH}/Texdiag/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/texdiag.exe + DESTINATION ${TOOL_PATH}) + file(INSTALL + ${SOURCE_PATH}/Texconv/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/Texconv.exe + DESTINATION ${TOOL_PATH}) + file(INSTALL + ${SOURCE_PATH}/Texassemble/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/Texassemble.exe + DESTINATION ${TOOL_PATH}) +endif() # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/DirectXTex) diff --git a/ports/directxtk/CONTROL b/ports/directxtk/CONTROL index e1f3ce5d5..cbe291a8f 100644 --- a/ports/directxtk/CONTROL +++ b/ports/directxtk/CONTROL @@ -1,4 +1,4 @@ Source: directxtk -Version: apr2019-1 +Version: jun2019-1 Homepage: https://github.com/Microsoft/DirectXTK Description: A collection of helper classes for writing DirectX 11.x code in C++. diff --git a/ports/directxtk/portfile.cmake b/ports/directxtk/portfile.cmake index 0449d8f61..df5e7a02b 100644 --- a/ports/directxtk/portfile.cmake +++ b/ports/directxtk/portfile.cmake @@ -3,16 +3,15 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic") - message(FATAL_ERROR "DirectXTK only supports dynamic CRT linkage") + message(FATAL_ERROR "DirectXTK only supports dynamic CRT linkage") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXTK - REF apr2019 - SHA512 811ed222c1650d34a8475e44719cca8972a85d96f9ccb10548e1501eb9d28fd8685de90832b517cdcbf21ae8c9160dea69000e8dca06fab745a15a7acc14ba98 + REF jun2019 + SHA512 211b18ee0755802a5d44b58da2485276cabdee222d2f5fd7b42bad0bf75810e3ac1bd319b90891d9cc0345b124631ad37588422af9120cece9fa0ed769033e77 HEAD_REF master - PATCHES fix-invalid-configuration.patch ) IF (TRIPLET_SYSTEM_ARCH MATCHES "x86") @@ -21,10 +20,20 @@ ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) ENDIF() +if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140") + set(VS_VERSION "2015") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + set(VS_VERSION "2017") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + set(VS_VERSION "2019") +else() + message(FATAL_ERROR "Unsupported platform toolset.") +endif() + if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - set(SLN_NAME "Windows10") + set(SLN_NAME "Windows10_${VS_VERSION}") else() - set(SLN_NAME "Desktop_2017") + set(SLN_NAME "Desktop_${VS_VERSION}") endif() vcpkg_build_msbuild( @@ -32,6 +41,11 @@ vcpkg_build_msbuild( PLATFORM ${BUILD_ARCH} ) +file(INSTALL + ${SOURCE_PATH}/Inc/ + DESTINATION ${CURRENT_PACKAGES_DIR}/include/DirectXTK +) + file(INSTALL ${SOURCE_PATH}/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/DirectXTK.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) @@ -41,22 +55,15 @@ file(INSTALL DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - set(DXTK_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/directxtk) - file(MAKE_DIRECTORY ${DXTK_TOOL_PATH}) - - file(INSTALL - ${SOURCE_PATH}/MakeSpriteFont/bin/Release/MakeSpriteFont.exe - DESTINATION ${DXTK_TOOL_PATH}) - - file(INSTALL - ${SOURCE_PATH}/XWBTool/Bin/Desktop_2017/${BUILD_ARCH}/Release/XWBTool.exe - DESTINATION ${DXTK_TOOL_PATH}) + set(DXTK_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/directxtk) + file(MAKE_DIRECTORY ${DXTK_TOOL_PATH}) + file(INSTALL + ${SOURCE_PATH}/MakeSpriteFont/bin/Release/MakeSpriteFont.exe + DESTINATION ${DXTK_TOOL_PATH}) + file(INSTALL + ${SOURCE_PATH}/XWBTool/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/XWBTool.exe + DESTINATION ${DXTK_TOOL_PATH}) endif() -file(INSTALL - ${SOURCE_PATH}/Inc/ - DESTINATION ${CURRENT_PACKAGES_DIR}/include/DirectXTK -) - # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/directxtk RENAME copyright) diff --git a/ports/directxtk12/CONTROL b/ports/directxtk12/CONTROL index 466acece6..2d7c849c2 100644 --- a/ports/directxtk12/CONTROL +++ b/ports/directxtk12/CONTROL @@ -1,4 +1,4 @@ Source: directxtk12 -Version: dec2016-1 +Version: jun2019-1 Homepage: https://github.com/Microsoft/DirectXTK12 Description: A collection of helper classes for writing DirectX 12 code in C++. diff --git a/ports/directxtk12/portfile.cmake b/ports/directxtk12/portfile.cmake index d51a82b81..114165fb4 100644 --- a/ports/directxtk12/portfile.cmake +++ b/ports/directxtk12/portfile.cmake @@ -3,19 +3,15 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic") - message(FATAL_ERROR "DirectXTk12 only supports dynamic CRT linkage") + message(FATAL_ERROR "DirectXTK12 only supports dynamic CRT linkage") endif() -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/DirectXTK12-dec2016) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/Microsoft/DirectXTK12/archive/dec2016.tar.gz" - FILENAME "DirectXTK12-dec2016.tar.gz" - SHA512 7c98fbf1d7ef96807a38d396a87dacdc60fdcd7e461210d246cc424789c4c5c5fb1390db958c1bd1f77da8af756a9eae36813e5da6bbb0ea1432ff4004f1d010 -) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/DirectXTK_Desktop_2015_Win10.sln +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Microsoft/DirectXTK12 + REF jun2019 + SHA512 f635746ff92cf3b60b96f74f5ada5fb8409d1ac6e2729d24ebf0ebb275e26d373ec0ccdfbb66a3cb967267da86de4d70304d1f3326b738f94f5a8fc0d43a8c97 + HEAD_REF master ) IF (TRIPLET_SYSTEM_ARCH MATCHES "x86") @@ -24,17 +20,38 @@ ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) ENDIF() -file(INSTALL - ${SOURCE_PATH}/Bin/Desktop_2015_Win10/${BUILD_ARCH}/Release/DirectXTK12.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(INSTALL - ${SOURCE_PATH}/Bin/Desktop_2015_Win10/${BUILD_ARCH}/Debug/DirectXTK12.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140") + set(VS_VERSION "2015") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + set(VS_VERSION "2017") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + set(VS_VERSION "2019") +else() + message(FATAL_ERROR "Unsupported platform toolset.") +endif() + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(SLN_NAME "Windows10_${VS_VERSION}") +else() + set(SLN_NAME "Desktop_${VS_VERSION}_Win10") +endif() + +vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/DirectXTK_${SLN_NAME}.sln +) file(INSTALL ${SOURCE_PATH}/Inc/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/DirectXTK12 ) +file(INSTALL + ${SOURCE_PATH}/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/DirectXTK12.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + +file(INSTALL + ${SOURCE_PATH}/Bin/${SLN_NAME}/${BUILD_ARCH}/Debug/DirectXTK12.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/directxtk12 RENAME copyright) -- cgit v1.2.3 From 285f259be7681eb1a67377224e4b02a23a959af7 Mon Sep 17 00:00:00 2001 From: Phoebe <925731795@qq.com> Date: Wed, 14 Aug 2019 05:28:45 +0800 Subject: [usockets] upgrade to v0.3.1 (#7662) --- ports/usockets/CONTROL | 2 +- ports/usockets/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/usockets/CONTROL b/ports/usockets/CONTROL index 107ed27ac..69db6dce9 100644 --- a/ports/usockets/CONTROL +++ b/ports/usockets/CONTROL @@ -1,4 +1,4 @@ Source: usockets -Version: 0.1.2 +Version: 0.3.1 Build-Depends:libuv Description: Miniscule cross-platform eventing, networking & crypto for async applications \ No newline at end of file diff --git a/ports/usockets/portfile.cmake b/ports/usockets/portfile.cmake index 55e35e12b..c5b92f84f 100644 --- a/ports/usockets/portfile.cmake +++ b/ports/usockets/portfile.cmake @@ -7,8 +7,8 @@ EndIF () vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO uNetworking/uSockets - REF v0.1.2 - SHA512 fedfc50e3498320600247920360db38977f5be4aa9067146a5a0db13dc789b8fa39fa9315b19f56555915bcb818cd0f77ccf0b8cb40ed48e2b193b083d16b242 + REF v0.3.1 + SHA512 f02b72844fb87acbf435d86a89e55244e45e047b049f36bda8e89c9ddeba8d7e6432008d33d33771faec60dcca60a3e3bfa3918c3af08ba80741e09df62c91fd HEAD_REF master ) -- cgit v1.2.3 From e6a21e1b421e8231f3eb46d8af574a990b5da8c8 Mon Sep 17 00:00:00 2001 From: Lily <47812810+wangli28@users.noreply.github.com> Date: Wed, 14 Aug 2019 05:48:21 +0800 Subject: [dimcli] Fix build error C2220 (#7651) --- ports/dimcli/CONTROL | 2 +- ports/dimcli/fix-NameBoolean.patch | 63 ++++++++++++++++++++++++++++++++++++++ ports/dimcli/portfile.cmake | 2 ++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 ports/dimcli/fix-NameBoolean.patch diff --git a/ports/dimcli/CONTROL b/ports/dimcli/CONTROL index e98f11565..12078257a 100644 --- a/ports/dimcli/CONTROL +++ b/ports/dimcli/CONTROL @@ -1,4 +1,4 @@ Source: dimcli -Version: 4.1.0 +Version: 4.1.0-1 Homepage: https://github.com/gknowles/dimcli Description: C++ command line parser toolkit diff --git a/ports/dimcli/fix-NameBoolean.patch b/ports/dimcli/fix-NameBoolean.patch new file mode 100644 index 000000000..35eb64d68 --- /dev/null +++ b/ports/dimcli/fix-NameBoolean.patch @@ -0,0 +1,63 @@ +diff --git a/libs/dimcli/cli.cpp b/libs/dimcli/cli.cpp +index 9e67c12..c96bd24 100644 +--- a/libs/dimcli/cli.cpp ++++ b/libs/dimcli/cli.cpp +@@ -388,8 +388,8 @@ GroupConfig const & Cli::Config::findGrpOrDie(Cli const & cli) { + ***/ + + //=========================================================================== +-Cli::OptBase::OptBase(string const & names, bool boolean) +- : m_bool{boolean} ++Cli::OptBase::OptBase(string const & names, bool in_boolean) ++ : m_bool{in_boolean} + , m_names{names} + { + // set m_fromName and assert if names is malformed +@@ -486,12 +486,12 @@ static bool includeName( + OptName const & name, + NameListType type, + Cli::OptBase const & opt, +- bool boolean, ++ bool in_boolean, + bool inverted + ) { + if (name.opt != &opt) + return false; +- if (boolean) { ++ if (in_boolean) { + if (type == kNameEnable) + return !name.invert; + if (type == kNameDisable) +diff --git a/libs/dimcli/cli.h b/libs/dimcli/cli.h +index 2c1615c..3e4f405 100644 +--- a/libs/dimcli/cli.h ++++ b/libs/dimcli/cli.h +@@ -818,7 +818,7 @@ public: + }; + + public: +- OptBase(std::string const & keys, bool boolean); ++ OptBase(std::string const & keys, bool in_boolean); + virtual ~OptBase() {} + + //----------------------------------------------------------------------- +@@ -952,7 +952,7 @@ inline void Cli::OptBase::setValueDesc() { + template + class Cli::OptShim : public OptBase { + public: +- OptShim(std::string const & keys, bool boolean); ++ OptShim(std::string const & keys, bool in_boolean); + OptShim(OptShim const &) = delete; + OptShim & operator=(OptShim const &) = delete; + +@@ -1100,8 +1100,8 @@ protected: + + //=========================================================================== + template +-Cli::OptShim::OptShim(std::string const & keys, bool boolean) +- : OptBase(keys, boolean) ++Cli::OptShim::OptShim(std::string const & keys, bool in_boolean) ++ : OptBase(keys, in_boolean) + { + setValueDesc(); + } diff --git a/ports/dimcli/portfile.cmake b/ports/dimcli/portfile.cmake index 6362aa987..2d231117c 100644 --- a/ports/dimcli/portfile.cmake +++ b/ports/dimcli/portfile.cmake @@ -6,6 +6,8 @@ vcpkg_from_github( REF v4.1.0 SHA512 5de010b5abfda9e6996bba8c621e03ae0cf81dbc2f69cd859e2ebf7b1706c451f7f8e142299784646d89ca3c3e5803e8711215680b8bdb8eb663158bff3b4f3d HEAD_REF master + PATCHES + fix-NameBoolean.patch ) set(staticCrt OFF) if(VCPKG_CRT_LINKAGE STREQUAL "static") -- cgit v1.2.3 From 644caf17e7cba4394f0a65cfe30efcbc5afb87e8 Mon Sep 17 00:00:00 2001 From: Elijah Insua Date: Sun, 11 Aug 2019 12:26:23 -0700 Subject: [blosc] enable dependent ports to use debug builds refs: https://github.com/Microsoft/vcpkg/issues/3601 The bulk of this work is to utilize the standard vcpkg find_package code to find the correct binaries in both Release and Debug modes. --- ports/blosc/0001-find-deps.patch | 107 +++++++++++++++++++++++++++++++++++++++ ports/blosc/CONTROL | 2 +- ports/blosc/FindBlosc.cmake | 33 ++++++++++++ ports/blosc/portfile.cmake | 6 +++ 4 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 ports/blosc/0001-find-deps.patch create mode 100644 ports/blosc/FindBlosc.cmake diff --git a/ports/blosc/0001-find-deps.patch b/ports/blosc/0001-find-deps.patch new file mode 100644 index 000000000..af0f92150 --- /dev/null +++ b/ports/blosc/0001-find-deps.patch @@ -0,0 +1,107 @@ +diff --git a/blosc/CMakeLists.txt b/blosc/CMakeLists.txt +index 1d1bebe..3a7a51c 100644 +--- a/blosc/CMakeLists.txt ++++ b/blosc/CMakeLists.txt +@@ -109,7 +109,7 @@ endif(NOT DEACTIVATE_ZLIB) + + if (NOT DEACTIVATE_ZSTD) + if (ZSTD_FOUND) +- set(LIBS ${LIBS} ${ZSTD_LIBRARY}) ++ set(LIBS ${LIBS} ${ZSTD_LIBRARIES}) + else (ZSTD_FOUND) + file(GLOB ZSTD_FILES + ${ZSTD_LOCAL_DIR}/common/*.c +diff --git a/cmake/FindLZ4.cmake b/cmake/FindLZ4.cmake +index e581a80..8ce17c5 100644 +--- a/cmake/FindLZ4.cmake ++++ b/cmake/FindLZ4.cmake +@@ -1,10 +1,13 @@ +-find_path(LZ4_INCLUDE_DIR lz4.h) ++find_path(LZ4_INCLUDE_DIRS NAMES lz4.h) + +-find_library(LZ4_LIBRARY NAMES lz4) ++find_library(LZ4_LIBRARY_DEBUG NAMES lz4d) ++find_library(LZ4_LIBRARY_RELEASE NAMES lz4) + +-if (LZ4_INCLUDE_DIR AND LZ4_LIBRARY) +- set(LZ4_FOUND TRUE) +- message(STATUS "Found LZ4 library: ${LZ4_LIBRARY}") +-else () +- message(STATUS "No LZ4 library found. Using internal sources.") +-endif () ++include(SelectLibraryConfigurations) ++select_library_configurations(LZ4) ++ ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args( ++ LZ4 ++ REQUIRED_VARS LZ4_LIBRARIES LZ4_INCLUDE_DIRS ++) +diff --git a/cmake/FindSnappy.cmake b/cmake/FindSnappy.cmake +index 688d4d5..c8b9a05 100644 +--- a/cmake/FindSnappy.cmake ++++ b/cmake/FindSnappy.cmake +@@ -1,10 +1,13 @@ +-find_path(SNAPPY_INCLUDE_DIR snappy-c.h) ++find_path(SNAPPY_INCLUDE_DIR snappy.h) + +-find_library(SNAPPY_LIBRARY NAMES snappy) ++find_library(SNAPPY_LIBRARY_DEBUG NAMES snappyd) ++find_library(SNAPPY_LIBRARY_RELEASE NAMES snappy) + +-if (SNAPPY_INCLUDE_DIR AND SNAPPY_LIBRARY) +- set(SNAPPY_FOUND TRUE) +- message(STATUS "Found SNAPPY library: ${SNAPPY_LIBRARY}") +-else () +- message(STATUS "No snappy found. Using internal sources.") +-endif () ++include(SelectLibraryConfigurations) ++select_library_configurations(SNAPPY) ++ ++include(FindPackageHandleStandardArgs) ++FIND_PACKAGE_HANDLE_STANDARD_ARGS( ++ SNAPPY DEFAULT_MSG ++ SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR ++) +diff --git a/cmake/FindZstd.cmake b/cmake/FindZstd.cmake +index 7db4bb9..ba20ba6 100644 +--- a/cmake/FindZstd.cmake ++++ b/cmake/FindZstd.cmake +@@ -1,10 +1,30 @@ ++include(FindPackageHandleStandardArgs) ++ + find_path(ZSTD_INCLUDE_DIR zstd.h) + +-find_library(ZSTD_LIBRARY NAMES zstd) ++get_filename_component(_prefix_path ${ZSTD_INCLUDE_DIR} PATH) ++ ++find_library( ++ ZSTD_LIBRARY_DEBUG ++ NAMES zstdd ++ PATHS ${_prefix_path}/debug/lib ++ NO_DEFAULT_PATH ++) ++ ++find_library( ++ ZSTD_LIBRARY_RELEASE ++ NAMES zstd ++ PATHS ${_prefix_path}/lib ++ NO_DEFAULT_PATH ++) ++ ++unset(_prefix_path) ++ ++include(SelectLibraryConfigurations) ++select_library_configurations(ZSTD) + +-if (ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY) +- set(ZSTD_FOUND TRUE) +- message(STATUS "Found Zstd library: ${ZSTD_LIBRARY}") +-else () +- message(STATUS "No Zstd library found. Using internal sources.") +-endif () ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args( ++ ZSTD ++ REQUIRED_VARS ZSTD_LIBRARIES ZSTD_INCLUDE_DIR ++) diff --git a/ports/blosc/CONTROL b/ports/blosc/CONTROL index 3cbed267f..414685489 100644 --- a/ports/blosc/CONTROL +++ b/ports/blosc/CONTROL @@ -1,5 +1,5 @@ Source: blosc -Version: 1.17.0 +Version: 1.17.0-1 Build-Depends: lz4, snappy, zlib, zstd Homepage: https://github.com/Blosc/c-blosc Description: A blocking, shuffling and loss-less compression library that can be faster than `memcpy()` diff --git a/ports/blosc/FindBlosc.cmake b/ports/blosc/FindBlosc.cmake new file mode 100644 index 000000000..11385d46d --- /dev/null +++ b/ports/blosc/FindBlosc.cmake @@ -0,0 +1,33 @@ +include(FindPackageHandleStandardArgs) + +find_path( + BLOSC_INCLUDE_DIRS + blosc.h +) + +get_filename_component(_prefix_path ${BLOSC_INCLUDE_DIRS} PATH) + +find_library( + BLOSC_LIBRARY_DEBUG + NAMES blosc + PATHS ${_prefix_path}/debug/lib + NO_DEFAULT_PATH +) + +find_library( + SNAPPY_LIBRARY_RELEASE + NAMES blosc + PATHS ${_prefix_path}/lib + NO_DEFAULT_PATH +) + +unset(_prefix_path) + +include(SelectLibraryConfigurations) +select_library_configurations(blosc) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + blosc + REQUIRED_VARS BLOSC_LIBRARIES BLOSC_INCLUDE_DIRS +) diff --git a/ports/blosc/portfile.cmake b/ports/blosc/portfile.cmake index 489e97448..aaf61eee0 100644 --- a/ports/blosc/portfile.cmake +++ b/ports/blosc/portfile.cmake @@ -6,6 +6,8 @@ vcpkg_from_github( REF v1.17.0 SHA512 7fe517e9d050a36839ddf963e718881533cc10a7c8963222b3167fd48ec84455614206c1cc2c248f52042a019262fa0419c4c1a828eb1ae64294c55bbaf56f6e HEAD_REF master + PATCHES + 0001-find-deps.patch ) if (VCPKG_LIBRARY_LINKAGE STREQUAL static) @@ -51,3 +53,7 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSES/BLOSC.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/blosc RENAME copyright) +file(COPY + "${CMAKE_CURRENT_LIST_DIR}/FindBlosc.cmake" + DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} +) -- cgit v1.2.3 From 6e3059bb136461e97c2f8d66db1b5d046c8016b0 Mon Sep 17 00:00:00 2001 From: wangli28 Date: Wed, 14 Aug 2019 02:21:37 +0000 Subject: [libgit2] Upgrade to version 0.28.3 --- ports/libgit2/CONTROL | 2 +- ports/libgit2/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/libgit2/CONTROL b/ports/libgit2/CONTROL index 5c396d473..5569f18ff 100644 --- a/ports/libgit2/CONTROL +++ b/ports/libgit2/CONTROL @@ -1,5 +1,5 @@ Source: libgit2 -Version: 0.28.2 +Version: 0.28.3 Homepage: https://github.com/libgit2/libgit2 Build-Depends: openssl (!windows&&!uwp) Description: Git linkable library diff --git a/ports/libgit2/portfile.cmake b/ports/libgit2/portfile.cmake index 711da201e..d2b70483d 100644 --- a/ports/libgit2/portfile.cmake +++ b/ports/libgit2/portfile.cmake @@ -8,8 +8,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libgit2/libgit2 - REF b3e1a56ebb2b9291e82dc027ba9cbcfc3ead54d3 - SHA512 2a992759c0892300eff6d4e823367e2cfc5bcaa6e37a0e87de45a16393c53ccd286f47f37d38c104e79eed8688b9834ada00000b2d6894f89773f75c83e23022 + REF v0.28.3 + SHA512 15444823b7d4885f7b8c3982f8905efc4a75913de016a9b2e0a24d5ce9746e6a549dffd5469036529557feff2ce7ece9328266eb312c80b96091ce0f65ee97ee HEAD_REF master ) -- cgit v1.2.3 From 7291a25631b2097b961eae790ce90fbd4f8a6ca8 Mon Sep 17 00:00:00 2001 From: Phoebe Date: Tue, 13 Aug 2019 19:55:28 -0700 Subject: [spdlog] fix cmake targets path --- ports/spdlog/CONTROL | 2 +- ports/spdlog/portfile.cmake | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ports/spdlog/CONTROL b/ports/spdlog/CONTROL index aa5474709..0864d7858 100644 --- a/ports/spdlog/CONTROL +++ b/ports/spdlog/CONTROL @@ -1,5 +1,5 @@ Source: spdlog -Version: 1.3.1-1 +Version: 1.3.1-2 Homepage: https://github.com/gabime/spdlog Description: Very fast, header only, C++ logging library Build-Depends: fmt diff --git a/ports/spdlog/portfile.cmake b/ports/spdlog/portfile.cmake index 37cd8644f..d25f78712 100644 --- a/ports/spdlog/portfile.cmake +++ b/ports/spdlog/portfile.cmake @@ -27,7 +27,11 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/spdlog) +if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/${PORT}") + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) +elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/${PORT}/cmake") + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/${PORT}/cmake) +endif() vcpkg_copy_pdbs() -- cgit v1.2.3 From a3a6530631df905eb5c0e26d0b20d7d548e0c465 Mon Sep 17 00:00:00 2001 From: Victor Romero Date: Tue, 13 Aug 2019 20:13:55 -0700 Subject: [vcpkg_check_features] Set output variable explicitly and allow reverse-logic check (#7558) * [vcpkg_check_features] Set OUT_EXPAND_OPTIONS explicitly * [vcpkg_check_features] Allow reverse logic for features * [vcpkg_check_features] Document new parameters * [vcpkg_check_features] Remove unnecessary logging * Do not create variables for each feature only set OUT_FEATURE_OPTIONS * Improve documentation * Update ports that use vcpkg_check_features() * Missing documentation updates * [pcl] Fix tools feature * [opencv,opencv4] Fix usage of vcpkg_check_features() * [opencv4] Fix typo --- docs/maintainers/portfile-functions.md | 1 + docs/maintainers/vcpkg_check_features.md | 171 +++++++++++++------ docs/maintainers/vcpkg_configure_cmake.md | 10 +- docs/maintainers/vcpkg_prettify_command.md | 17 ++ ports/czmq/CONTROL | 2 +- ports/czmq/portfile.cmake | 14 +- ports/darknet/CONTROL | 4 +- ports/darknet/portfile.cmake | 16 +- ports/librdkafka/portfile.cmake | 12 +- ports/mimalloc/CONTROL | 2 +- ports/mimalloc/portfile.cmake | 12 +- ports/mongo-c-driver/CONTROL | 2 +- ports/mongo-c-driver/portfile.cmake | 6 +- ports/oniguruma/CONTROL | 2 +- ports/oniguruma/portfile.cmake | 11 +- ports/opencv/CONTROL | 5 +- ports/opencv4/CONTROL | 2 +- ports/opencv4/portfile.cmake | 59 +++---- ports/paho-mqttpp3/CONTROL | 2 +- ports/paho-mqttpp3/portfile.cmake | 6 +- ports/pcl/CONTROL | 2 +- ports/pcl/portfile.cmake | 26 ++- ports/rocksdb/portfile.cmake | 44 ++--- ports/xsimd/CONTROL | 2 +- ports/xsimd/portfile.cmake | 6 +- ports/xtensor/CONTROL | 2 +- ports/xtensor/portfile.cmake | 2 +- ports/zeromq/CONTROL | 2 +- ports/zeromq/portfile.cmake | 6 +- scripts/cmake/vcpkg_check_features.cmake | 255 +++++++++++++++++++---------- scripts/cmake/vcpkg_configure_cmake.cmake | 6 + 31 files changed, 432 insertions(+), 277 deletions(-) create mode 100644 docs/maintainers/vcpkg_prettify_command.md diff --git a/docs/maintainers/portfile-functions.md b/docs/maintainers/portfile-functions.md index b98d89192..eadebf49a 100644 --- a/docs/maintainers/portfile-functions.md +++ b/docs/maintainers/portfile-functions.md @@ -24,4 +24,5 @@ - [vcpkg\_from\_gitlab](vcpkg_from_gitlab.md) - [vcpkg\_install\_cmake](vcpkg_install_cmake.md) - [vcpkg\_install\_msbuild](vcpkg_install_msbuild.md) +- [vcpkg\_prettify\_command](vcpkg_prettify_command.md) - [vcpkg\_test\_cmake](vcpkg_test_cmake.md) diff --git a/docs/maintainers/vcpkg_check_features.md b/docs/maintainers/vcpkg_check_features.md index 46ee9051a..cec01dde2 100644 --- a/docs/maintainers/vcpkg_check_features.md +++ b/docs/maintainers/vcpkg_check_features.md @@ -1,71 +1,148 @@ # vcpkg_check_features - -Check if one or more features are a part of the package installation. +Check if one or more features are a part of a package installation. ## Usage ```cmake vcpkg_check_features( - - [ ] - ... + OUT_FEATURE_OPTIONS + [FEATURES + + [ ] + ...] + [INVERTED_FEATURES + + [ ] + ...] ) ``` +`vcpkg_check_features()` accepts these parameters: -`vcpkg_check_features` accepts a list of (feature, output_variable) pairs. If a feature is specified, the corresponding output variable will be set as `ON`, or `OFF` otherwise. The syntax is similar to the `PROPERTIES` argument of `set_target_properties`. +* `OUT_FEATURE_OPTIONS`: + An output variable, the function will clear the variable passed to `OUT_FEATURE_OPTIONS` + and then set it to contain a list of option definitions (`-D=ON|OFF`). + + This should be set to `FEATURE_OPTIONS` by convention. + +* `FEATURES`: + A list of (`FEATURE_NAME`, `OPTION_NAME`) pairs. + For each `FEATURE_NAME` a definition is added to `OUT_FEATURE_OPTIONS` in the form of: + + * `-D=ON`, if a feature is specified for installation, + * `-D=OFF`, otherwise. + +* `INVERTED_FEATURES`: + A list of (`FEATURE_NAME`, `OPTION_NAME`) pairs, uses reversed logic from `FEATURES`. + For each `FEATURE_NAME` a definition is added to `OUT_FEATURE_OPTIONS` in the form of: + + * `-D=OFF`, if a feature is specified for installation, + * `-D=ON`, otherwise. -`vcpkg_check_features` will create a variable `FEATURE_OPTIONS` in the parent scope, which you can pass as a part of `OPTIONS` argument when calling functions like `vcpkg_config_cmake`: -```cmake -vcpkg_config_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DBUILD_TESTING=ON - ${FEATURE_OPTIONS} -) -``` ## Notes + +The `FEATURES` name parameter can be omitted if no `INVERTED_FEATURES` are used. + +At least one (`FEATURE_NAME`, `OPTION_NAME`) pair must be passed to the function call. + +Arguments passed to `FEATURES` and `INVERTED_FEATURES` are not validated to prevent duplication. +If the same (`FEATURE_NAME`, `OPTION_NAME`) pair is passed to both lists, +two conflicting definitions are added to `OUT_FEATURE_OPTIONS`. + + +## Examples + +### Example 1: Regular features + ```cmake -vcpkg_check_features( ) -``` -can be used as a replacement of: -```cmake -if( IN_LIST FEATURES) - set( ON) -else() - set( OFF) -endif() +$ ./vcpkg install mimalloc[asm,secure] + +# ports/mimalloc/portfile.cmake +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + # Keyword FEATURES is optional if INVERTED_FEATURES are not used + asm MI_SEE_ASM + override MI_OVERRIDE + secure MI_SECURE +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + # Expands to "-DMI_SEE_ASM=ON; -DMI_OVERRIDE=OFF; -DMI_SECURE=ON" + ${FEATURE_OPTIONS} +) ``` -However, if you have a feature that was checked like this before: +### Example 2: Inverted features + ```cmake -if( IN_LIST FEATURES) - set( OFF) -else() - set( ON) -endif() +$ ./vcpkg install cpprestsdk[websockets] + +# ports/cpprestsdk/portfile.cmake +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + INVERTED_FEATURES # <- Keyword INVERTED_FEATURES required + brotli CPPREST_EXCLUDE_BROTLI + websockets CPPREST_EXCLUDE_WEBSOCKETS +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + # Expands to "-DCPPREST_EXCLUDE_BROTLI=ON; -DCPPREST_EXCLUDE_WEBSOCKETS=OFF" + ${FEATURE_OPTIONS} +) ``` -then you should not use `vcpkg_check_features` instead. [```oniguruma```](https://github.com/microsoft/vcpkg/blob/master/ports/oniguruma/portfile.cmake), for example, has a feature named `non-posix` which is checked with: + +### Example 3: Set multiple options for same feature + ```cmake -if("non-posix" IN_LIST FEATURES) - set(ENABLE_POSIX_API OFF) -else() - set(ENABLE_POSIX_API ON) -endif() -``` -and by replacing these code with: +$ ./vcpkg install pcl[cuda] + +# ports/pcl/portfile.cmake +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + cuda WITH_CUDA + cuda BUILD_CUDA + cuda BUILD_GPU +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + # Expands to "-DWITH_CUDA=ON; -DBUILD_CUDA=ON; -DBUILD_GPU=ON" + ${FEATURE_OPTIONS} +) +``` + +### Example 4: Use regular and inverted features + ```cmake -vcpkg_check_features(non-posix ENABLE_POSIX_API) -``` -is totally wrong. +$ ./vcpkg install rocksdb[tbb] -`vcpkg_check_features` is supposed to be called only once. Otherwise, the `FEATURE_OPTIONS` variable set by a previous call will be overwritten. +# ports/rocksdb/portfile.cmake +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES # <- Keyword FEATURES is required because INVERTED_FEATURES are being used + tbb WITH_TBB + INVERTED_FEATURES + tbb ROCKSDB_IGNORE_PACKAGE_TBB +) -## Examples +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + # Expands to "-DWITH_TBB=ON; -DROCKSDB_IGNORE_PACKAGE_TBB=OFF" + ${FEATURE_OPTIONS} +) +``` + +## Examples in portfiles + +* [cpprestsdk](https://github.com/microsoft/vcpkg/blob/master/ports/cpprestsdk/portfile.cmake) +* [pcl](https://github.com/microsoft/vcpkg/blob/master/ports/pcl/portfile.cmake) +* [rocksdb](https://github.com/microsoft/vcpkg/blob/master/ports/rocksdb/portfile.cmake) -* [czmq](https://github.com/microsoft/vcpkg/blob/master/ports/czmq/portfile.cmake) -* [xsimd](https://github.com/microsoft/vcpkg/blob/master/ports/xsimd/portfile.cmake) -* [xtensor](https://github.com/microsoft/vcpkg/blob/master/ports/xtensor/portfile.cmake) ## Source [scripts/cmake/vcpkg_check_features.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_check_features.cmake) diff --git a/docs/maintainers/vcpkg_configure_cmake.md b/docs/maintainers/vcpkg_configure_cmake.md index b78ef54d9..ebbd92ed1 100644 --- a/docs/maintainers/vcpkg_configure_cmake.md +++ b/docs/maintainers/vcpkg_configure_cmake.md @@ -18,14 +18,15 @@ vcpkg_configure_cmake( ## Parameters ### SOURCE_PATH -Specifies the directory containing the `CMakeLists.txt`. By convention, this is usually set in the portfile as the variable `SOURCE_PATH`. +Specifies the directory containing the `CMakeLists.txt`. +By convention, this is usually set in the portfile as the variable `SOURCE_PATH`. ### PREFER_NINJA -Indicates that, when available, Vcpkg should use Ninja to perform the build. This should be specified unless the port is known to not work under Ninja. +Indicates that, when available, Vcpkg should use Ninja to perform the build. +This should be specified unless the port is known to not work under Ninja. ### DISABLE_PARALLEL_CONFIGURE Disables running the CMake configure step in parallel. - This is needed for libraries which write back into their source directory during configure. ### NO_CHARSET_FLAG @@ -36,7 +37,8 @@ This is needed for libraries that set their own source code's character set. ### GENERATOR Specifies the precise generator to use. -This is useful if some project-specific buildsystem has been wrapped in a cmake script that won't perform an actual build. If used for this purpose, it should be set to "NMake Makefiles". +This is useful if some project-specific buildsystem has been wrapped in a cmake script that won't perform an actual build. +If used for this purpose, it should be set to "NMake Makefiles". ### OPTIONS Additional options passed to CMake during the configuration. diff --git a/docs/maintainers/vcpkg_prettify_command.md b/docs/maintainers/vcpkg_prettify_command.md new file mode 100644 index 000000000..1856e06b4 --- /dev/null +++ b/docs/maintainers/vcpkg_prettify_command.md @@ -0,0 +1,17 @@ +# vcpkg_prettify_command + +Turns list of command arguments into a formatted string. + +## Usage +```cmake +vcpkg_prettify_command() +``` + +## Examples + +* `scripts/cmake/vcpkg_execute_build_process.cmake` +* `scripts/cmake/vcpkg_execute_required_process.cmake` +* `scripts/cmake/vcpkg_execute_required_process_repeat.cmake` + +## Source +[scripts/cmake/vcpkg_prettify_command.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_prettify_command.cmake) diff --git a/ports/czmq/CONTROL b/ports/czmq/CONTROL index 55cba0bd4..c24d918e0 100644 --- a/ports/czmq/CONTROL +++ b/ports/czmq/CONTROL @@ -1,5 +1,5 @@ Source: czmq -Version: 2019-06-10-1 +Version: 2019-06-10-2 Build-Depends: zeromq Description: High-level C binding for ZeroMQ Homepage: https://github.com/zeromq/czmq diff --git a/ports/czmq/portfile.cmake b/ports/czmq/portfile.cmake index bba5e6e22..3c0e4c604 100644 --- a/ports/czmq/portfile.cmake +++ b/ports/czmq/portfile.cmake @@ -27,13 +27,13 @@ endforeach() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) -vcpkg_check_features( - draft ENABLE_DRAFTS - tool BUILD_TOOLS - curl CZMQ_WITH_LIBCURL - httpd CZMQ_WITH_LIBMICROHTTPD - lz4 CZMQ_WITH_LZ4 - uuid CZMQ_WITH_UUID +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + draft ENABLE_DRAFTS + tool BUILD_TOOLS + curl CZMQ_WITH_LIBCURL + httpd CZMQ_WITH_LIBMICROHTTPD + lz4 CZMQ_WITH_LZ4 + uuid CZMQ_WITH_UUID ) vcpkg_configure_cmake( diff --git a/ports/darknet/CONTROL b/ports/darknet/CONTROL index 812f66a2c..6979c310c 100644 --- a/ports/darknet/CONTROL +++ b/ports/darknet/CONTROL @@ -1,5 +1,5 @@ Source: darknet -Version: 0.2.5-5 +Version: 0.2.5-6 Description: Darknet is an open source neural network framework written in C and CUDA. You only look once (YOLO) is a state-of-the-art, real-time object detection system, best example of darknet functionalities. Build-Depends: pthreads (windows), stb Default-Features: weights @@ -19,5 +19,5 @@ Feature: weights-train Description: Download pre-built weights for training Feature: opencv-cuda -Build-Depends: opencv[ffmpeg], opencv[cuda] +Build-Depends: darknet[opencv], darknet[cuda] Description: Build darknet with support for a CUDA-enabled OpenCV diff --git a/ports/darknet/portfile.cmake b/ports/darknet/portfile.cmake index 83f68b6d7..a18c97a91 100644 --- a/ports/darknet/portfile.cmake +++ b/ports/darknet/portfile.cmake @@ -16,17 +16,12 @@ vcpkg_from_github( HEAD_REF master ) -vcpkg_check_features( - "cuda" ENABLE_CUDA - "opencv" ENABLE_OPENCV +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + "cuda" ENABLE_CUDA + "opencv" ENABLE_OPENCV ) -if("opencv-cuda" IN_LIST FEATURES) - set(ENABLE_OPENCV ON) - set(ENABLE_CUDA ON) -endif() - -if (ENABLE_CUDA) +if ("cuda" IN_LIST FEATURES) if (NOT VCPKG_CMAKE_SYSTEM_NAME AND NOT ENV{CUDACXX}) #CMake looks for nvcc only in PATH and CUDACXX env vars for the Ninja generator. Since we filter path on vcpkg and CUDACXX env var is not set by CUDA installer on Windows, CMake cannot find CUDA when using Ninja generator, so we need to manually enlight it if necessary (https://gitlab.kitware.com/cmake/cmake/issues/19173). Otherwise we could just disable Ninja and use MSBuild, but unfortunately CUDA installer does not integrate with some distributions of MSBuild (like the ones inside Build Tools), making CUDA unavailable otherwise in those cases, which we want to avoid set(ENV{CUDACXX} "$ENV{CUDA_PATH}/bin/nvcc.exe") @@ -80,8 +75,7 @@ vcpkg_configure_cmake( OPTIONS -DINSTALL_BIN_DIR:STRING=bin -DINSTALL_LIB_DIR:STRING=lib - -DENABLE_CUDA=${ENABLE_CUDA} - -DENABLE_OPENCV=${ENABLE_OPENCV} + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() diff --git a/ports/librdkafka/portfile.cmake b/ports/librdkafka/portfile.cmake index 84c50c8fa..c441c3c07 100644 --- a/ports/librdkafka/portfile.cmake +++ b/ports/librdkafka/portfile.cmake @@ -12,11 +12,11 @@ vcpkg_from_github( string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" RDKAFKA_BUILD_STATIC) -vcpkg_check_features( - lz4 ENABLE_LZ4_EXT - ssl WITH_SSL - zlib WITH_ZLIB - zstd WITH_ZSTD +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + lz4 ENABLE_LZ4_EXT + ssl WITH_SSL + zlib WITH_ZLIB + zstd WITH_ZSTD snappy WITH_SNAPPY ) @@ -50,7 +50,7 @@ vcpkg_fixup_cmake_targets( TARGET_PATH share/rdkafka ) -if(ENABLE_LZ4_EXT) +if("lz4" IN_LIST FEATURES) vcpkg_replace_string( ${CURRENT_PACKAGES_DIR}/share/rdkafka/RdKafkaConfig.cmake "find_dependency(LZ4)" diff --git a/ports/mimalloc/CONTROL b/ports/mimalloc/CONTROL index 127d64590..daf48d8ce 100644 --- a/ports/mimalloc/CONTROL +++ b/ports/mimalloc/CONTROL @@ -1,5 +1,5 @@ Source: mimalloc -Version: 2019-06-25 +Version: 2019-06-25-1 Description: Compact general purpose allocator with excellent performance Homepage: https://github.com/microsoft/mimalloc diff --git a/ports/mimalloc/portfile.cmake b/ports/mimalloc/portfile.cmake index a520b3ba5..1a11284f5 100644 --- a/ports/mimalloc/portfile.cmake +++ b/ports/mimalloc/portfile.cmake @@ -10,10 +10,10 @@ vcpkg_from_github( fix-cmake.patch ) -vcpkg_check_features( - asm MI_SEE_ASM - secure MI_SECURE - override MI_OVERRIDE +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + asm MI_SEE_ASM + secure MI_SECURE + override MI_OVERRIDE ) vcpkg_configure_cmake( @@ -24,11 +24,9 @@ vcpkg_configure_cmake( OPTIONS_RELEASE -DMI_CHECK_FULL=OFF OPTIONS - -DMI_OVERRIDE=${MI_OVERRIDE} -DMI_INTERPOSE=ON - -DMI_SEE_ASM=${MI_SEE_ASM} -DMI_USE_CXX=OFF - -DMI_SECURE=${MI_SECURE} + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() diff --git a/ports/mongo-c-driver/CONTROL b/ports/mongo-c-driver/CONTROL index 77a40437f..eb52dacc8 100644 --- a/ports/mongo-c-driver/CONTROL +++ b/ports/mongo-c-driver/CONTROL @@ -1,5 +1,5 @@ Source: mongo-c-driver -Version: 1.14.0-3 +Version: 1.14.0-3-1 Build-Depends: libbson, openssl (!windows), zlib Description: Client library written in C for MongoDB. Homepage: https://github.com/mongodb/mongo-c-driver diff --git a/ports/mongo-c-driver/portfile.cmake b/ports/mongo-c-driver/portfile.cmake index 40d1effa8..9106fecb9 100644 --- a/ports/mongo-c-driver/portfile.cmake +++ b/ports/mongo-c-driver/portfile.cmake @@ -10,8 +10,8 @@ vcpkg_from_github( PATCHES fix-uwp.patch ) -vcpkg_check_features( - "snappy" MONGO_ENABLE_SNAPPY +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + "snappy" ENABLE_SNAPPY ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") @@ -38,8 +38,8 @@ vcpkg_configure_cmake( -DENABLE_SSL=${ENABLE_SSL} -DENABLE_ZLIB=SYSTEM -DENABLE_STATIC=${ENABLE_STATIC} - -DENABLE_SNAPPY=${MONGO_ENABLE_SNAPPY} -DBUILD_VERSION=${BUILD_VERSION} + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() diff --git a/ports/oniguruma/CONTROL b/ports/oniguruma/CONTROL index 768083b4e..6fe3ee2d0 100644 --- a/ports/oniguruma/CONTROL +++ b/ports/oniguruma/CONTROL @@ -1,5 +1,5 @@ Source: oniguruma -Version: 6.9.2-2 +Version: 6.9.2-3 Description: Modern and flexible regular expressions library Homepage: https://github.com/kkos/oniguruma diff --git a/ports/oniguruma/portfile.cmake b/ports/oniguruma/portfile.cmake index 586bfbe07..5b2fe2adf 100644 --- a/ports/oniguruma/portfile.cmake +++ b/ports/oniguruma/portfile.cmake @@ -8,17 +8,16 @@ vcpkg_from_github( HEAD_REF master ) -if("non-posix" IN_LIST FEATURES) - set(ENABLE_POSIX_API OFF) -else() - set(ENABLE_POSIX_API ON) -endif() +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + INVERTED_FEATURES + "non-posix" ENABLE_POSIX_API +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS - -DENABLE_POSIX_API=${ENABLE_POSIX_API} + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL index ccb7e4659..7b5ba5af9 100644 --- a/ports/opencv/CONTROL +++ b/ports/opencv/CONTROL @@ -1,8 +1,9 @@ Source: opencv -Version: 4.1.1 +Version: 4.1.1-1 Homepage: https://github.com/opencv/opencv Description: Computer vision library -Build-Depends: opencv4 +Build-Depends: opencv4[core] +Default-Features: dnn, jpeg, opengl, png, tiff, webp Feature: nonfree Build-Depends: opencv4[nonfree] diff --git a/ports/opencv4/CONTROL b/ports/opencv4/CONTROL index 29d6ec9ce..ca52577c7 100644 --- a/ports/opencv4/CONTROL +++ b/ports/opencv4/CONTROL @@ -1,5 +1,5 @@ Source: opencv4 -Version: 4.1.1 +Version: 4.1.1-1 Build-Depends: protobuf, zlib Description: computer vision library Default-Features: dnn, jpeg, opengl, png, tiff, webp diff --git a/ports/opencv4/portfile.cmake b/ports/opencv4/portfile.cmake index a1faafc71..efafab614 100644 --- a/ports/opencv4/portfile.cmake +++ b/ports/opencv4/portfile.cmake @@ -27,34 +27,53 @@ string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) set(ADE_DIR ${CURRENT_INSTALLED_DIR}/share/ade CACHE PATH "Path to existing ADE CMake Config file") -vcpkg_check_features( +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS "ade" WITH_ADE "contrib" WITH_CONTRIB "cuda" WITH_CUDA + "cuda" WITH_CUBLAS "dnn" BUILD_opencv_dnn "eigen" WITH_EIGEN "ffmpeg" WITH_FFMPEG "gdcm" WITH_GDCM "halide" WITH_HALIDE - "ipp" WITH_IPP "jasper" WITH_JASPER "jpeg" WITH_JPEG "nonfree" OPENCV_ENABLE_NONFREE "openexr" WITH_OPENEXR "opengl" WITH_OPENGL "openmp" WITH_OPENMP - "ovis" BUILD_opencv_ovis "png" WITH_PNG "qt" WITH_QT "sfm" BUILD_opencv_sfm - "tbb" WITH_TBB "tiff" WITH_TIFF - "vtk" WITH_VTK "webp" WITH_WEBP "world" BUILD_opencv_world ) -if(WITH_CUDA) +# Cannot use vcpkg_check_features() for "ipp", "ovis", "tbb", and "vtk". +# As the respective value of their variables can be unset conditionally. +set(WITH_IPP OFF) +if("ipp" IN_LIST FEATURES) + set(WITH_IPP ON) +endif() + +set(BUILD_opencv_ovis OFF) +if("ovis" IN_LIST FEATURES) + set(BUILD_opencv_ovis ON) +endif() + +set(WITH_TBB OFF) +if("tbb" IN_LIST FEATURES) + set(WITH_TBB ON) +endif() + +set(WITH_VTK OFF) +if("vtk" IN_LIST FEATURES) + set(WITH_VTK ON) +endif() + +if("cuda" IN_LIST FEATURES) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://github.com/NVIDIA/NVIDIAOpticalFlowSDK/archive/79c6cee80a2df9a196f20afd6b598a9810964c32.zip" FILENAME "opencv-cache/nvidia_optical_flow/ca5acedee6cb45d0ec610a6732de5c15-79c6cee80a2df9a196f20afd6b598a9810964c32.zip" @@ -64,7 +83,7 @@ endif() # Build image quality module when building with 'contrib' feature and not UWP. set(BUILD_opencv_quality OFF) -if(WITH_CONTRIB) +if("contrib" IN_LIST FEATURES) if (VCPKG_TARGET_IS_UWP) set(BUILD_opencv_quality OFF) message(WARNING "The image quality module (quality) does not build for UWP, the module has been disabled.") @@ -144,7 +163,7 @@ if(WITH_CONTRIB) set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") endif() -if(BUILD_opencv_dnn) +if("dnn" IN_LIST FEATURES) vcpkg_download_distfile(TINYDNN_ARCHIVE URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz" FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz" @@ -238,7 +257,6 @@ vcpkg_configure_cmake( -DOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG -DCMAKE_DEBUG_POSTFIX=d ###### Ungrouped Entries - -DOPENCV_ENABLE_NONFREE=${OPENCV_ENABLE_NONFREE} -DBUILD_opencv_java=OFF -Dade_DIR=${ADE_DIR} ###### Disable build 3rd party libs @@ -285,34 +303,17 @@ vcpkg_configure_cmake( ${BUILD_WITH_CONTRIB_FLAG} -DOPENCV_OTHER_INSTALL_PATH=share/opencv ###### customized properties - -DWITH_ADE=${WITH_ADE} - -DWITH_CUBLAS=${WITH_CUDA} - -DWITH_CUDA=${WITH_CUDA} - -DWITH_EIGEN=${WITH_EIGEN} - -DWITH_FFMPEG=${WITH_FFMPEG} - -DWITH_GDCM=${WITH_GDCM} - -DWITH_HALIDE=${WITH_HALIDE} + ## Options from vcpkg_check_features() + ${FEATURE_OPTIONS} -DWITH_IPP=${WITH_IPP} - -DWITH_JASPER=${WITH_JASPER} - -DWITH_JPEG=${WITH_JPEG} -DWITH_MSMF=${WITH_MSMF} - -DWITH_OPENEXR=${WITH_OPENEXR} - -DWITH_OPENGL=${WITH_OPENGL} - -DWITH_OPENMP=${WITH_OPENMP} - -DWITH_PNG=${WITH_PNG} -DWITH_PROTOBUF=ON - -DWITH_QT=${WITH_QT} -DWITH_TBB=${WITH_TBB} - -DWITH_TIFF=${WITH_TIFF} -DWITH_VTK=${WITH_VTK} - -DWITH_WEBP=${WITH_WEBP} ###### WITH PROPERTIES explicitly disabled, they have problems with libraries if already installed by user and that are "involuntarily" found during install -DWITH_LAPACK=OFF ###### BUILD_options (mainly modules which require additional libraries) -DBUILD_opencv_ovis=${BUILD_opencv_ovis} - -DBUILD_opencv_sfm=${BUILD_opencv_sfm} - -DBUILD_opencv_dnn=${BUILD_opencv_dnn} - -DBUILD_opencv_world=${BUILD_opencv_world} ###### The following modules are disabled for UWP -DBUILD_opencv_quality=${BUILD_opencv_quality} ) @@ -356,7 +357,7 @@ find_package(VTK QUIET) find_package(OpenMP QUIET) find_package(GDCM QUIET)" OPENCV_MODULES "${OPENCV_MODULES}") - if(WITH_OPENMP) + if("openmp" IN_LIST FEATURES) string(REPLACE "set_target_properties(opencv_core PROPERTIES INTERFACE_LINK_LIBRARIES \"" "set_target_properties(opencv_core PROPERTIES diff --git a/ports/paho-mqttpp3/CONTROL b/ports/paho-mqttpp3/CONTROL index 68f1867f6..7e3391668 100644 --- a/ports/paho-mqttpp3/CONTROL +++ b/ports/paho-mqttpp3/CONTROL @@ -1,5 +1,5 @@ Source: paho-mqttpp3 -Version: 1.0.1 +Version: 1.0.1-1 Description: Paho project provides open-source C++ wrapper for Paho C library Build-Depends: paho-mqtt Default-Features: ssl diff --git a/ports/paho-mqttpp3/portfile.cmake b/ports/paho-mqttpp3/portfile.cmake index dcc745d72..f91177ac0 100644 --- a/ports/paho-mqttpp3/portfile.cmake +++ b/ports/paho-mqttpp3/portfile.cmake @@ -9,7 +9,9 @@ vcpkg_from_github( HEAD_REF master ) -vcpkg_check_features("ssl" PAHO_WITH_SSL) +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + "ssl" PAHO_WITH_SSL +) # Link with 'paho-mqtt3as' library set(PAHO_C_LIBNAME paho-mqtt3as) @@ -48,8 +50,8 @@ vcpkg_configure_cmake( OPTIONS -DPAHO_BUILD_STATIC=${PAHO_MQTTPP3_STATIC} -DPAHO_BUILD_SHARED=${PAHO_MQTTPP3_SHARED} - -DPAHO_WITH_SSL=${PAHO_WITH_SSL} -DPAHO_MQTT_C_INCLUDE_DIRS=${PAHO_C_INC} + ${FEATURE_OPTIONS} ${PAHO_OPTIONS} ) diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL index 1cf828db4..3b40a6a4d 100644 --- a/ports/pcl/CONTROL +++ b/ports/pcl/CONTROL @@ -1,5 +1,5 @@ Source: pcl -Version: 1.9.1-6 +Version: 1.9.1-7 Homepage: https://github.com/PointCloudLibrary/pcl Description: Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing. Build-Depends: eigen3, flann, qhull, vtk, libpng, boost-system, boost-filesystem, boost-thread, boost-date-time, boost-iostreams, boost-random, boost-foreach, boost-dynamic-bitset, boost-property-map, boost-graph, boost-multi-array, boost-signals2, boost-ptr-container, boost-uuid, boost-interprocess, boost-asio diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake index 6ef083351..591eeead9 100644 --- a/ports/pcl/portfile.cmake +++ b/ports/pcl/portfile.cmake @@ -18,13 +18,15 @@ file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindFLANN.cmake) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS) -vcpkg_check_features( - openni2 WITH_OPENNI2 - qt WITH_QT - pcap WITH_PCAP - cuda WITH_CUDA - tools BUILD_TOOLS - opengl WITH_OPENGL +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + openni2 WITH_OPENNI2 + qt WITH_QT + pcap WITH_PCAP + cuda WITH_CUDA + cuda BUILD_CUDA + cuda BUILD_GPU + tools BUILD_tools + opengl WITH_OPENGL ) vcpkg_configure_cmake( @@ -33,24 +35,18 @@ vcpkg_configure_cmake( OPTIONS # BUILD -DBUILD_surface_on_nurbs=ON - -DBUILD_tools=${BUILD_TOOLS} - -DBUILD_CUDA=${WITH_CUDA} - -DBUILD_GPU=${WITH_CUDA} # build GPU when use CUDA # PCL -DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS} -DPCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS} -DPCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS} -DPCL_SHARED_LIBS=${PCL_SHARED_LIBS} # WITH - -DWITH_CUDA=${WITH_CUDA} -DWITH_LIBUSB=OFF - -DWITH_OPENNI2=${WITH_OPENNI2} - -DWITH_PCAP=${WITH_PCAP} -DWITH_PNG=ON -DWITH_QHULL=ON - -DWITH_QT=${WITH_QT} -DWITH_VTK=ON - -DWITH_OPENGL=${WITH_OPENGL} + # FEATURES + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() diff --git a/ports/rocksdb/portfile.cmake b/ports/rocksdb/portfile.cmake index 535f3708c..e50a306fc 100644 --- a/ports/rocksdb/portfile.cmake +++ b/ports/rocksdb/portfile.cmake @@ -28,44 +28,22 @@ string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" WITH_MD_LIBRARY) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ROCKSDB_DISABLE_INSTALL_SHARED_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ROCKSDB_DISABLE_INSTALL_STATIC_LIB) -set(WITH_LZ4 OFF) -if("lz4" IN_LIST FEATURES) - set(WITH_LZ4 ON) -endif() - -set(WITH_SNAPPY OFF) -if("snappy" IN_LIST FEATURES) - set(WITH_SNAPPY ON) -endif() - -set(WITH_ZLIB OFF) -if("zlib" IN_LIST FEATURES) - set(WITH_ZLIB ON) -endif() - -set(WITH_ZLIB OFF) -if("zstd" IN_LIST FEATURES) - set(WITH_ZLIB ON) -endif() - -set(WITH_TBB OFF) -set(ROCKSDB_IGNORE_PACKAGE_TBB TRUE) -if("tbb" IN_LIST FEATURES) - set(WITH_TBB ON) - set(ROCKSDB_IGNORE_PACKAGE_TBB FALSE) -endif() - +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + "lz4" WITH_LZ4 + "snappy" WITH_SNAPPY + "zlib" WITH_ZLIB + "zstd" WITH_ZSTD + "tbb" WITH_TBB + INVERTED_FEATURES + "tbb" CMAKE_DISABLE_FIND_PACKAGE_TBB +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS -DWITH_GFLAGS=0 - -DWITH_SNAPPY=${WITH_SNAPPY} - -DWITH_LZ4=${WITH_LZ4} - -DWITH_ZLIB=${WITH_ZLIB} - -DWITH_TBB=${WITH_TBB} - -DWITH_ZSTD=${WITH_ZSTD} -DWITH_TESTS=OFF -DUSE_RTTI=1 -DROCKSDB_INSTALL_ON_WINDOWS=ON @@ -75,10 +53,10 @@ vcpkg_configure_cmake( -DCMAKE_DEBUG_POSTFIX=d -DROCKSDB_DISABLE_INSTALL_SHARED_LIB=${ROCKSDB_DISABLE_INSTALL_SHARED_LIB} -DROCKSDB_DISABLE_INSTALL_STATIC_LIB=${ROCKSDB_DISABLE_INSTALL_STATIC_LIB} - -DCMAKE_DISABLE_FIND_PACKAGE_TBB=${ROCKSDB_IGNORE_PACKAGE_TBB} -DCMAKE_DISABLE_FIND_PACKAGE_NUMA=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_gtest=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() diff --git a/ports/xsimd/CONTROL b/ports/xsimd/CONTROL index 6147d355c..dc442f858 100644 --- a/ports/xsimd/CONTROL +++ b/ports/xsimd/CONTROL @@ -1,5 +1,5 @@ Source: xsimd -Version: 7.2.3-1 +Version: 7.2.3-2 Description: Modern, portable C++ wrappers for SIMD intrinsics Homepage: https://github.com/QuantStack/xsimd diff --git a/ports/xsimd/portfile.cmake b/ports/xsimd/portfile.cmake index 338afff45..ab293c408 100644 --- a/ports/xsimd/portfile.cmake +++ b/ports/xsimd/portfile.cmake @@ -10,16 +10,18 @@ vcpkg_from_github( HEAD_REF master ) -vcpkg_check_features(xcomplex ENABLE_XTL_COMPLEX) +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + xcomplex ENABLE_XTL_COMPLEX +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS -DENABLE_FALLBACK=OFF - -DENABLE_XTL_COMPLEX=${ENABLE_XTL_COMPLEX} -DBUILD_TESTS=OFF -DDOWNLOAD_GTEST=OFF + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() diff --git a/ports/xtensor/CONTROL b/ports/xtensor/CONTROL index 138d9e1fe..14df243d9 100644 --- a/ports/xtensor/CONTROL +++ b/ports/xtensor/CONTROL @@ -1,5 +1,5 @@ Source: xtensor -Version: 0.20.7-1 +Version: 0.20.7-2 Description: C++ tensors with broadcasting and lazy computing Homepage: https://quantstack.net/xtensor Build-Depends: nlohmann-json, xtl diff --git a/ports/xtensor/portfile.cmake b/ports/xtensor/portfile.cmake index 9c8b3b63e..d30743a40 100644 --- a/ports/xtensor/portfile.cmake +++ b/ports/xtensor/portfile.cmake @@ -10,7 +10,7 @@ vcpkg_from_github( HEAD_REF master ) -vcpkg_check_features( +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS xsimd XTENSOR_USE_XSIMD tbb XTENSOR_USE_TBB ) diff --git a/ports/zeromq/CONTROL b/ports/zeromq/CONTROL index 4a638759d..d0dbe6be9 100644 --- a/ports/zeromq/CONTROL +++ b/ports/zeromq/CONTROL @@ -1,5 +1,5 @@ Source: zeromq -Version: 2019-07-09 +Version: 2019-07-09-1 Homepage: https://github.com/zeromq/libzmq Description: The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products diff --git a/ports/zeromq/portfile.cmake b/ports/zeromq/portfile.cmake index 381bbccee..7f42cf521 100644 --- a/ports/zeromq/portfile.cmake +++ b/ports/zeromq/portfile.cmake @@ -11,7 +11,9 @@ vcpkg_from_github( string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) -vcpkg_check_features(sodium WITH_LIBSODIUM) +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + sodium WITH_LIBSODIUM +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -21,8 +23,8 @@ vcpkg_configure_cmake( -DPOLLER=select -DBUILD_STATIC=${BUILD_STATIC} -DBUILD_SHARED=${BUILD_SHARED} - -DWITH_LIBSODIUM=${WITH_LIBSODIUM} -DWITH_PERF_TOOL=OFF + ${FEATURE_OPTIONS} OPTIONS_DEBUG "-DCMAKE_PDB_OUTPUT_DIRECTORY=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" ) diff --git a/scripts/cmake/vcpkg_check_features.cmake b/scripts/cmake/vcpkg_check_features.cmake index d089ac5b1..81ebc234d 100644 --- a/scripts/cmake/vcpkg_check_features.cmake +++ b/scripts/cmake/vcpkg_check_features.cmake @@ -1,112 +1,191 @@ ## # vcpkg_check_features -## -## Check if one or more features are a part of the package installation. -## +## Check if one or more features are a part of a package installation. +## ## ## Usage ## ```cmake ## vcpkg_check_features( -## -## [ ] -## ... +## OUT_FEATURE_OPTIONS +## [FEATURES +## +## [ ] +## ...] +## [INVERTED_FEATURES +## +## [ ] +## ...] ## ) ## ``` -## -## `vcpkg_check_features` accepts a list of (feature, output_variable) pairs. If a feature is specified, the corresponding output variable will be set as `ON`, or `OFF` otherwise. The syntax is similar to the `PROPERTIES` argument of `set_target_properties`. -## -## `vcpkg_check_features` will create a variable `FEATURE_OPTIONS` in the parent scope, which you can pass as a part of `OPTIONS` argument when calling functions like `vcpkg_config_cmake`: -## ```cmake -## vcpkg_config_cmake( -## SOURCE_PATH ${SOURCE_PATH} -## PREFER_NINJA -## OPTIONS -## -DBUILD_TESTING=ON -## ${FEATURE_OPTIONS} -## ) -## ``` -## +## `vcpkg_check_features()` accepts these parameters: +## +## * `OUT_FEATURE_OPTIONS`: +## An output variable, the function will clear the variable passed to `OUT_FEATURE_OPTIONS` +## and then set it to contain a list of option definitions (`-D=ON|OFF`). +## +## This should be set to `FEATURE_OPTIONS` by convention. +## +## * `FEATURES`: +## A list of (`FEATURE_NAME`, `OPTION_NAME`) pairs. +## For each `FEATURE_NAME` a definition is added to `OUT_FEATURE_OPTIONS` in the form of: +## +## * `-D=ON`, if a feature is specified for installation, +## * `-D=OFF`, otherwise. +## +## * `INVERTED_FEATURES`: +## A list of (`FEATURE_NAME`, `OPTION_NAME`) pairs, uses reversed logic from `FEATURES`. +## For each `FEATURE_NAME` a definition is added to `OUT_FEATURE_OPTIONS` in the form of: +## +## * `-D=OFF`, if a feature is specified for installation, +## * `-D=ON`, otherwise. +## +## ## ## Notes +## +## The `FEATURES` name parameter can be omitted if no `INVERTED_FEATURES` are used. +## +## At least one (`FEATURE_NAME`, `OPTION_NAME`) pair must be passed to the function call. +## +## Arguments passed to `FEATURES` and `INVERTED_FEATURES` are not validated to prevent duplication. +## If the same (`FEATURE_NAME`, `OPTION_NAME`) pair is passed to both lists, +## two conflicting definitions are added to `OUT_FEATURE_OPTIONS`. +## +## +## ## Examples +## +## ### Example 1: Regular features +## ## ```cmake -## vcpkg_check_features( ) -## ``` -## can be used as a replacement of: -## ```cmake -## if( IN_LIST FEATURES) -## set( ON) -## else() -## set( OFF) -## endif() +## $ ./vcpkg install mimalloc[asm,secure] +## +## # ports/mimalloc/portfile.cmake +## vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +## # Keyword FEATURES is optional if INVERTED_FEATURES are not used +## asm MI_SEE_ASM +## override MI_OVERRIDE +## secure MI_SECURE +## ) +## +## vcpkg_configure_cmake( +## SOURCE_PATH ${SOURCE_PATH} +## PREFER_NINJA +## OPTIONS +## # Expands to "-DMI_SEE_ASM=ON; -DMI_OVERRIDE=OFF; -DMI_SECURE=ON" +## ${FEATURE_OPTIONS} +## ) ## ``` -## -## However, if you have a feature that was checked like this before: +## +## ### Example 2: Inverted features +## ## ```cmake -## if( IN_LIST FEATURES) -## set( OFF) -## else() -## set( ON) -## endif() +## $ ./vcpkg install cpprestsdk[websockets] +## +## # ports/cpprestsdk/portfile.cmake +## vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +## INVERTED_FEATURES # <- Keyword INVERTED_FEATURES required +## brotli CPPREST_EXCLUDE_BROTLI +## websockets CPPREST_EXCLUDE_WEBSOCKETS +## ) +## +## vcpkg_configure_cmake( +## SOURCE_PATH ${SOURCE_PATH} +## PREFER_NINJA +## OPTIONS +## # Expands to "-DCPPREST_EXCLUDE_BROTLI=ON; -DCPPREST_EXCLUDE_WEBSOCKETS=OFF" +## ${FEATURE_OPTIONS} +## ) ## ``` -## then you should not use `vcpkg_check_features` instead. [```oniguruma```](https://github.com/microsoft/vcpkg/blob/master/ports/oniguruma/portfile.cmake), for example, has a feature named `non-posix` which is checked with: +## +## ### Example 3: Set multiple options for same feature +## ## ```cmake -## if("non-posix" IN_LIST FEATURES) -## set(ENABLE_POSIX_API OFF) -## else() -## set(ENABLE_POSIX_API ON) -## endif() -## ``` -## and by replacing these code with: +## $ ./vcpkg install pcl[cuda] +## +## # ports/pcl/portfile.cmake +## vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +## cuda WITH_CUDA +## cuda BUILD_CUDA +## cuda BUILD_GPU +## ) +## +## vcpkg_configure_cmake( +## SOURCE_PATH ${SOURCE_PATH} +## PREFER_NINJA +## OPTIONS +## # Expands to "-DWITH_CUDA=ON; -DBUILD_CUDA=ON; -DBUILD_GPU=ON" +## ${FEATURE_OPTIONS} +## ) +## ``` +## +## ### Example 4: Use regular and inverted features +## ## ```cmake -## vcpkg_check_features(non-posix ENABLE_POSIX_API) -## ``` -## is totally wrong. -## -## `vcpkg_check_features` is supposed to be called only once. Otherwise, the `FEATURE_OPTIONS` variable set by a previous call will be overwritten. -## -## ## Examples -## -## * [czmq](https://github.com/microsoft/vcpkg/blob/master/ports/czmq/portfile.cmake) -## * [xsimd](https://github.com/microsoft/vcpkg/blob/master/ports/xsimd/portfile.cmake) -## * [xtensor](https://github.com/microsoft/vcpkg/blob/master/ports/xtensor/portfile.cmake) +## $ ./vcpkg install rocksdb[tbb] +## +## # ports/rocksdb/portfile.cmake +## vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +## FEATURES # <- Keyword FEATURES is required because INVERTED_FEATURES are being used +## tbb WITH_TBB +## INVERTED_FEATURES +## tbb ROCKSDB_IGNORE_PACKAGE_TBB +## ) +## +## vcpkg_configure_cmake( +## SOURCE_PATH ${SOURCE_PATH} +## PREFER_NINJA +## OPTIONS +## # Expands to "-DWITH_TBB=ON; -DROCKSDB_IGNORE_PACKAGE_TBB=OFF" +## ${FEATURE_OPTIONS} +## ) +## ``` +## +## ## Examples in portfiles +## +## * [cpprestsdk](https://github.com/microsoft/vcpkg/blob/master/ports/cpprestsdk/portfile.cmake) +## * [pcl](https://github.com/microsoft/vcpkg/blob/master/ports/pcl/portfile.cmake) +## * [rocksdb](https://github.com/microsoft/vcpkg/blob/master/ports/rocksdb/portfile.cmake) +## function(vcpkg_check_features) - cmake_parse_arguments(_vcf "" "" "" ${ARGN}) - - list(LENGTH ARGN _vcf_ARGC) - math(EXPR _vcf_INCORRECT_ARGN "${_vcf_ARGC} % 2") + cmake_parse_arguments(_vcf "" "OUT_FEATURE_OPTIONS" "FEATURES;INVERTED_FEATURES" ${ARGN}) - if(_vcf_INCORRECT_ARGN) - message(FATAL_ERROR "Called with incorrect number of arguments.") + if (NOT DEFINED _vcf_OUT_FEATURE_OPTIONS) + message(FATAL_ERROR "OUT_FEATURE_OPTIONS must be specified.") endif() - set(_vcf_IS_FEATURE_ARG ON) - set(_vcf_FEATURE_OPTIONS) - - # Process (feature, output_var) pairs - foreach(_vcf_ARG ${ARGN}) - if(_vcf_IS_FEATURE_ARG) - set(_vcf_FEATURE ${_vcf_ARG}) - - if(NOT ${_vcf_FEATURE} IN_LIST ALL_FEATURES) - message(FATAL_ERROR "Unknown feature: ${_vcf_FEATURE}") - endif() - - set(_vcf_IS_FEATURE_ARG OFF) - else() - set(_vcf_FEATURE_VAR ${_vcf_ARG}) + macro(_check_features _vcf_ARGUMENT _set_if _set_else) + list(LENGTH ${_vcf_ARGUMENT} FEATURES_SET_LEN) + math(EXPR _vcf_INCORRECT_ARGN "${FEATURES_SET_LEN} % 2") + if(_vcf_INCORRECT_ARGN) + message(FATAL_ERROR "Called with incorrect number of arguments.") + endif() - if(${_vcf_FEATURE} IN_LIST FEATURES) - set(${_vcf_FEATURE_VAR} ON PARENT_SCOPE) - list(APPEND _vcf_FEATURE_OPTIONS "-D${_vcf_FEATURE_VAR}=ON") + set(_vcf_IS_FEATURE_NAME_ARG ON) + foreach(_vcf_ARG ${${_vcf_ARGUMENT}}) + if(_vcf_IS_FEATURE_NAME_ARG) + set(_vcf_FEATURE_NAME ${_vcf_ARG}) + if(NOT ${_vcf_FEATURE_NAME} IN_LIST ALL_FEATURES) + message(FATAL_ERROR "Unknown feature: ${_vcf_FEATURE_NAME}") + endif() + set(_vcf_IS_FEATURE_NAME_ARG OFF) else() - set(${_vcf_FEATURE_VAR} OFF PARENT_SCOPE) - list(APPEND _vcf_FEATURE_OPTIONS "-D${_vcf_FEATURE_VAR}=OFF") + set(_vcf_FEATURE_VARIABLE ${_vcf_ARG}) + if(${_vcf_FEATURE_NAME} IN_LIST FEATURES) + list(APPEND _vcf_FEATURE_OPTIONS "-D${_vcf_FEATURE_VARIABLE}=${_set_if}") + else() + list(APPEND _vcf_FEATURE_OPTIONS "-D${_vcf_FEATURE_VARIABLE}=${_set_else}") + endif() + set(_vcf_IS_FEATURE_NAME_ARG ON) endif() + endforeach() + endmacro() - set(_vcf_IS_FEATURE_ARG ON) - endif() - endforeach() + set(_vcf_FEATURE_OPTIONS) - if(DEFINED FEATURE_OPTIONS) - message(WARNING "FEATURE_OPTIONS is already defined and will be overwritten.") + if (DEFINED _vcf_FEATURES OR DEFINED _vcf_INVERTED_FEATURES) + _check_features(_vcf_FEATURES ON OFF) + _check_features(_vcf_INVERTED_FEATURES OFF ON) + else() + # Skip arguments that correspond to OUT_FEATURE_OPTIONS and its value. + list(SUBLIST ARGN 2 -1 _vcf_ARGN) + _check_features(_vcf_ARGN ON OFF) endif() - - set(FEATURE_OPTIONS ${_vcf_FEATURE_OPTIONS} PARENT_SCOPE) + set(${_vcf_OUT_FEATURE_OPTIONS} "${_vcf_FEATURE_OPTIONS}" PARENT_SCOPE) endfunction() diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake index 37362a5a2..6c392d385 100644 --- a/scripts/cmake/vcpkg_configure_cmake.cmake +++ b/scripts/cmake/vcpkg_configure_cmake.cmake @@ -8,6 +8,7 @@ ## SOURCE_PATH <${SOURCE_PATH}> ## [PREFER_NINJA] ## [DISABLE_PARALLEL_CONFIGURE] +## [NO_CHARSET_FLAG] ## [GENERATOR <"NMake Makefiles">] ## [OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...] ## [OPTIONS_RELEASE <-DOPTIMIZE=1>...] @@ -28,6 +29,11 @@ ## Disables running the CMake configure step in parallel. ## This is needed for libraries which write back into their source directory during configure. ## +## ### NO_CHARSET_FLAG +## Disables passing `utf-8` as the default character set to `CMAKE_C_FLAGS` and `CMAKE_CXX_FLAGS`. +## +## This is needed for libraries that set their own source code's character set. +## ## ### GENERATOR ## Specifies the precise generator to use. ## -- cgit v1.2.3 From 24f0ed67234869ca8dcdeceee5fc0aee84c1eb4b Mon Sep 17 00:00:00 2001 From: Vitaliy Didik Date: Wed, 14 Aug 2019 17:40:23 +0300 Subject: [libidn2] Update to version 2.2.0. --- ports/libidn2/CONTROL | 2 +- ports/libidn2/portfile.cmake | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ports/libidn2/CONTROL b/ports/libidn2/CONTROL index 01d89d69b..3ed7546ba 100644 --- a/ports/libidn2/CONTROL +++ b/ports/libidn2/CONTROL @@ -1,5 +1,5 @@ Source: libidn2 -Version: 2.1.1-1 +Version: 2.2.0 Build-Depends: libiconv Homepage: https://www.gnu.org/software/libidn/ Description: GNU Libidn is an implementation of the Stringprep, Punycode and IDNA 2003 specifications. Libidn's purpose is to encode and decode internationalized domain names. diff --git a/ports/libidn2/portfile.cmake b/ports/libidn2/portfile.cmake index d7de30f41..2b5be4692 100644 --- a/ports/libidn2/portfile.cmake +++ b/ports/libidn2/portfile.cmake @@ -1,12 +1,12 @@ include(vcpkg_common_functions) -set(IDN2_VERSION 2.1.1) -set(IDN2_FILENAME libidn2-${IDN2_VERSION}a.tar.gz) +set(IDN2_VERSION 2.2.0) +set(IDN2_FILENAME libidn2-${IDN2_VERSION}.tar.gz) vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnu.org/gnu/libidn/${IDN2_FILENAME}" FILENAME "${IDN2_FILENAME}" - SHA512 404a739e33d324f700ac8e8119de3feef0de778bbb11be09049cb64eab447cd101883f6d489cca1e88c230f58bcaf9758fe102e571b6501450aa750ec2a4a9c6 + SHA512 ccf56056a378d49a28ff67a2a23cd3d32ce51f86a78f84839b98dad709a1d0d03ac8d7c1496f0e4d3536bca00e3d09d34d76a37317b2ce87e3aa66bdf4e877b8 ) vcpkg_extract_source_archive_ex( -- cgit v1.2.3 From e756a7564deb411b505a73a78e2e59bc78d4d868 Mon Sep 17 00:00:00 2001 From: contre Date: Wed, 14 Aug 2019 14:03:38 -0700 Subject: [gtest] update to 90a443f9c2437ca8a682a1ac625eba64e1d74a8a (#7692) Resolves #7690 --- ports/gtest/CONTROL | 2 +- ports/gtest/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/gtest/CONTROL b/ports/gtest/CONTROL index 7c91eb253..97b5ad3a8 100644 --- a/ports/gtest/CONTROL +++ b/ports/gtest/CONTROL @@ -1,4 +1,4 @@ Source: gtest -Version: 2019-01-04-2 +Version: 2019-08-14 Homepage: https://github.com/google/googletest Description: GoogleTest and GoogleMock testing frameworks. diff --git a/ports/gtest/portfile.cmake b/ports/gtest/portfile.cmake index 892221925..c6fd0162c 100644 --- a/ports/gtest/portfile.cmake +++ b/ports/gtest/portfile.cmake @@ -7,8 +7,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/googletest - REF b6cd405286ed8635ece71c72f118e659f4ade3fb - SHA512 1642a9cf1923d00c52c346399941517787431dad3e6d3a5da07bc02243a231a95e30e0a9568ffd29bb9b9757f15c1c47d2d811c2bedb301f2d27cf912be0a534 + REF 90a443f9c2437ca8a682a1ac625eba64e1d74a8a + SHA512 fc874a7977f11be58dc63993b520b4ae6ca43654fb5250c8b56df62a21f4dca8fcbdc81dfa106374b2bb7c59bc88952fbfc0e3ae4c7d63fdb502afbaeb39c822 HEAD_REF master PATCHES ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-z7-override.patch -- cgit v1.2.3 From 885370d30c06435ce3795b1bcf3138a3a0128df3 Mon Sep 17 00:00:00 2001 From: RT222 Date: Wed, 14 Aug 2019 23:05:02 +0200 Subject: [physx] Update to 4.1.1 (with support for Visual Studio 2019) (#7679) --- ports/physx/CONTROL | 2 +- ports/physx/msvc_142_bug_workaround.patch | 13 +++++++++++++ ports/physx/portfile.cmake | 11 ++++++++--- 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 ports/physx/msvc_142_bug_workaround.patch diff --git a/ports/physx/CONTROL b/ports/physx/CONTROL index 284216488..5d2e85896 100644 --- a/ports/physx/CONTROL +++ b/ports/physx/CONTROL @@ -1,3 +1,3 @@ Source: physx -Version: commit-624f2cb6c0392013d54b235d9072a49d01c3cb6c +Version: 4.1.1-1 Description: The NVIDIA PhysX SDK is a scalable multi-platform physics solution supporting a wide range of devices, from smartphones to high-end multicore CPUs and GPUs diff --git a/ports/physx/msvc_142_bug_workaround.patch b/ports/physx/msvc_142_bug_workaround.patch new file mode 100644 index 000000000..55433350d --- /dev/null +++ b/ports/physx/msvc_142_bug_workaround.patch @@ -0,0 +1,13 @@ +diff --git a/physx/source/foundation/include/windows/PsWindowsInlineAoS.h b/physx/source/foundation/include/windows/PsWindowsInlineAoS.h +index 881dffb..7111189 100644 +--- a/physx/source/foundation/include/windows/PsWindowsInlineAoS.h ++++ b/physx/source/foundation/include/windows/PsWindowsInlineAoS.h +@@ -363,7 +363,7 @@ + PX_FORCE_INLINE Vec3V V3LoadA(const PxF32* const f) + { + ASSERT_ISALIGNED16(f); +- return V4ClearW(_mm_load_ps(f)); ++ return [ & ](){ return V4ClearW(_mm_load_ps(f)); }(); // MSVC 142 bug workaround + } + + PX_FORCE_INLINE Vec3V V3LoadU(const PxF32* const i) diff --git a/ports/physx/portfile.cmake b/ports/physx/portfile.cmake index 2e0dfa963..0eef2901b 100644 --- a/ports/physx/portfile.cmake +++ b/ports/physx/portfile.cmake @@ -20,6 +20,9 @@ if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140") elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141") set(MSVC_VERSION "15") set(TOOLSET_VERSION "141") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + set(MSVC_VERSION "16") + set(TOOLSET_VERSION "142") else() message(FATAL_ERROR "Unsupported platform toolset.") endif() @@ -27,9 +30,10 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NVIDIAGameWorks/PhysX - REF 624f2cb6c0392013d54b235d9072a49d01c3cb6c - SHA512 80b465f6214434fd53954fe124d8f8aa1ddfcb60d80261f1dc06713bf7fb0f42d8cd96a393fbc46547d9c2199039f386220d7eea63c849ad98863ff26b731e0c + REF ae80dede0546d652040ae6260a810e53e20a06fa + SHA512 f3a690039cf39fe2db9a728b82af0d39eaa02340a853bdad4b5152d63532367eb24fc7033a614882168049b80d803b6225fc60ed2900a9d0deab847f220540be HEAD_REF master + PATCHES msvc_142_bug_workaround.patch ) set(BUILD_SNIPPETS "False") @@ -73,13 +77,14 @@ set(RELEASE_CONFIGURATION "release") set(DEBUG_CONFIGURATION "debug") vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/physx/compiler/vc15win${WINDOWS_PLATFORM}/PhysXSDK.sln + PROJECT_PATH ${SOURCE_PATH}/physx/compiler/vc${MSVC_VERSION}win${WINDOWS_PLATFORM}/PhysXSDK.sln RELEASE_CONFIGURATION ${RELEASE_CONFIGURATION} DEBUG_CONFIGURATION ${DEBUG_CONFIGURATION} PLATFORM ${MSBUILD_PLATFORM} ) file(INSTALL ${SOURCE_PATH}/physx/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/physx/) +file(INSTALL ${SOURCE_PATH}/pxshared/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/physx/) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(GLOB RELEASE_BINS ${SOURCE_PATH}/physx/bin/win.x86_${WINDOWS_PLATFORM}.vc${TOOLSET_VERSION}.${RUNTIME_LIBRARY_LINKAGE}/${RELEASE_CONFIGURATION}/*.dll) -- cgit v1.2.3 From 50253f06a4c2199f581f5669d359759ef9285cb8 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Thu, 15 Aug 2019 05:05:21 +0800 Subject: [fast-cpp-csv-parser] Add new port (#7681) --- ports/fast-cpp-csv-parser/CONTROL | 4 ++++ ports/fast-cpp-csv-parser/portfile.cmake | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 ports/fast-cpp-csv-parser/CONTROL create mode 100644 ports/fast-cpp-csv-parser/portfile.cmake diff --git a/ports/fast-cpp-csv-parser/CONTROL b/ports/fast-cpp-csv-parser/CONTROL new file mode 100644 index 000000000..a9766a66a --- /dev/null +++ b/ports/fast-cpp-csv-parser/CONTROL @@ -0,0 +1,4 @@ +Source: fast-cpp-csv-parser +Version: 2019-08-14 +Description: A small, easy-to-use and fast header-only library for reading comma separated value (CSV) files +Homepage: https://github.com/ben-strasser/fast-cpp-csv-parser diff --git a/ports/fast-cpp-csv-parser/portfile.cmake b/ports/fast-cpp-csv-parser/portfile.cmake new file mode 100644 index 000000000..be3ef7e88 --- /dev/null +++ b/ports/fast-cpp-csv-parser/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ben-strasser/fast-cpp-csv-parser + REF 78f413248fdeea27368481c4a1d48c059ac36680 + SHA512 f8eb477e0b5e82f5b5d7bdf045094dcc59433e7b6305a1e16e45c2c24f4bbb7f6e9540e17a8ffafce29ea2ebe3a2647174824abe80da5f2054f7df3d7da8c28d + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/csv.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) -- cgit v1.2.3 From f9c92910a7d0ee328aaeead71c8a5c59a1189a97 Mon Sep 17 00:00:00 2001 From: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> Date: Wed, 14 Aug 2019 23:06:00 +0200 Subject: Change CMakeLists.txt in toolsrc to allow compiling with llvm toolset (#4572) * llvm warning pessimistic move * warning missing override * warning invalid noreturn. ::TerminateProcess ist not marked as noreturn! * use more modern cmake features instead of adding c++ standard by hand. * Normalize line endings * Fix add_executable() * Fix target commands * Clean up CMakeLists.txt --- toolsrc/CMakeLists.txt | 36 ++++++++++++++++++++++++++---------- toolsrc/src/vcpkg/base/checks.cpp | 3 +-- toolsrc/src/vcpkg/install.cpp | 2 +- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt index 7a41874a6..7245179f2 100644 --- a/toolsrc/CMakeLists.txt +++ b/toolsrc/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.3) +cmake_minimum_required(VERSION 3.14) project(vcpkg C CXX) @@ -28,11 +28,32 @@ If you would like to try anyway, pass --allowAppleClang to bootstrap.sh.") elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang") set(CLANG 1) elseif(MSVC) - add_compile_options(/std:c++17 /FC) + add_compile_options(/FC) else() message(FATAL_ERROR "Unknown compiler: ${CMAKE_CXX_COMPILER_ID}") endif() +if(GCC OR (CLANG AND NOT MSVC)) + if(WERROR) + add_compile_options(-Wall -Wno-unknown-pragmas -Werror) + endif() +endif() + +if (DEFINE_DISABLE_METRICS) + set(DISABLE_METRICS_VALUE "1") +else() + set(DISABLE_METRICS_VALUE "0") +endif() + +file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp) + +add_library(vcpkglib OBJECT ${VCPKGLIB_SOURCES}) +add_executable(vcpkg src/vcpkg.cpp $) + +target_compile_features(vcpkg PRIVATE cxx_std_17) +target_compile_definitions(vcpkg PRIVATE -DDISABLE_METRICS=${DISABLE_METRICS_VALUE}) +target_include_directories(vcpkg PRIVATE include) + set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) @@ -52,9 +73,9 @@ if(CLANG) endif() if(GCC OR (CLANG AND USES_LIBSTDCXX)) - link_libraries(stdc++fs) -elseif(CLANG) - link_libraries(c++fs) + target_link_libraries(vcpkg PRIVATE stdc++fs) +elseif(CLANG AND NOT MSVC) + target_link_libraries(vcpkg PRIVATE c++fs) endif() if(GCC OR CLANG) @@ -64,11 +85,6 @@ if(GCC OR CLANG) endif() endif() -file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp) - -add_library(vcpkglib OBJECT ${VCPKGLIB_SOURCES}) -add_executable(vcpkg src/vcpkg.cpp $) - if (BUILD_TESTING) file(GLOB_RECURSE VCPKGTEST_SOURCES src/vcpkg-test/*.cpp) diff --git a/toolsrc/src/vcpkg/base/checks.cpp b/toolsrc/src/vcpkg/base/checks.cpp index 0266ad683..c7584258a 100644 --- a/toolsrc/src/vcpkg/base/checks.cpp +++ b/toolsrc/src/vcpkg/base/checks.cpp @@ -27,9 +27,8 @@ namespace vcpkg #if defined(_WIN32) ::TerminateProcess(::GetCurrentProcess(), exit_code); -#else - std::exit(exit_code); #endif + std::exit(exit_code); } void Checks::unreachable(const LineInfo& line_info) diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index 974e5f798..f6330e408 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -174,7 +174,7 @@ namespace vcpkg::Install const std::vector package_file_paths = fs.get_files_recursive(package_dir); const size_t package_remove_char_count = package_dir.generic_string().size() + 1; // +1 for the slash auto package_files = Util::fmap(package_file_paths, [package_remove_char_count](const fs::path& path) { - return std::move(std::string(path.generic_string(), package_remove_char_count)); + return std::move(std::string(path.generic_string(), package_remove_char_count)); }); return SortedVector(std::move(package_files)); -- cgit v1.2.3 From 37469195efe08d9b2b70326806cbca1773576b4a Mon Sep 17 00:00:00 2001 From: Long Huan <8551701+longhuan2018@users.noreply.github.com> Date: Thu, 15 Aug 2019 05:12:55 +0800 Subject: Fix osgqt build error LNK 1181 (#7672) --- ports/osg-qt/OsgMacroUtils.patch | 11 +++++++++++ ports/osg-qt/portfile.cmake | 2 ++ 2 files changed, 13 insertions(+) create mode 100644 ports/osg-qt/OsgMacroUtils.patch diff --git a/ports/osg-qt/OsgMacroUtils.patch b/ports/osg-qt/OsgMacroUtils.patch new file mode 100644 index 000000000..96f040cd3 --- /dev/null +++ b/ports/osg-qt/OsgMacroUtils.patch @@ -0,0 +1,11 @@ +--- a/CMakeModules/OsgMacroUtils.cmake ++++ b/CMakeModules/OsgMacroUtils.cmake +@@ -88,7 +88,7 @@ MACRO(LINK_CORELIB_DEFAULT CORELIB_NAME) + ENDIF() + + LINK_EXTERNAL(${CORELIB_NAME} ${ALL_GL_LIBRARIES}) +- LINK_WITH_VARIABLES(${CORELIB_NAME} OPENTHREADS_LIBRARY) ++ #LINK_WITH_VARIABLES(${CORELIB_NAME} OPENTHREADS_LIBRARY) + IF(OPENSCENEGRAPH_SONAMES) + SET_TARGET_PROPERTIES(${CORELIB_NAME} PROPERTIES VERSION ${OPENSCENEGRAPH_VERSION} SOVERSION ${OPENSCENEGRAPH_SOVERSION}) + ENDIF(OPENSCENEGRAPH_SONAMES) diff --git a/ports/osg-qt/portfile.cmake b/ports/osg-qt/portfile.cmake index 1ab23e63f..f78dbf37f 100644 --- a/ports/osg-qt/portfile.cmake +++ b/ports/osg-qt/portfile.cmake @@ -6,6 +6,8 @@ vcpkg_from_github( REF Qt4 SHA512 426a4ba88f680978d24817248b99c68cafa4517144e6e3d2480612870c4a224bb955539cacb438274d4ee1c93c36d94f8437d142070b2ecde2b81517bf357e71 HEAD_REF master + PATCHES + OsgMacroUtils.patch ) -- cgit v1.2.3 From 12b18a59fc4ada9a32f8e4baedfeb1a4d04bab8b Mon Sep 17 00:00:00 2001 From: Long Huan <8551701+longhuan2018@users.noreply.github.com> Date: Thu, 15 Aug 2019 05:13:19 +0800 Subject: Update collada.patch (#7677) --- ports/osg/collada.patch | 299 ++++++++++++++++++++---------------------------- 1 file changed, 126 insertions(+), 173 deletions(-) diff --git a/ports/osg/collada.patch b/ports/osg/collada.patch index 9787b7f5c..80b260618 100644 --- a/ports/osg/collada.patch +++ b/ports/osg/collada.patch @@ -1,173 +1,126 @@ -diff --git a/CMakeModules/FindCOLLADA.cmake b/CMakeModules/FindCOLLADA.cmake -index 8c9c2fc33..6a8ab04ca 100644 ---- a/CMakeModules/FindCOLLADA.cmake -+++ b/CMakeModules/FindCOLLADA.cmake -@@ -25,11 +25,11 @@ ENDIF() - - IF(APPLE) - SET(COLLADA_BUILDNAME "mac") -- SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME}) -+ SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME}) - ELSEIF(MINGW) - SET(COLLADA_BUILDNAME "mingw") -- SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME}) --ELSEIF(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910 ) -+ SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME}) -+ELSEIF(MSVC_VERSION GREATER_EQUAL 1900 ) - SET(COLLADA_BUILDNAME "vc14") - SET(COLLADA_BOOST_BUILDNAME "vc140") - ELSEIF(MSVC_VERSION EQUAL 1800) -@@ -58,6 +58,7 @@ ENDIF() - - - FIND_PATH(COLLADA_INCLUDE_DIR dae.h -+ PATHS - ${COLLADA_DOM_ROOT}/include - $ENV{COLLADA_DIR}/include - $ENV{COLLADA_DIR} -@@ -65,27 +66,19 @@ FIND_PATH(COLLADA_INCLUDE_DIR dae.h - /Library/Frameworks - /opt/local/Library/Frameworks #macports - /usr/local/include -- /usr/local/include/colladadom -- /usr/local/include/collada-dom -- /usr/local/include/collada-dom2.5 -- /usr/local/include/collada-dom2.4 -- /usr/local/include/collada-dom2.2 -- /opt/local/include/collada-dom -- /opt/local/include/collada-dom2.5 -- /opt/local/include/collada-dom2.4 -- /opt/local/include/collada-dom2.2 - /usr/include/ -- /usr/include/colladadom -- /usr/include/collada-dom -- /usr/include/collada-dom2.5 -- /usr/include/collada-dom2.4 -- /usr/include/collada-dom2.2 - /sw/include # Fink - /opt/local/include # DarwinPorts - /opt/csw/include # Blastwave - /opt/include - /usr/freeware/include - ${ACTUAL_3DPARTY_DIR}/include -+ PATH_SUFFIXES -+ colladadom -+ collada-dom -+ collada-dom2.5 -+ collada-dom2.4 -+ collada-dom2.2 - ) - - FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY -@@ -15,6 +15,8 @@ - - - # Check if COLLADA_DIR is set, otherwise use ACTUAL_3DPARTY_DIR: -+include(SelectLibraryConfigurations) -+ - SET( COLLADA_ENV_VAR_AVAILABLE $ENV{COLLADA_DIR} ) - IF ( COLLADA_ENV_VAR_AVAILABLE ) - SET(COLLADA_DOM_ROOT "$ENV{COLLADA_DIR}/dom" CACHE PATH "Location of Collada DOM directory" FORCE) -@@ -192,31 +194,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG - ENDIF(WIN32) - ENDIF(LIBXML2_FOUND) - -- FIND_PACKAGE(ZLIB) -- IF (ZLIB_FOUND) -- IF (ZLIB_LIBRARY_RELEASE) -- SET(COLLADA_ZLIB_LIBRARY "${ZLIB_LIBRARY_RELEASE}" CACHE FILEPATH "" FORCE) -- ELSE(ZLIB_LIBRARY_RELEASE) -- SET(COLLADA_ZLIB_LIBRARY "${ZLIB_LIBRARY}" CACHE FILEPATH "" FORCE) -- ENDIF(ZLIB_LIBRARY_RELEASE) -- IF (ZLIB_LIBRARY_DEBUG) -- SET(COLLADA_ZLIB_LIBRARY_DEBUG "${ZLIB_LIBRARY_DEBUG}" CACHE FILEPATH "" FORCE) -- ELSE(ZLIB_LIBRARY_DEBUG) -- SET(COLLADA_ZLIB_LIBRARY_DEBUG "${COLLADA_ZLIB_LIBRARY}" CACHE FILEPATH "" FORCE) -- ENDIF(ZLIB_LIBRARY_DEBUG) -- ELSE(ZLIB_FOUND) -- IF(WIN32) -- FIND_LIBRARY(COLLADA_ZLIB_LIBRARY -- NAMES zlib -- PATHS -- ${COLLADA_DOM_ROOT}/external-libs/libxml2/win32/lib -- ${COLLADA_DOM_ROOT}/external-libs/libxml2/mingw/lib -- ${ACTUAL_3DPARTY_DIR}/lib -- ) -- ENDIF(WIN32) -- ENDIF(ZLIB_FOUND) -+ FIND_PACKAGE(ZLIB REQUIRED) - -- FIND_LIBRARY(COLLADA_PCRECPP_LIBRARY -+ FIND_LIBRARY(COLLADA_PCRECPP_LIBRARY_RELEASE - NAMES pcrecpp - PATHS - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/${COLLADA_BUILDNAME} -@@ -233,8 +213,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw - ${ACTUAL_3DPARTY_DIR}/lib - ) -+ select_library_configurations(COLLADA_PCRECPP) - -- FIND_LIBRARY(COLLADA_PCRE_LIBRARY -+ FIND_LIBRARY(COLLADA_PCRE_LIBRARY_RELEASE - NAMES pcre - PATHS - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/${COLLADA_BUILDNAME} -@@ -251,8 +232,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw - ${ACTUAL_3DPARTY_DIR}/lib - ) -+ select_library_configurations(COLLADA_PCRE) - -- FIND_LIBRARY(COLLADA_MINIZIP_LIBRARY -+ FIND_LIBRARY(COLLADA_MINIZIP_LIBRARY_RELEASE - NAMES minizip - PATHS - ${COLLADA_DOM_ROOT}/external-libs/minizip/win32/lib -@@ -267,8 +249,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG - ${COLLADA_DOM_ROOT}/external-libs/minizip/mac - ${ACTUAL_3DPARTY_DIR}/lib - ) -- -- FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY -+ select_library_configurations(COLLADA_MINIZIP) -+ -+ FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_RELEASE - NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_63 - PATHS - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} -@@ -283,8 +266,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw - ${ACTUAL_3DPARTY_DIR}/lib - ) -+ select_library_configurations(COLLADA_BOOST_FILESYSTEM) - -- FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY -+ FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_RELEASE - NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_63 - PATHS - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} -@@ -299,7 +283,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw - ${ACTUAL_3DPARTY_DIR}/lib - ) -- -+ select_library_configurations(COLLADA_BOOST_SYSTEM_LIBRARY) - - SET(COLLADA_FOUND "NO") - IF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY) -diff --git a/src/osgPlugins/dae/CMakeLists.txt b/src/osgPlugins/dae/CMakeLists.txt -index af03fb866..7eadfc2f3 100644 ---- a/src/osgPlugins/dae/CMakeLists.txt -+++ b/src/osgPlugins/dae/CMakeLists.txt -@@ -49,7 +49,9 @@ ELSE() - ENDIF() - - ADD_DEFINITIONS(-DNO_BOOST) --ADD_DEFINITIONS(-DCOLLADA_DOM_SUPPORT141) -+ADD_DEFINITIONS(-DCOLLADA_DOM_USING_141 -+ -DCOLLADA_DOM_SUPPORT141 -+ -DCOLLADA_DOM_SUPPORT150) - - IF (COLLADA_DOM_2_4_OR_LATER) - ADD_DEFINITIONS(-DCOLLADA_DOM_2_4_OR_LATER) +diff --git a/CMakeModules/FindCOLLADA.cmake b/CMakeModules/FindCOLLADA.cmake +index 7c7d290..5b456d7 100644 +--- a/CMakeModules/FindCOLLADA.cmake ++++ b/CMakeModules/FindCOLLADA.cmake +@@ -29,10 +29,7 @@ IF(APPLE) + ELSEIF(MINGW) + SET(COLLADA_BUILDNAME "mingw") + SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME}) +-ELSEIF((MSVC_VERSION GREATER 1910) OR (MSVC_VERSION EQUAL 1910)) +- SET(COLLADA_BUILDNAME "vc14") +- SET(COLLADA_BOOST_BUILDNAME "vc141") +-ELSEIF(MSVC_VERSION EQUAL 1900) ++ELSEIF(MSVC_VERSION GREATER_EQUAL 1900) + SET(COLLADA_BUILDNAME "vc14") + SET(COLLADA_BOOST_BUILDNAME "vc140") + ELSEIF(MSVC_VERSION EQUAL 1800) +@@ -61,6 +58,7 @@ ENDIF() + + + FIND_PATH(COLLADA_INCLUDE_DIR dae.h ++ PATHS + ${COLLADA_DOM_ROOT}/include + $ENV{COLLADA_DIR}/include + $ENV{COLLADA_DIR} +@@ -68,27 +66,19 @@ FIND_PATH(COLLADA_INCLUDE_DIR dae.h + /Library/Frameworks + /opt/local/Library/Frameworks #macports + /usr/local/include +- /usr/local/include/colladadom +- /usr/local/include/collada-dom +- /usr/local/include/collada-dom2.5 +- /usr/local/include/collada-dom2.4 +- /usr/local/include/collada-dom2.2 +- /opt/local/include/collada-dom +- /opt/local/include/collada-dom2.5 +- /opt/local/include/collada-dom2.4 +- /opt/local/include/collada-dom2.2 + /usr/include/ +- /usr/include/colladadom +- /usr/include/collada-dom +- /usr/include/collada-dom2.5 +- /usr/include/collada-dom2.4 +- /usr/include/collada-dom2.2 + /sw/include # Fink + /opt/local/include # DarwinPorts + /opt/csw/include # Blastwave + /opt/include + /usr/freeware/include + ${ACTUAL_3DPARTY_DIR}/include ++ PATH_SUFFIXES ++ colladadom ++ collada-dom ++ collada-dom2.5 ++ collada-dom2.4 ++ collada-dom2.2 + ) + + FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY +@@ -116,7 +106,7 @@ FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY + ) + + FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY_DEBUG +- NAMES collada_dom-d collada14dom-d Collada14Dom-d libcollada14dom21-d libcollada14dom22-d collada-dom2.5-dp-d collada-dom2.5-dp-${COLLADA_BOOST_BUILDNAME}-mt-d collada-dom2.4-dp-d collada-dom2.4-dp-${COLLADA_BOOST_BUILDNAME}-mt-d ++ NAMES collada_dom-d collada14dom-d Collada14Dom-d libcollada14dom21-d libcollada14dom22-d collada-dom2.5-dp-d collada-dom2.5-dp-${COLLADA_BOOST_BUILDNAME}-mt-d collada-dom2.4-dp-d collada-dom2.4-dp-${COLLADA_BOOST_BUILDNAME}-mt-d collada-dom2.5-dp-${COLLADA_BOOST_BUILDNAME}-mt + PATHS + ${COLLADA_DOM_ROOT}/build/${COLLADA_BUILDNAME}-1.4-d + ${COLLADA_DOM_ROOT} +@@ -279,7 +269,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG + ) + + FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY +- NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_63 ++ NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_63 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw +@@ -287,7 +277,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG + ) + + FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_DEBUG +- NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 ++ NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw +@@ -295,7 +285,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG + ) + + FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY +- NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_63 ++ NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_63 boost_system-${COLLADA_BOOST_BUILDNAME}-mt + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw +@@ -303,7 +293,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG + ) + + FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_DEBUG +- NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 ++ NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw +@@ -329,5 +319,3 @@ IF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY) + + ENDIF() + ENDIF() +- +- + +diff --git a/src/osgPlugins/dae/CMakeLists.txt b/src/osgPlugins/dae/CMakeLists.txt +index af03fb866..7eadfc2f3 100644 +--- a/src/osgPlugins/dae/CMakeLists.txt ++++ b/src/osgPlugins/dae/CMakeLists.txt +@@ -49,7 +49,9 @@ ELSE() + ENDIF() + + ADD_DEFINITIONS(-DNO_BOOST) +-ADD_DEFINITIONS(-DCOLLADA_DOM_SUPPORT141) ++ADD_DEFINITIONS(-DCOLLADA_DOM_USING_141 ++ -DCOLLADA_DOM_SUPPORT141 ++ -DCOLLADA_DOM_SUPPORT150) + + IF (COLLADA_DOM_2_4_OR_LATER) + ADD_DEFINITIONS(-DCOLLADA_DOM_2_4_OR_LATER) + -- cgit v1.2.3 From 4e9d79e36dac3b2115f14d663cc47dff3c8e58d5 Mon Sep 17 00:00:00 2001 From: Kevin Lu <6320810+kevinlul@users.noreply.github.com> Date: Wed, 14 Aug 2019 17:16:33 -0400 Subject: [protobuf] Update from 3.9.0 to 3.9.1 (#7671) --- ports/protobuf/CONTROL | 2 +- ports/protobuf/portfile.cmake | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL index f6876ba91..ba4ce7d91 100644 --- a/ports/protobuf/CONTROL +++ b/ports/protobuf/CONTROL @@ -1,5 +1,5 @@ Source: protobuf -Version: 3.9.0 +Version: 3.9.1 Homepage: https://github.com/google/protobuf Description: Protocol Buffers - Google's data interchange format diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake index c650e921e..bb6726410 100644 --- a/ports/protobuf/portfile.cmake +++ b/ports/protobuf/portfile.cmake @@ -2,9 +2,9 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH - REPO google/protobuf - REF v3.9.0 - SHA512 eebfea7758b924939edaf44d0f51e341f4778dcf943c9e399da57cb5f52e875bda1e37e40841798232dea52082b5d59c20de69a15ddeaf00220c432f05ca0e6e + REPO protocolbuffers/protobuf + REF v3.9.1 + SHA512 9accb56c1aadef83bf27280e15a99809a3561cbd4b39d6605dec730cc112bf4fd2e9f1ac39127b32a1b87253e712be4b4f12afe4061a8f7be76266b3f4bca314 HEAD_REF master PATCHES fix-uwp.patch -- cgit v1.2.3 From edaf3bf91e6b3c33943d5006f6b34fe98b18e1d9 Mon Sep 17 00:00:00 2001 From: Victor Romero Date: Wed, 14 Aug 2019 15:38:07 -0700 Subject: [depend-info] Fix bugs, add `--sort`, `--show-depth` and `--max-recurse` options (#7643) * [depend-info] Follow same rules as vcpkg install * [depend-info] Add --max-depth and --sort options * [depend-info] Improve output readability (a tiny bit) * [depend-info] Add --show-depth option * [depend-info] Fix build on VS 2015 * [depend-info] Fix output of --dot and --dgml --- toolsrc/include/vcpkg/base/strings.h | 1 - toolsrc/include/vcpkg/commands.h | 2 +- toolsrc/src/vcpkg/commands.cpp | 2 +- toolsrc/src/vcpkg/commands.dependinfo.cpp | 343 ++++++++++++++++++------------ 4 files changed, 210 insertions(+), 138 deletions(-) diff --git a/toolsrc/include/vcpkg/base/strings.h b/toolsrc/include/vcpkg/base/strings.h index a147a8373..0f25607df 100644 --- a/toolsrc/include/vcpkg/base/strings.h +++ b/toolsrc/include/vcpkg/base/strings.h @@ -1,6 +1,5 @@ #pragma once - #include #include #include diff --git a/toolsrc/include/vcpkg/commands.h b/toolsrc/include/vcpkg/commands.h index 6a94b389a..8a502122e 100644 --- a/toolsrc/include/vcpkg/commands.h +++ b/toolsrc/include/vcpkg/commands.h @@ -56,7 +56,7 @@ namespace vcpkg::Commands namespace DependInfo { extern const CommandStructure COMMAND_STRUCTURE; - void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet); } namespace Search diff --git a/toolsrc/src/vcpkg/commands.cpp b/toolsrc/src/vcpkg/commands.cpp index 54e9346ba..3ac568979 100644 --- a/toolsrc/src/vcpkg/commands.cpp +++ b/toolsrc/src/vcpkg/commands.cpp @@ -24,6 +24,7 @@ namespace vcpkg::Commands {"env", &Env::perform_and_exit}, {"build-external", &BuildExternal::perform_and_exit}, {"export", &Export::perform_and_exit}, + {"depend-info", &DependInfo::perform_and_exit}, }; return t; } @@ -38,7 +39,6 @@ namespace vcpkg::Commands {"integrate", &Integrate::perform_and_exit}, {"owns", &Owns::perform_and_exit}, {"update", &Update::perform_and_exit}, - {"depend-info", &DependInfo::perform_and_exit}, {"edit", &Edit::perform_and_exit}, {"create", &Create::perform_and_exit}, {"import", &Import::perform_and_exit}, diff --git a/toolsrc/src/vcpkg/commands.dependinfo.cpp b/toolsrc/src/vcpkg/commands.dependinfo.cpp index 7c04a5a2f..8ca88dd56 100644 --- a/toolsrc/src/vcpkg/commands.dependinfo.cpp +++ b/toolsrc/src/vcpkg/commands.dependinfo.cpp @@ -4,65 +4,129 @@ #include #include #include +#include #include +#include +#include #include -#include - -#include -#include #include +using vcpkg::Dependencies::AnyAction; +using vcpkg::Dependencies::create_feature_install_plan; +using vcpkg::Dependencies::InstallPlanAction; using vcpkg::Dependencies::PathsPortFileProvider; namespace vcpkg::Commands::DependInfo { constexpr StringLiteral OPTION_DOT = "--dot"; constexpr StringLiteral OPTION_DGML = "--dgml"; - constexpr StringLiteral OPTION_NO_RECURSE = "--no-recurse"; + constexpr StringLiteral OPTION_SHOW_DEPTH = "--show-depth"; + constexpr StringLiteral OPTION_MAX_RECURSE = "--max-recurse"; + constexpr StringLiteral OPTION_SORT = "--sort"; + + constexpr int NO_RECURSE_LIMIT_VALUE = -1; + + constexpr std::array DEPEND_SWITCHES = {{{OPTION_DOT, "Creates graph on basis of dot"}, + {OPTION_DGML, "Creates graph on basis of dgml"}, + {OPTION_SHOW_DEPTH, "Show recursion depth in output"}}}; - constexpr std::array DEPEND_SWITCHES = {{ - {OPTION_DOT, "Creates graph on basis of dot"}, - {OPTION_DGML, "Creates graph on basis of dgml"}, - {OPTION_NO_RECURSE, - "Computes only immediate dependencies of packages explicitly specified on the command-line"}, - }}; + constexpr std::array DEPEND_SETTINGS = { + {{OPTION_MAX_RECURSE, "Set max recursion depth, a value of -1 indicates no limit"}, + {OPTION_SORT, + "Set sort order for the list of dependencies, accepted values are: lexicographical, topological (default), " + "reverse"}}}; const CommandStructure COMMAND_STRUCTURE = { - Help::create_example_string(R"###(depend-info [pat])###"), + Help::create_example_string("depend-info sqlite3"), 0, SIZE_MAX, - {DEPEND_SWITCHES, {}}, + {DEPEND_SWITCHES, DEPEND_SETTINGS}, nullptr, }; - std::string replace_dashes_with_underscore(const std::string& input) + struct PackageDependInfo { - std::string output = input; - std::replace(output.begin(), output.end(), '-', '_'); - return output; + std::string package; + int depth; + std::set features; + std::vector dependencies; + }; + + enum SortMode + { + Lexicographical = 0, + Topological, + ReverseTopological, + Default = Topological + }; + + int get_max_depth(const ParsedArguments& options) + { + auto iter = options.settings.find(OPTION_MAX_RECURSE); + if (iter != options.settings.end()) + { + std::string value = iter->second; + try + { + return std::stoi(value); + } + catch (std::exception&) + { + Checks::exit_with_message(VCPKG_LINE_INFO, "Value of --max-depth must be an integer"); + } + } + // No --max-depth set, default to no limit. + return NO_RECURSE_LIMIT_VALUE; } - std::string create_dot_as_string(const std::vector& source_control_files) + SortMode get_sort_mode(const ParsedArguments& options) + { + constexpr StringLiteral OPTION_SORT_LEXICOGRAPHICAL = "lexicographical"; + constexpr StringLiteral OPTION_SORT_TOPOLOGICAL = "topological"; + constexpr StringLiteral OPTION_SORT_REVERSE = "reverse"; + + static const std::map sortModesMap{{OPTION_SORT_LEXICOGRAPHICAL, Lexicographical}, + {OPTION_SORT_TOPOLOGICAL, Topological}, + {OPTION_SORT_REVERSE, ReverseTopological}}; + + auto iter = options.settings.find(OPTION_SORT); + if (iter != options.settings.end()) + { + const std::string value = Strings::ascii_to_lowercase(std::string{iter->second}); + auto it = sortModesMap.find(value); + if (it != sortModesMap.end()) + { + return it->second; + } + Checks::exit_with_message(VCPKG_LINE_INFO, + "Value of --sort must be one of `%s`, `%s`, or `%s`", + OPTION_SORT_LEXICOGRAPHICAL, + OPTION_SORT_TOPOLOGICAL, + OPTION_SORT_REVERSE); + } + return Default; + } + + std::string create_dot_as_string(const std::vector& depend_info) { int empty_node_count = 0; std::string s; s.append("digraph G{ rankdir=LR; edge [minlen=3]; overlap=false;"); - for (const auto& source_control_file : source_control_files) + for (const auto& package : depend_info) { - const SourceParagraph& source_paragraph = *source_control_file->core_paragraph; - if (source_paragraph.depends.empty()) + if (package.dependencies.empty()) { empty_node_count++; continue; } - const std::string name = replace_dashes_with_underscore(source_paragraph.name); + const std::string name = Strings::replace_all(std::string{ package.package }, "-", "_"); s.append(Strings::format("%s;", name)); - for (const Dependency& d : source_paragraph.depends) + for (const auto &d : package.dependencies) { - const std::string dependency_name = replace_dashes_with_underscore(d.depend.name); + const std::string dependency_name = Strings::replace_all(std::string{ d }, "-", "_"); s.append(Strings::format("%s -> %s;", name, dependency_name)); } } @@ -71,39 +135,22 @@ namespace vcpkg::Commands::DependInfo return s; } - std::string create_dgml_as_string(const std::vector& source_control_files) + std::string create_dgml_as_string(const std::vector& depend_info) { std::string s; s.append(""); s.append(""); std::string nodes, links; - for (const auto& source_control_file : source_control_files) + for (const auto& package : depend_info) { - const SourceParagraph& source_paragraph = *source_control_file->core_paragraph; - const std::string name = source_paragraph.name; + const std::string name = package.package; nodes.append(Strings::format("", name)); // Iterate over dependencies. - for (const Dependency& d : source_paragraph.depends) - { - if (d.qualifier.empty()) - links.append(Strings::format("", name, d.depend.name)); - else - links.append(Strings::format( - "", name, d.depend.name)); - } - - // Iterate over feature dependencies. - const std::vector>& feature_paragraphs = - source_control_file->feature_paragraphs; - for (const auto& feature_paragraph : feature_paragraphs) + for (const auto& d : package.dependencies) { - for (const Dependency& d : feature_paragraph->depends) - { - links.append(Strings::format( - "", name, d.depend.name)); - } + links.append(Strings::format("", name, d)); } } @@ -116,136 +163,162 @@ namespace vcpkg::Commands::DependInfo } std::string create_graph_as_string(const std::unordered_set& switches, - const std::vector& source_control_files) + const std::vector& depend_info) { if (Util::Sets::contains(switches, OPTION_DOT)) { - return create_dot_as_string(source_control_files); + return create_dot_as_string(depend_info); } else if (Util::Sets::contains(switches, OPTION_DGML)) { - return create_dgml_as_string(source_control_files); + return create_dgml_as_string(depend_info); } return ""; } - void build_dependencies_list(std::set& packages_to_keep, - const std::string& requested_package, - const std::vector& source_control_files, - const std::unordered_set& switches) + void assign_depth_to_dependencies(const std::string& package, + const int depth, + const int max_depth, + std::map& dependencies_map) { - auto maybe_requested_spec = ParsedSpecifier::from_string(requested_package); - // TODO: move this check to the top-level invocation of this function since - // argument `requested_package` shall always be valid in inner-level invocation. - if (!maybe_requested_spec.has_value()) - { - System::print2(System::Color::warning, - "'", - requested_package, - "' is not a valid package specifier: ", - vcpkg::to_string(maybe_requested_spec.error()), - "\n"); - return; - } - auto requested_spec = maybe_requested_spec.get(); + auto iter = dependencies_map.find(package); + Checks::check_exit(VCPKG_LINE_INFO, iter != dependencies_map.end(), "Package not found in dependency graph"); - const auto source_control_file = - Util::find_if(source_control_files, [&requested_spec](const auto& source_control_file) { - return source_control_file->core_paragraph->name == requested_spec->name; - }); + PackageDependInfo& info = iter->second; - if (source_control_file != source_control_files.end()) + if (depth > info.depth) { - const auto new_package = packages_to_keep.insert(requested_spec->name).second; - - if (new_package && !Util::Sets::contains(switches, OPTION_NO_RECURSE)) + info.depth = depth; + if (depth < max_depth || max_depth == NO_RECURSE_LIMIT_VALUE) { - for (const auto& dependency : (*source_control_file)->core_paragraph->depends) - { - build_dependencies_list(packages_to_keep, dependency.depend.name, source_control_files, switches); - } - - // Collect features with `*` considered - std::set collected_features; - for (const auto& requested_feature_name : requested_spec->features) + for (auto&& dependency : info.dependencies) { - if (requested_feature_name == "*") - { - for (auto&& feature_paragraph : (*source_control_file)->feature_paragraphs) - { - collected_features.insert(std::addressof(Util::as_const(*feature_paragraph))); - } - continue; - } - auto maybe_feature = (*source_control_file)->find_feature(requested_feature_name); - if (auto&& feature_paragraph = maybe_feature.get()) - { - collected_features.insert(std::addressof(Util::as_const(*feature_paragraph))); - } - else - { - System::print2(System::Color::warning, - "dependency '", - requested_feature_name, - "' of package '", - requested_spec->name, - "' does not exist\n"); - continue; - } - } - for (auto feature_paragraph : collected_features) - { - for (const auto& dependency : feature_paragraph->depends) - { - build_dependencies_list( - packages_to_keep, dependency.depend.name, source_control_files, switches); - } + assign_depth_to_dependencies(dependency, depth + 1, max_depth, dependencies_map); } } } - else + }; + + std::vector extract_depend_info(const std::vector& install_actions, + const int max_depth) + { + std::map package_dependencies; + for (const InstallPlanAction* pia : install_actions) { - System::print2(System::Color::warning, "package '", requested_package, "' does not exist\n"); + const InstallPlanAction& install_action = *pia; + + const std::vector dependencies = + Util::fmap(install_action.computed_dependencies, [](const PackageSpec& spec) { return spec.name(); }); + + std::set features{install_action.feature_list}; + features.erase("core"); + + std::string port_name = install_action.spec.name(); + + PackageDependInfo info {port_name, -1, features, dependencies}; + package_dependencies.emplace(port_name, std::move(info)); } + + const InstallPlanAction& init = *install_actions.back(); + assign_depth_to_dependencies(init.spec.name(), 0, max_depth, package_dependencies); + + std::vector out = + Util::fmap(package_dependencies, [](auto&& kvpair) -> PackageDependInfo { return kvpair.second; }); + Util::erase_remove_if(out, [](auto&& info) { return info.depth < 0; }); + return out; } - void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet) { const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); + const int max_depth = get_max_depth(options); + const SortMode sort_mode = get_sort_mode(options); + const bool show_depth = Util::Sets::contains(options.switches, OPTION_SHOW_DEPTH); - // TODO: Optimize implementation, current implementation needs to load all ports from disk which is too slow. - PathsPortFileProvider provider(paths, args.overlay_ports.get()); - auto source_control_files = - Util::fmap(provider.load_all_control_files(), - [](auto&& scfl) -> const SourceControlFile* { return scfl->source_control_file.get(); }); + const std::vector specs = Util::fmap(args.command_arguments, [&](auto&& arg) { + return Input::check_and_get_full_package_spec( + std::string{arg}, default_triplet, COMMAND_STRUCTURE.example_text); + }); - if (args.command_arguments.size() >= 1) + for (auto&& spec : specs) { - std::set packages_to_keep; - for (const auto& requested_package : args.command_arguments) + Input::check_triplet(spec.package_spec.triplet(), paths); + } + + PathsPortFileProvider provider(paths, args.overlay_ports.get()); + + // By passing an empty status_db, we should get a plan containing all dependencies. + // All actions in the plan should be install actions, as there's no installed packages to remove. + StatusParagraphs status_db; + std::vector action_plan = + create_feature_install_plan(provider, FullPackageSpec::to_feature_specs(specs), status_db); + std::vector install_actions = Util::fmap(action_plan, [&](const AnyAction& action) { + if (auto install_action = action.install_action.get()) { - build_dependencies_list(packages_to_keep, requested_package, source_control_files, options.switches); + return install_action; } + Checks::exit_with_message(VCPKG_LINE_INFO, "Only install actions should exist in the plan"); + }); - Util::erase_remove_if(source_control_files, [&packages_to_keep](const auto& source_control_file) { - return !Util::Sets::contains(packages_to_keep, source_control_file->core_paragraph->name); - }); - } + std::vector depend_info = extract_depend_info(install_actions, max_depth); if (Util::Sets::contains(options.switches, OPTION_DOT) || Util::Sets::contains(options.switches, OPTION_DGML)) { - const std::string graph_as_string = create_graph_as_string(options.switches, source_control_files); + const std::vector source_control_files = + Util::fmap(install_actions, [](const InstallPlanAction* install_action) { + const SourceControlFileLocation& scfl = + install_action->source_control_file_location.value_or_exit(VCPKG_LINE_INFO); + return const_cast(scfl.source_control_file.get()); + }); + + const std::string graph_as_string = create_graph_as_string(options.switches, depend_info); System::print2(graph_as_string, '\n'); Checks::exit_success(VCPKG_LINE_INFO); } - for (auto&& source_control_file : source_control_files) + + // TODO: Improve this code + auto lex = [](const PackageDependInfo& lhs, const PackageDependInfo& rhs) -> bool { + return lhs.package < rhs.package; + }; + auto topo = [](const PackageDependInfo& lhs, const PackageDependInfo& rhs) -> bool { + return lhs.depth > rhs.depth; + }; + auto reverse = [topo](const PackageDependInfo& lhs, const PackageDependInfo& rhs) -> bool { + return lhs.depth < rhs.depth; + }; + + switch (sort_mode) { - const SourceParagraph& source_paragraph = *source_control_file->core_paragraph.get(); - const auto s = Strings::join(", ", source_paragraph.depends, [](const Dependency& d) { return d.name(); }); - System::print2(source_paragraph.name, ": ", s, "\n"); + case SortMode::Lexicographical: std::sort(std::begin(depend_info), std::end(depend_info), lex); break; + case SortMode::ReverseTopological: + std::sort(std::begin(depend_info), std::end(depend_info), reverse); + break; + case SortMode::Topological: std::sort(std::begin(depend_info), std::end(depend_info), topo); break; + default: Checks::unreachable(VCPKG_LINE_INFO); } + for (auto&& info : depend_info) + { + if (info.depth >= 0) + { + std::string features = Strings::join(", ", info.features); + const std::string dependencies = Strings::join(", ", info.dependencies); + + if (show_depth) + { + System::print2(System::Color::error, "(", info.depth, ") "); + } + System::print2(System::Color::success, info.package); + if (!features.empty()) + { + System::print2("["); + System::print2(System::Color::warning, features); + System::print2("]"); + } + System::print2(": ", dependencies, "\n"); + } + } Checks::exit_success(VCPKG_LINE_INFO); } } -- cgit v1.2.3 From 4b81f7f08f7e47880c9627bf6feddba7da8896ac Mon Sep 17 00:00:00 2001 From: Long Huan <8551701+longhuan2018@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:27:14 +0800 Subject: Fix osgearth rocksdb plugin build falied --- ports/osgearth/CONTROL | 2 +- ports/osgearth/RocksDB.patch | 84 +++++++++++++++++++++++++++++++++++++++++++ ports/osgearth/portfile.cmake | 14 +++----- 3 files changed, 89 insertions(+), 11 deletions(-) create mode 100644 ports/osgearth/RocksDB.patch diff --git a/ports/osgearth/CONTROL b/ports/osgearth/CONTROL index c46d03451..d54992b82 100644 --- a/ports/osgearth/CONTROL +++ b/ports/osgearth/CONTROL @@ -1,4 +1,4 @@ Source: osgearth -Version: 2.10.1 +Version: 2.10.2 Description: osgEarth - Dynamic map generation toolkit for OpenSceneGraph Copyright 2015 Pelican Mapping. Build-Depends: osg diff --git a/ports/osgearth/RocksDB.patch b/ports/osgearth/RocksDB.patch new file mode 100644 index 000000000..07fd7e603 --- /dev/null +++ b/ports/osgearth/RocksDB.patch @@ -0,0 +1,84 @@ +diff --git a/CMakeModules/FindRocksDB.cmake b/CMakeModules/FindRocksDB.cmake +index 109b383..8382ed9 100644 +--- a/CMakeModules/FindRocksDB.cmake ++++ b/CMakeModules/FindRocksDB.cmake +@@ -40,5 +40,49 @@ find_package_handle_standard_args(ROCKSDB + "Could NOT find ROCKSDB" + ) + ++if(ROCKSDB_FOUND) ++ FIND_PACKAGE(ZLIB REQUIRED) ++ ++ include(SelectLibraryConfigurations) ++ # Find Snappy library ++ find_library(SNAPPY_LIBRARY_DEBUG NAMES snappyd) ++ find_library(SNAPPY_LIBRARY_RELEASE NAMES snappy) ++ select_library_configurations(SNAPPY) ++ find_package_handle_standard_args(SNAPPY ++ FOUND_VAR ++ SNAPPY_FOUND ++ REQUIRED_VARS ++ SNAPPY_LIBRARY ++ FAIL_MESSAGE ++ "Could NOT find SNAPPY" ++ ) ++ ++ # Find LZ4 library ++ find_library(LZ4_LIBRARY_DEBUG NAMES lz4d) ++ find_library(LZ4_LIBRARY_RELEASE NAMES lz4) ++ select_library_configurations(LZ4) ++ find_package_handle_standard_args(LZ4 ++ FOUND_VAR ++ LZ4_FOUND ++ REQUIRED_VARS ++ LZ4_LIBRARY ++ FAIL_MESSAGE ++ "Could NOT find LZ4" ++ ) ++ ++ # Find ZSTD library ++ find_library(ZSTD_LIBRARY_DEBUG NAMES zstdd) ++ find_library(ZSTD_LIBRARY_RELEASE NAMES zstd) ++ select_library_configurations(ZSTD) ++ find_package_handle_standard_args(ZSTD ++ FOUND_VAR ++ ZSTD_FOUND ++ REQUIRED_VARS ++ ZSTD_LIBRARY ++ FAIL_MESSAGE ++ "Could NOT find ZSTD_" ++ ) ++endif(ROCKSDB_FOUND) ++ + set(ROCKSDB_INCLUDE_DIRS ${ROCKSDB_INCLUDE_DIR} ) + set(ROCKSDB_LIBRARIES ${ROCKSDB_LIBRARY}) +- +- + +diff --git a/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt b/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt +index 68ad85d..86bb18a 100644 +--- a/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt ++++ b/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt +@@ -16,7 +16,19 @@ SET(TARGET_SRC + RocksDBCacheDriver.cpp + ) + +-SET(TARGET_LIBRARIES_VARS ROCKSDB_LIBRARY ZLIB_LIBRARY) ++if(SNAPPY_FOUND) ++ SET(ROCKSDB_DEPENDENT_LIBRARY ${ROCKSDB_DEPENDENT_LIBRARY} ${SNAPPY_LIBRARY}) ++endif(SNAPPY_FOUND) ++ ++if(LZ4_FOUND) ++ SET(ROCKSDB_DEPENDENT_LIBRARY ${ROCKSDB_DEPENDENT_LIBRARY} ${LZ4_LIBRARY}) ++endif(LZ4_FOUND) ++ ++if(ZSTD_FOUND) ++ SET(ROCKSDB_DEPENDENT_LIBRARY ${ROCKSDB_DEPENDENT_LIBRARY} ${ZSTD_LIBRARY}) ++endif(ZSTD_FOUND) ++ ++SET(TARGET_LIBRARIES_VARS ROCKSDB_LIBRARY ZLIB_LIBRARY ROCKSDB_DEPENDENT_LIBRARY) + + IF(MSVC) + SET(TARGET_EXTERNAL_LIBRARIES ws2_32 winmm rpcrt4 shlwapi) +- +- \ No newline at end of file diff --git a/ports/osgearth/portfile.cmake b/ports/osgearth/portfile.cmake index 6bc95df7c..8f74dea63 100644 --- a/ports/osgearth/portfile.cmake +++ b/ports/osgearth/portfile.cmake @@ -9,20 +9,14 @@ if(NOT OSG_PLUGINS_SUBDIR_LENGTH EQUAL 1) endif() string(REPLACE "${CURRENT_INSTALLED_DIR}/tools/osg/" "" OSG_PLUGINS_SUBDIR "${OSG_PLUGINS_SUBDIR}") -vcpkg_download_distfile( - VS2017PATCH - URLS "https://github.com/remoe/osgearth/commit/f7081cc4f9991c955c6a0ef7b7b50e48360d14fd.diff" - FILENAME "osgearth-f7081cc4f9991c955c6a0ef7b7b50e48360d14fd.patch" - SHA512 eadb47a5713c00c05add8627e5cad22844db041da34081d59104151a1a1e2d5ac9552909d67171bfc0449a3e4d2930dd3a7914d3ec7ef7ff1015574e9c9a6105 -) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gwaldron/osgearth - REF osgearth-2.10.1 - SHA512 a74e6922ae29f85b4227b23a83dbccba92e08b7880533c281ceb244703c38b51a02823fdee3199c975c969db963b35ebad0e3bfed3c1e218a36d130b20a48e5b + REF osgearth-2.10.2 + SHA512 fa306a82374716dafae9d834ed0fb07a7369ae0961696de36b6e2af45bc150040295985d9b9781ab713fd0707691451a6a8f173b34253749ab22764f51e60045 HEAD_REF master - PATCHES ${VS2017PATCH} + PATCHES + RocksDB.patch ) vcpkg_configure_cmake( -- cgit v1.2.3 From 89d8cece0dbbfab416a955289bf29b33b0d106b0 Mon Sep 17 00:00:00 2001 From: wangli28 Date: Thu, 15 Aug 2019 06:52:30 +0000 Subject: [geographiclib] Fix build error on Linux --- ports/geographiclib/CONTROL | 2 +- ports/geographiclib/portfile.cmake | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ports/geographiclib/CONTROL b/ports/geographiclib/CONTROL index 1c4c5a17d..21eeee0c9 100644 --- a/ports/geographiclib/CONTROL +++ b/ports/geographiclib/CONTROL @@ -1,4 +1,4 @@ Source: geographiclib -Version: 1.47-patch1-6 +Version: 1.47-patch1-7 Homepage: https://sourceforge.net/projects/geographiclib/ Description: a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for gravity (e.g., EGM2008), geoid height, and geomagnetic field (e.g., WMM2010) calculations, and for solving geodesic problems. diff --git a/ports/geographiclib/portfile.cmake b/ports/geographiclib/portfile.cmake index 8f4a716dc..27c6f9ee7 100644 --- a/ports/geographiclib/portfile.cmake +++ b/ports/geographiclib/portfile.cmake @@ -46,7 +46,13 @@ endif() vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) +if (VCPKG_TARGET_IS_WINDOWS) + vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) +elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake) +elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake) +endif() vcpkg_copy_pdbs() file(COPY ${CURRENT_PACKAGES_DIR}/lib/pkgconfig DESTINATION ${CURRENT_PACKAGES_DIR}/share/geographiclib) -- cgit v1.2.3 From 6f13a587c00472d8c5b97dcda13c94b5380b7025 Mon Sep 17 00:00:00 2001 From: JackBoosY Date: Thu, 15 Aug 2019 00:18:42 -0700 Subject: [poco]Upgrade version to 1.9.2 release. --- ports/poco/CONTROL | 4 +-- ports/poco/fix_foundation_link.patch | 50 ++++++++++++++++---------------- ports/poco/include_pcre.patch | 24 ++++++++-------- ports/poco/portfile.cmake | 55 ++++++++++++++++-------------------- ports/poco/static_pcre.patch | 53 +++++++++++++++++----------------- ports/poco/unbundled_pdf.patch | 47 +++++++++++++++++++----------- 6 files changed, 119 insertions(+), 114 deletions(-) diff --git a/ports/poco/CONTROL b/ports/poco/CONTROL index 72c7cc72f..e7e1656bb 100644 --- a/ports/poco/CONTROL +++ b/ports/poco/CONTROL @@ -1,6 +1,6 @@ Source: poco -Version: 2.0.0-pre-3 -Build-Depends: expat, libpq, pcre, sqlite3, zlib +Version: 1.9.2 +Build-Depends: expat, libpq, pcre, sqlite3, zlib, libpng Description: Modern, powerful open source C++ class libraries for building network and internet-based applications that run on desktop, server, mobile and embedded systems. Homepage: https://github.com/pocoproject/poco diff --git a/ports/poco/fix_foundation_link.patch b/ports/poco/fix_foundation_link.patch index f3af572b1..c8830ed4f 100644 --- a/ports/poco/fix_foundation_link.patch +++ b/ports/poco/fix_foundation_link.patch @@ -1,26 +1,24 @@ -diff --git a/Foundation/src/Environment_WIN32.cpp b/Foundation/src/Environment_WIN32.cpp -index 3cca5c7..8ed1df2 100644 ---- a/Foundation/src/Environment_WIN32.cpp -+++ b/Foundation/src/Environment_WIN32.cpp -@@ -23,7 +23,7 @@ - #include - #include - #include -- -+#pragma comment(lib, "IPHLPAPI.lib") - - namespace Poco { - -diff --git a/Foundation/src/Environment_WINCE.cpp b/Foundation/src/Environment_WINCE.cpp -index 62f19bc..d409356 100644 ---- a/Foundation/src/Environment_WINCE.cpp -+++ b/Foundation/src/Environment_WINCE.cpp -@@ -22,7 +22,7 @@ - #include - #include - #include -- -+#pragma comment(lib, "IPHLPAPI.lib") - - namespace Poco { - +diff --git a/Foundation/src/Environment_WIN32.cpp b/Foundation/src/Environment_WIN32.cpp +index 62845fa..edcf6fe 100644 +--- a/Foundation/src/Environment_WIN32.cpp ++++ b/Foundation/src/Environment_WIN32.cpp +@@ -22,6 +22,7 @@ + #include + #include + ++#pragma comment(lib, "IPHLPAPI.lib") + + namespace Poco { + +diff --git a/Foundation/src/Environment_WINCE.cpp b/Foundation/src/Environment_WINCE.cpp +index afa59b6..c43767b 100644 +--- a/Foundation/src/Environment_WINCE.cpp ++++ b/Foundation/src/Environment_WINCE.cpp +@@ -23,6 +23,7 @@ + #include + #include + ++#pragma comment(lib, "IPHLPAPI.lib") + + namespace Poco { + diff --git a/ports/poco/include_pcre.patch b/ports/poco/include_pcre.patch index 6594a30fe..5db2372ea 100644 --- a/ports/poco/include_pcre.patch +++ b/ports/poco/include_pcre.patch @@ -1,12 +1,12 @@ -diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt -index 5b7df96..4fedfd5 100644 ---- a/Foundation/CMakeLists.txt -+++ b/Foundation/CMakeLists.txt -@@ -101,6 +101,7 @@ target_link_libraries(Foundation PUBLIC ${PCRE_LIBRARIES} ${ZLIB_LIBRARIES}) - target_include_directories(Foundation - PUBLIC - $ -+ $ - $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src - ) +diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt +index 26a2365..0b8f7bc 100644 +--- a/Foundation/CMakeLists.txt ++++ b/Foundation/CMakeLists.txt +@@ -168,6 +168,7 @@ target_link_libraries( "${LIBNAME}" ${SYSLIBS}) + target_include_directories( "${LIBNAME}" + PUBLIC + $ ++ $ + $ + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + ) diff --git a/ports/poco/portfile.cmake b/ports/poco/portfile.cmake index f6a1255aa..6d53a0048 100644 --- a/ports/poco/portfile.cmake +++ b/ports/poco/portfile.cmake @@ -1,13 +1,11 @@ include(vcpkg_common_functions) -# Poco 2.0.0 (pre) -# commit 46e00c8 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pocoproject/poco - REF 46e00c8d6f6d03864397c3e517a165e82f9efd5e - SHA512 2c2f5048b7bfbbfe47ac303ed79213197c97f3d90362dd2d7629c8b353a6c8bd303b1bcf477e3493cc6c984645822ca043dd0a77e9186e001e6808dc2d17a5b4 - HEAD_REF develop + REF 8a127d6f16795d914cadc342d3f4f3b9b7999e3b #1.9.2 + SHA512 282097ee2118ac55320ebdde05bb53ed27d68af49c201b0b26027706ef935ae08f8090abb8aab1cafe84c72520ea73b01263b439d32bd2d0bd55319b0634b168 + HEAD_REF master PATCHES # Find pcre in debug find_pcre.patch @@ -52,37 +50,34 @@ vcpkg_configure_cmake( -DPOCO_STATIC=${POCO_STATIC} -DPOCO_MT=${POCO_MT} # Set to OFF|ON (default is OFF) to control build of POCO tests - -DPOCO_ENABLE_TESTS=OFF + -DENABLE_TESTS=OFF # Set to OFF|ON (default is OFF) to control build of POCO samples - -DPOCO_ENABLE_SAMPLES=OFF + -DENABLE_SAMPLES=OFF # Allow enabling and disabling components # POCO_ENABLE_SQL_ODBC, POCO_ENABLE_SQL_MYSQL and POCO_ENABLE_SQL_POSTGRESQL are # defined on the fly if the required librairies are present - -DPOCO_ENABLE_ENCODINGS=ON - -DPOCO_ENABLE_ENCODINGS_COMPILER=ON - -DPOCO_ENABLE_XML=ON - -DPOCO_ENABLE_JSON=ON - -DPOCO_ENABLE_MONGODB=ON - -DPOCO_ENABLE_SQL_SQLITE=ON - -DPOCO_ENABLE_REDIS=ON - -DPOCO_ENABLE_PDF=ON - -DPOCO_ENABLE_UTIL=ON - -DPOCO_ENABLE_NET=ON - -DPOCO_ENABLE_SEVENZIP=ON - -DPOCO_ENABLE_ZIP=ON - -DPOCO_ENABLE_CPPPARSER=ON - -DPOCO_ENABLE_POCODOC=ON - -DPOCO_ENABLE_PAGECOMPILER=ON - -DPOCO_ENABLE_PAGECOMPILER_FILE2PAGE=ON - -DPOCO_ENABLE_WSTRING=ON - -DPOCO_ENABLE_FPENVIRONMENT=ON - -DPOCO_ENABLE_CPPUNIT=ON + -DENABLE_ENCODINGS=ON + -DENABLE_ENCODINGS_COMPILER=ON + -DENABLE_XML=ON + -DENABLE_JSON=ON + -DENABLE_MONGODB=ON + # -DPOCO_ENABLE_SQL_SQLITE=ON # SQLITE are not supported. + -DENABLE_REDIS=ON + -DENABLE_PDF=ON + -DENABLE_UTIL=ON + -DENABLE_NET=ON + -DENABLE_SEVENZIP=ON + -DENABLE_ZIP=ON + -DENABLE_CPPPARSER=ON + -DENABLE_POCODOC=ON + -DENABLE_PAGECOMPILER=ON + -DENABLE_PAGECOMPILER_FILE2PAGE=ON # -DMYSQL_INCLUDE_DIR=${MYSQL_INCLUDE_DIR} OPTIONS_RELEASE - -DMYSQL_LIBRARY=${MYSQL_LIBRARY} + -DMYSQL_LIB=${MYSQL_LIBRARY} OPTIONS_DEBUG - -DMYSQL_LIBRARY=${MYSQL_LIBRARY_DEBUG} + -DMYSQL_LIB=${MYSQL_LIBRARY_DEBUG} ) vcpkg_install_cmake() @@ -154,7 +149,7 @@ endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # copy license -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/poco) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/poco/LICENSE ${CURRENT_PACKAGES_DIR}/share/poco/copyright) +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) vcpkg_copy_pdbs() diff --git a/ports/poco/static_pcre.patch b/ports/poco/static_pcre.patch index b9bac7629..a6dab02ce 100644 --- a/ports/poco/static_pcre.patch +++ b/ports/poco/static_pcre.patch @@ -1,27 +1,26 @@ -diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt -index 4fedfd5..741313b 100644 ---- a/Foundation/CMakeLists.txt -+++ b/Foundation/CMakeLists.txt -@@ -35,6 +35,22 @@ if (POCO_UNBUNDLED) - find_package(PCRE REQUIRED) - find_package(ZLIB REQUIRED) - -+ add_definitions( -+ -D_pcre_utf8_table1=_poco_pcre_utf8_table1 -+ -D_pcre_utf8_table1_size=_poco_pcre_utf8_table1_size -+ -D_pcre_utf8_table2=_poco_pcre_utf8_table2 -+ -D_pcre_utf8_table3=_poco_pcre_utf8_table3 -+ -D_pcre_utf8_table4=_poco_pcre_utf8_table4 -+ -D_pcre_utt_names=_poco_pcre_utt_names -+ -D_pcre_utt=_poco_pcre_utt -+ -D_pcre_utt_size=_poco_pcre_utt_size -+ -D_pcre_OP_lengths=_poco_pcre_OP_lengths -+ -D_pcre_hspace_list=_poco_pcre_hspace_list -+ -D_pcre_vspace_list=_poco_pcre_vspace_list -+ -D_pcre_ucp_gentype=_poco_pcre_ucp_gentype -+ -D_pcre_ucp_gbtable=_poco_pcre_ucp_gbtable -+ ) -+ - #HACK: Unicode.cpp requires functions from these files. The can't be taken from the library - POCO_SOURCES( SRCS RegExp - src/pcre_ucd.c +diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt +index 0b8f7bc..c362890 100644 +--- a/Foundation/CMakeLists.txt ++++ b/Foundation/CMakeLists.txt +@@ -53,6 +53,21 @@ if (POCO_UNBUNDLED) + include_directories(${ZLIB_INCLUDE_DIRS}) + + add_definitions(-DPOCO_UNBUNDLED) ++ add_definitions( ++ -D_pcre_utf8_table1=_poco_pcre_utf8_table1 ++ -D_pcre_utf8_table1_size=_poco_pcre_utf8_table1_size ++ -D_pcre_utf8_table2=_poco_pcre_utf8_table2 ++ -D_pcre_utf8_table3=_poco_pcre_utf8_table3 ++ -D_pcre_utf8_table4=_poco_pcre_utf8_table4 ++ -D_pcre_utt_names=_poco_pcre_utt_names ++ -D_pcre_utt=_poco_pcre_utt ++ -D_pcre_utt_size=_poco_pcre_utt_size ++ -D_pcre_OP_lengths=_poco_pcre_OP_lengths ++ -D_pcre_hspace_list=_poco_pcre_hspace_list ++ -D_pcre_vspace_list=_poco_pcre_vspace_list ++ -D_pcre_ucp_gentype=_poco_pcre_ucp_gentype ++ -D_pcre_ucp_gbtable=_poco_pcre_ucp_gbtable ++ ) + + else() + # pcre diff --git a/ports/poco/unbundled_pdf.patch b/ports/poco/unbundled_pdf.patch index b7abcf541..800c08f61 100644 --- a/ports/poco/unbundled_pdf.patch +++ b/ports/poco/unbundled_pdf.patch @@ -1,17 +1,30 @@ -diff --git a/PDF/CMakeLists.txt b/PDF/CMakeLists.txt -index b377035..9cfbd32 100644 ---- a/PDF/CMakeLists.txt -+++ b/PDF/CMakeLists.txt -@@ -31,6 +31,12 @@ endif (POCO_UNBUNDLED) - # TODO: Currently only bundled is supported, in future this should also be possible - # with an unbundled version of hpdf - # hpdf -+if (POCO_UNBUNDLED) -+ POCO_SOURCES( SRCS hpdf -+ src/bmpread.c -+ ) -+endif (POCO_UNBUNDLED) -+ - POCO_SOURCES(SRCS hpdf - src/hpdf_3dmeasure.c - src/hpdf_annotation.c +diff --git a/PDF/CMakeLists.txt b/PDF/CMakeLists.txt +index 3e44906..ae8fe6e 100644 +--- a/PDF/CMakeLists.txt ++++ b/PDF/CMakeLists.txt +@@ -97,6 +97,8 @@ POCO_SOURCES(SRCS hpdf + + # TODO: Currently only bundled is supported, in future this should also be possible + # with an unbundled version of libpng ++find_package(png REQUIRED) ++if (0) + POCO_SOURCES( SRCS libpng + src/png.c + src/pngerror.c +@@ -117,6 +119,7 @@ POCO_SOURCES( SRCS libpng + src/pngwtran.c + src/pngwutil.c + ) ++endif(0) + + # Version Resource + if(MSVC AND NOT POCO_STATIC) +@@ -136,7 +139,7 @@ set_target_properties( "${LIBNAME}" + DEFINE_SYMBOL PDF_EXPORTS + ) + +-target_link_libraries( "${LIBNAME}" ${SYSLIBS} XML Util Foundation ) ++target_link_libraries( "${LIBNAME}" ${SYSLIBS} XML Util Foundation ${PNG_LIBRARIES}) + target_include_directories( "${LIBNAME}" + PUBLIC + $ -- cgit v1.2.3 From 4daff70a1939a066ea928cb4cb1e200124d82051 Mon Sep 17 00:00:00 2001 From: wangli28 Date: Thu, 15 Aug 2019 07:40:16 +0000 Subject: [nghttp2] Upgrade to version 1.39.2 --- ports/nghttp2/CONTROL | 2 +- ports/nghttp2/enable-static.patch | 27 --------------------------- ports/nghttp2/portfile.cmake | 19 ++++--------------- 3 files changed, 5 insertions(+), 43 deletions(-) delete mode 100644 ports/nghttp2/enable-static.patch diff --git a/ports/nghttp2/CONTROL b/ports/nghttp2/CONTROL index 176a1c30a..2e8489e0a 100644 --- a/ports/nghttp2/CONTROL +++ b/ports/nghttp2/CONTROL @@ -1,4 +1,4 @@ Source: nghttp2 -Version: 1.35.0 +Version: 1.39.2 Homepage: https://github.com/nghttp2/nghttp2 Description: Implementation of the Hypertext Transfer Protocol version 2 in C diff --git a/ports/nghttp2/enable-static.patch b/ports/nghttp2/enable-static.patch deleted file mode 100644 index 18e58daeb..000000000 --- a/ports/nghttp2/enable-static.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt -index 17e422b..b2e7a6e 100644 ---- a/lib/CMakeLists.txt -+++ b/lib/CMakeLists.txt -@@ -37,8 +37,8 @@ if(WIN32) - set(NGHTTP2_RES ${CMAKE_CURRENT_BINARY_DIR}/version.rc) - endif() - --# Public shared library --add_library(nghttp2 SHARED ${NGHTTP2_SOURCES} ${NGHTTP2_RES}) -+# Public library -+add_library(nghttp2 ${NGHTTP2_SOURCES} ${NGHTTP2_RES}) - set_target_properties(nghttp2 PROPERTIES - COMPILE_FLAGS "${WARNCFLAGS}" - VERSION ${LT_VERSION} SOVERSION ${LT_SOVERSION} -@@ -49,6 +49,10 @@ target_include_directories(nghttp2 INTERFACE - "${CMAKE_CURRENT_SOURCE_DIR}/includes" - ) - -+if(NOT BUILD_SHARED_LIBS) -+ target_compile_definitions(nghttp2 PUBLIC "-DNGHTTP2_STATICLIB") -+endif() -+ - if(HAVE_CUNIT OR ENABLE_STATIC_LIB) - # Static library (for unittests because of symbol visibility) - add_library(nghttp2_static STATIC ${NGHTTP2_SOURCES}) - diff --git a/ports/nghttp2/portfile.cmake b/ports/nghttp2/portfile.cmake index 52f754afb..05a639d06 100644 --- a/ports/nghttp2/portfile.cmake +++ b/ports/nghttp2/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions) set(LIB_NAME nghttp2) -set(LIB_VERSION 1.35.0) +set(LIB_VERSION 1.39.2) set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.gz) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) @@ -9,16 +9,10 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/nghttp2/nghttp2/releases/download/v${LIB_VERSION}/${LIB_FILENAME}" FILENAME "${LIB_FILENAME}" - SHA512 65889545684e2c8b4aeeb7084ca36e3f78927fa2b6d1df906af3970d8ce6c7c6093b56a5e0713f7bb54a98f06ad52d6e2b323e760297610702afe526b0fdd577 + SHA512 1623a6bd9de1ca4d0742919b973eaefd570b250eb109697e5cf2240d2062789d1ca58632fdff32bb17f524b102fade0e30ab3f400dc2c128bfb91a75277f13e0 ) vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - "${CMAKE_CURRENT_LIST_DIR}/enable-static.patch" -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -35,13 +29,8 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/man) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc) -# Move dll files from /lib to /bin where vcpkg expects them -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/${LIB_NAME}.dll ${CURRENT_PACKAGES_DIR}/bin/${LIB_NAME}.dll) - - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/${LIB_NAME}.dll ${CURRENT_PACKAGES_DIR}/debug/bin/${LIB_NAME}.dll) +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() # License and man -- cgit v1.2.3 From 9711ca77d38212e048b9434dfa6f03ee3c282b1b Mon Sep 17 00:00:00 2001 From: JackBoosY Date: Thu, 15 Aug 2019 00:54:08 -0700 Subject: [poco]Re-fix unbundled_pdf.patch --- ports/poco/unbundled_pdf.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/poco/unbundled_pdf.patch b/ports/poco/unbundled_pdf.patch index 800c08f61..e7f88f035 100644 --- a/ports/poco/unbundled_pdf.patch +++ b/ports/poco/unbundled_pdf.patch @@ -6,7 +6,7 @@ index 3e44906..ae8fe6e 100644 # TODO: Currently only bundled is supported, in future this should also be possible # with an unbundled version of libpng -+find_package(png REQUIRED) ++find_package(PNG REQUIRED) +if (0) POCO_SOURCES( SRCS libpng src/png.c -- cgit v1.2.3 From 547fc19218300ce35956dc95523ca02bda99fb98 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Aug 2019 13:53:24 +0430 Subject: [brynet] Update library to 1.0.3 --- ports/brynet/CONTROL | 2 +- ports/brynet/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/brynet/CONTROL b/ports/brynet/CONTROL index 5566fad32..341076cba 100644 --- a/ports/brynet/CONTROL +++ b/ports/brynet/CONTROL @@ -1,5 +1,5 @@ Source: brynet -Version: 1.0.2 +Version: 1.0.3 Homepage: https://github.com/IronsDu/brynet Description: A C++ cross platform high performance tcp network library, and support SSL/HTTP/Websocket. Build-Depends: openssl diff --git a/ports/brynet/portfile.cmake b/ports/brynet/portfile.cmake index 141711827..f707948ac 100644 --- a/ports/brynet/portfile.cmake +++ b/ports/brynet/portfile.cmake @@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO IronsDu/brynet - REF v1.0.2 - SHA512 b07ceb858ed125959b3901415d6099939acf51a194950de8c65f063b6462a0ab424494659aedd889378bd4388cc9e71a0aedcb30108b6c2eef4d5e6ebea2cce8 + REF v1.0.3 + SHA512 8759b522da34be68a7ba0959ed3d85382965efe5080e4cdd403001f3911d36398b7fe9d039fd9fb485a0d557cec0fa53863a512eb88f13f3ff222b6e30642baf HEAD_REF master ) -- cgit v1.2.3 From 278bbe4769932a786c7e1b86e4bc9a0cf57d1c68 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Aug 2019 13:55:08 +0430 Subject: [catch2] Update library to 2.9.2 --- ports/catch2/CONTROL | 2 +- ports/catch2/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/catch2/CONTROL b/ports/catch2/CONTROL index bba0085bb..810b18dd1 100644 --- a/ports/catch2/CONTROL +++ b/ports/catch2/CONTROL @@ -1,4 +1,4 @@ Source: catch2 -Version: 2.9.1-1 +Version: 2.9.2 Description: A modern, header-only test framework for unit testing. Homepage: https://github.com/catchorg/Catch2 diff --git a/ports/catch2/portfile.cmake b/ports/catch2/portfile.cmake index 009696c40..b19ebeab4 100644 --- a/ports/catch2/portfile.cmake +++ b/ports/catch2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO catchorg/Catch2 - REF v2.9.1 - SHA512 ea18eef1fece72518c8a46b89727f5d0545a15038957087324abe6421c682693379476ff46106132f080677ebcc1c9ead51a9cf25dced3bb576a33e4f6fae4f6 + REF v2.9.2 + SHA512 06430322dbeb637902f3bdc1c4df04e2525bc3ad9aea47aaf284b311401f26f489092971a2822d5a54041ef1d01d1b1bda3eedea2ba5041ae89903d8e56db121 HEAD_REF master ) -- cgit v1.2.3 From 890d9eae9d6dcf4c2e734cd1132fa1be98632af1 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Aug 2019 13:57:39 +0430 Subject: [chakracore] Update library to 1.11.12 --- ports/chakracore/CONTROL | 2 +- ports/chakracore/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/chakracore/CONTROL b/ports/chakracore/CONTROL index 44c6fe4c4..0f496998e 100644 --- a/ports/chakracore/CONTROL +++ b/ports/chakracore/CONTROL @@ -1,4 +1,4 @@ Source: chakracore -Version: 1.11.11 +Version: 1.11.12 Homepage: https://github.com/Microsoft/ChakraCore Description: Core part of the Chakra Javascript engine diff --git a/ports/chakracore/portfile.cmake b/ports/chakracore/portfile.cmake index 5263b3a16..924bc1e91 100644 --- a/ports/chakracore/portfile.cmake +++ b/ports/chakracore/portfile.cmake @@ -9,8 +9,8 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/ChakraCore - REF v1.11.11 - SHA512 67fd364090632c4187c43dc7bb50d2a6cd18ebb2963f86b7f07c6394c243a94963dd9a1e2dc8f4ab9653ab1316921dbac2c1f5fa235e241e9c605e63f2551a10 + REF v1.11.12 + SHA512 6ff8b8fa379bd290d547ca9900c5aca47b6148f0112e58c11ab757fb2a9080119be59611fb5cb73fabae99802e8df2da35d7b8f1c351a32b452444d090d3b069 HEAD_REF master ) -- cgit v1.2.3 From fa5d80b9dd08e37233fd7d47a75b835f4164d556 Mon Sep 17 00:00:00 2001 From: JackBoosY Date: Thu, 15 Aug 2019 03:18:11 -0700 Subject: [poco]Fix library using pcre. --- ports/poco/find_pcre.patch | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/ports/poco/find_pcre.patch b/ports/poco/find_pcre.patch index 1a07882bc..3b73ae4f1 100644 --- a/ports/poco/find_pcre.patch +++ b/ports/poco/find_pcre.patch @@ -1,13 +1,22 @@ -diff --git a/cmake/FindPCRE.cmake b/cmake/FindPCRE.cmake -index 41a99cb..77f3a42 100644 ---- a/cmake/FindPCRE.cmake -+++ b/cmake/FindPCRE.cmake -@@ -14,7 +14,7 @@ ENDIF (PCRE_INCLUDE_DIRS) - - FIND_PATH(PCRE_INCLUDE_DIR pcre.h) - --SET(PCRE_NAMES pcre) -+SET(PCRE_NAMES pcred pcre) - FIND_LIBRARY(PCRE_LIBRARY NAMES ${PCRE_NAMES} ) - - # handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if +diff --git a/cmake/FindPCRE.cmake b/cmake/FindPCRE.cmake +index 41a99cb..b1acb32 100644 +--- a/cmake/FindPCRE.cmake ++++ b/cmake/FindPCRE.cmake +@@ -14,9 +14,15 @@ ENDIF (PCRE_INCLUDE_DIRS) + + FIND_PATH(PCRE_INCLUDE_DIR pcre.h) + +-SET(PCRE_NAMES pcre) ++if (WIN32) ++include(SelectLibraryConfigurations) ++find_library(PCRE_LIBRARY_RELEASE NAMES pcre) ++find_library(PCRE_LIBRARY_DEBUG NAMES pcred) ++select_library_configurations(PCRE) ++else() ++SET(PCRE_NAMES pcred pcre) + FIND_LIBRARY(PCRE_LIBRARY NAMES ${PCRE_NAMES} ) +- ++endif() + # handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if + # all listed variables are TRUE + INCLUDE(FindPackageHandleStandardArgs) -- cgit v1.2.3 From 514ad6542cc088a23b32e8e17a4defb2ddbed5b9 Mon Sep 17 00:00:00 2001 From: JackBoosY <47264268+JackBoosY@users.noreply.github.com> Date: Fri, 16 Aug 2019 02:47:13 +0800 Subject: [czmq/pcl]Fix judgment feature condition. (#7700) --- ports/czmq/CONTROL | 2 +- ports/czmq/portfile.cmake | 2 +- ports/pcl/CONTROL | 2 +- ports/pcl/portfile.cmake | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ports/czmq/CONTROL b/ports/czmq/CONTROL index c24d918e0..4d68f15b1 100644 --- a/ports/czmq/CONTROL +++ b/ports/czmq/CONTROL @@ -1,5 +1,5 @@ Source: czmq -Version: 2019-06-10-2 +Version: 2019-06-10-3 Build-Depends: zeromq Description: High-level C binding for ZeroMQ Homepage: https://github.com/zeromq/czmq diff --git a/ports/czmq/portfile.cmake b/ports/czmq/portfile.cmake index 3c0e4c604..2545feea5 100644 --- a/ports/czmq/portfile.cmake +++ b/ports/czmq/portfile.cmake @@ -69,7 +69,7 @@ else() set(EXECUTABLE_SUFFIX "") endif() -if (BUILD_TOOLS) +if ("tool" IN_LIST FEATURES) file(COPY ${CURRENT_PACKAGES_DIR}/bin/zmakecert${EXECUTABLE_SUFFIX} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL index 3b40a6a4d..7d9e3a8db 100644 --- a/ports/pcl/CONTROL +++ b/ports/pcl/CONTROL @@ -1,5 +1,5 @@ Source: pcl -Version: 1.9.1-7 +Version: 1.9.1-8 Homepage: https://github.com/PointCloudLibrary/pcl Description: Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing. Build-Depends: eigen3, flann, qhull, vtk, libpng, boost-system, boost-filesystem, boost-thread, boost-date-time, boost-iostreams, boost-random, boost-foreach, boost-dynamic-bitset, boost-property-map, boost-graph, boost-multi-array, boost-signals2, boost-ptr-container, boost-uuid, boost-interprocess, boost-asio diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake index 591eeead9..aa4435dd5 100644 --- a/ports/pcl/portfile.cmake +++ b/ports/pcl/portfile.cmake @@ -56,7 +56,7 @@ vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -if(BUILD_TOOLS) +if("tools" IN_LIST FEATURES) file(GLOB EXEFILES_RELEASE ${CURRENT_PACKAGES_DIR}/bin/*.exe) file(GLOB EXEFILES_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) file(COPY ${EXEFILES_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/pcl) -- cgit v1.2.3 From 47d761faf076ae42a2b5c8ea0c3baf218f0b5f09 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Fri, 16 Aug 2019 02:57:26 +0800 Subject: [wg21-sg14] Add new port (#7663) * [SG14] Add new port * [wg21-sg14] Rename --- ports/wg21-sg14/CONTROL | 4 ++++ ports/wg21-sg14/portfile.cmake | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 ports/wg21-sg14/CONTROL create mode 100644 ports/wg21-sg14/portfile.cmake diff --git a/ports/wg21-sg14/CONTROL b/ports/wg21-sg14/CONTROL new file mode 100644 index 000000000..e09697226 --- /dev/null +++ b/ports/wg21-sg14/CONTROL @@ -0,0 +1,4 @@ +Source: wg21-sg14 +Version: 2019-08-13 +Description: A library for Study Group 14 of Working Group 21 (C++) +Homepage: https://github.com/WG21-SG14/SG14 diff --git a/ports/wg21-sg14/portfile.cmake b/ports/wg21-sg14/portfile.cmake new file mode 100644 index 000000000..d72be282a --- /dev/null +++ b/ports/wg21-sg14/portfile.cmake @@ -0,0 +1,21 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO WG21-SG14/SG14 + REF 836e4d202249a86ba5ff56139c35e0afa60e7a1c + SHA512 002a6b83ecfb41bde978e912feda77639460ff376ad634e1cd0a908e2be35863489132db579d399bb6e5087fcb0355a222e611eae58eb0c2d8372bdd25f60e07 + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/SG14 DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright + +file(STRINGS "${SOURCE_PATH}/SG14/flat_map.h" SOURCE_LINES) +list(SUBLIST SOURCE_LINES 0 26 SOURCE_LINES) +list(JOIN SOURCE_LINES "\n" _contents) + +file(READ "${SOURCE_PATH}/Docs/plf_licensing.txt" plf_licensing_contents) + +file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "${_contents}\n${plf_licensing_contents}") -- cgit v1.2.3 From 82eb7ae03e329a26da4e3df9132bced8d32d2169 Mon Sep 17 00:00:00 2001 From: Carlos O'Ryan Date: Thu, 15 Aug 2019 15:05:47 -0400 Subject: Update googleapis to 0.1.3. --- ports/googleapis/CONTROL | 2 +- ports/googleapis/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/googleapis/CONTROL b/ports/googleapis/CONTROL index b77e35eed..194cd39f5 100644 --- a/ports/googleapis/CONTROL +++ b/ports/googleapis/CONTROL @@ -1,5 +1,5 @@ Source: googleapis -Version: 0.1.1 +Version: 0.1.3 Build-Depends: grpc, protobuf Description: C++ Proto Libraries for Google APIs. Homepage: https://github.com/googleapis/cpp-cmakefiles diff --git a/ports/googleapis/portfile.cmake b/ports/googleapis/portfile.cmake index 684b4cbdb..969ec95fb 100644 --- a/ports/googleapis/portfile.cmake +++ b/ports/googleapis/portfile.cmake @@ -9,8 +9,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO googleapis/cpp-cmakefiles - REF v0.1.1 - SHA512 e23af2d0d36d4e13da761473b78b958326b9c7fd4aaf0c4b6742ae498b65aafe73976f7c858365b041aa667f280c10eca6df7e87644c260fc022ec4eee7a7bc6 + REF v0.1.3 + SHA512 5c6be5af731d97dcf754b1f643c35a1c806e6b976a3dd027dd80ee15f86c6d70f772dcecbf2da5597a4e8d8d9639813c2d2f66dd7112b8039c14c3a49ec6c4db HEAD_REF master ) -- cgit v1.2.3 From 7dcaf395815e729041162cf8391c58f0e154715b Mon Sep 17 00:00:00 2001 From: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:30:32 -0700 Subject: [pistache] Add new port (#7547) * [pistache] Add new port * Update prompt messages * Remove pkgconfig file from lib and debug/lib. --- ports/pistache/CONTROL | 4 ++++ ports/pistache/portfile.cmake | 31 +++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 ports/pistache/CONTROL create mode 100644 ports/pistache/portfile.cmake diff --git a/ports/pistache/CONTROL b/ports/pistache/CONTROL new file mode 100644 index 000000000..c1b4408cf --- /dev/null +++ b/ports/pistache/CONTROL @@ -0,0 +1,4 @@ +Source: pistache +Version: 2019-08-05 +Homepage: https://github.com/oktal/pistache +Description: Pistache is a modern and elegant HTTP and REST framework for C++. It is entirely written in pure-C++11 and provides a clear and pleasant API. \ No newline at end of file diff --git a/ports/pistache/portfile.cmake b/ports/pistache/portfile.cmake new file mode 100644 index 000000000..d0400dcdf --- /dev/null +++ b/ports/pistache/portfile.cmake @@ -0,0 +1,31 @@ +include(vcpkg_common_functions) + +if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") + message(FATAL_ERROR "${PORT} currently only supports Linux platform.") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO oktal/pistache + REF 4dc9e3ef9a1b953a62e5fadbed88e72b4b3734de + SHA512 427b6a6e7200e5f91ce8737cd1cc5d6cd689025033c85979c96f0ece64ae05d9c6839a936d7d6015b0e1065dc72362f6f70ab588ea7cae7aa718dfe5cd288554 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) -- cgit v1.2.3 From 034d5c9afc8a2dec4c7d9f5046e3192fec28ade9 Mon Sep 17 00:00:00 2001 From: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:35:57 -0700 Subject: [hfsm2] Add new port (#7516) * [hfsm2] Add new port * [Update the way to install headers] * Add build depends --- ports/hfsm2/CONTROL | 5 +++++ ports/hfsm2/portfile.cmake | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 ports/hfsm2/CONTROL create mode 100644 ports/hfsm2/portfile.cmake diff --git a/ports/hfsm2/CONTROL b/ports/hfsm2/CONTROL new file mode 100644 index 000000000..4677f8b08 --- /dev/null +++ b/ports/hfsm2/CONTROL @@ -0,0 +1,5 @@ +Source: hfsm2 +Version: beta7 +Homepage: https://github.com/andrew-gresyk/HFSM2 +Description: Header-only heriarchical FSM framework in C++14, with fully statically-defined structure (no dynamic allocations), built with variadic templates. +Build-Depends: catch2 diff --git a/ports/hfsm2/portfile.cmake b/ports/hfsm2/portfile.cmake new file mode 100644 index 000000000..0970d0111 --- /dev/null +++ b/ports/hfsm2/portfile.cmake @@ -0,0 +1,15 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO andrew-gresyk/HFSM2 + REF Beta7 + SHA512 f3365c0823fa63f7e6b82bd2dc84f8871eb58ffd9485753a60ea8f956856cbec7c5da3929ab8fe8b5902a7c840334a1d421417984124adf109f96756490ac437 + HEAD_REF master +) + +# Install include directory +file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) -- cgit v1.2.3 From 063b6878b08a10e84efed1dc5521d238e6224eab Mon Sep 17 00:00:00 2001 From: Denis Zavorotnyy Date: Fri, 16 Aug 2019 01:35:29 +0300 Subject: [libtorrent] Update to 1.2.1-bcb26fd6 1.2.1-bcb26fd6 * fix issue where trackers from magnet links were not included in create_torrent() * make peer_info::client a byte array in python binding * pick contiguous pieces from peers with high download rate * fix error handling of moving storage to a drive letter that isn't mounted * fix HTTP Host header when using proxy 1.2.1 release * add dht_pkt_alert and alerts_dropped_alert to python bindings --- ports/libtorrent/CONTROL | 2 +- ports/libtorrent/portfile.cmake | 5 ++--- ports/libtorrent/windows-boost-1.70.patch | 13 ------------- 3 files changed, 3 insertions(+), 17 deletions(-) delete mode 100644 ports/libtorrent/windows-boost-1.70.patch diff --git a/ports/libtorrent/CONTROL b/ports/libtorrent/CONTROL index 2fe8e85ed..ef6da1321 100644 --- a/ports/libtorrent/CONTROL +++ b/ports/libtorrent/CONTROL @@ -1,5 +1,5 @@ Source: libtorrent -Version: 2019-04-19 +Version: 1.2.1-bcb26fd6 Homepage: https://github.com/arvidn/libtorrent Description: An efficient feature complete C++ BitTorrent implementation Build-Depends: openssl, boost-system, boost-date-time, boost-chrono, boost-random, boost-asio, boost-crc, boost-config, boost-iterator, boost-scope-exit, boost-multiprecision diff --git a/ports/libtorrent/portfile.cmake b/ports/libtorrent/portfile.cmake index bc05d14c7..df31dbe93 100644 --- a/ports/libtorrent/portfile.cmake +++ b/ports/libtorrent/portfile.cmake @@ -3,12 +3,11 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arvidn/libtorrent - REF 76c2794923c4c101ff715be11d794f7fefc6c524 - SHA512 3e154857bb56318ebe725326e1832aa387dc85840be80ebe76c0265e8fded43bc3006d528784c8805e30c3fba41b4108ccf81170870d1686dc499048367563ea + REF bcb26fd638bd8c543cd3cc42837b120ff86d44b1 + SHA512 af897d2daca6e67efe777724147b1047624df9df938222fe967d380263d88ccb3c081e1a24a6c790bf1b35f46385ef08b46d8e46d0922f945cd28c59dd0d35a7 HEAD_REF master PATCHES add-datetime-to-boost-libs.patch - windows-boost-1.70.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBTORRENT_SHARED) diff --git a/ports/libtorrent/windows-boost-1.70.patch b/ports/libtorrent/windows-boost-1.70.patch deleted file mode 100644 index b0bf1f642..000000000 --- a/ports/libtorrent/windows-boost-1.70.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/ip_notifier.cpp b/src/ip_notifier.cpp -index 37e5623..daa25f8 100644 ---- a/src/ip_notifier.cpp -+++ b/src/ip_notifier.cpp -@@ -380,7 +380,7 @@ struct ip_change_notifier_impl final : ip_change_notifier - } - else - { -- m_hnd.get_io_service().post([cb, err]() -+ lt::get_io_service(m_hnd).post([cb, err]() - { cb(error_code(err, system_category())); }); - } - } -- cgit v1.2.3 From d72c12c84b7bfca1ac7c8661a78a4e956b24802b Mon Sep 17 00:00:00 2001 From: JackBoosY Date: Thu, 15 Aug 2019 20:20:25 -0700 Subject: [libmariadb]Fix usage error LNK2001. --- ports/libmariadb/CONTROL | 2 +- ports/libmariadb/fix-InstallPath.patch | 97 ---------------------------------- ports/libmariadb/portfile.cmake | 4 ++ 3 files changed, 5 insertions(+), 98 deletions(-) diff --git a/ports/libmariadb/CONTROL b/ports/libmariadb/CONTROL index 0e3327bb4..267755d1b 100644 --- a/ports/libmariadb/CONTROL +++ b/ports/libmariadb/CONTROL @@ -1,4 +1,4 @@ Source: libmariadb -Version: 3.0.10-3 +Version: 3.0.10-4 Homepage: https://github.com/MariaDB/mariadb-connector-c Description: MariaDB Connector/C is used to connect C/C++ applications to MariaDB and MySQL databases diff --git a/ports/libmariadb/fix-InstallPath.patch b/ports/libmariadb/fix-InstallPath.patch index 1a317aa2d..667a428f0 100644 --- a/ports/libmariadb/fix-InstallPath.patch +++ b/ports/libmariadb/fix-InstallPath.patch @@ -1,19 +1,3 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 02757a9..b2715dd 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -15,6 +15,11 @@ IF(COMMAND CMAKE_POLICY) - ENDFOREACH() - ENDIF() - -+if (BUILD_SHARED_LIBS) -+ set(DEFAULT_LINKAGE DYNAMIC) -+else() -+ set(DEFAULT_LINKAGE STATIC) -+endif() - - PROJECT(mariadb-connector-c C) - diff --git a/cmake/install_plugins.cmake b/cmake/install_plugins.cmake index cd5616c..d058a5c 100644 --- a/cmake/install_plugins.cmake @@ -63,84 +47,3 @@ index a1f039e..03a3a6f 100644 # On Windows, install PDB INSTALL(FILES $ DESTINATION "${INSTALL_LIBDIR}" CONFIGURATIONS Debug RelWithDebInfo -diff --git a/plugins/auth/CMakeLists.txt b/plugins/auth/CMakeLists.txt -index 42f6f05..9a57146 100644 ---- a/plugins/auth/CMakeLists.txt -+++ b/plugins/auth/CMakeLists.txt -@@ -14,7 +14,7 @@ REGISTER_PLUGIN(TARGET mysql_native_password - REGISTER_PLUGIN(TARGET dialog - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/auth/dialog.c - ${CC_SOURCE_DIR}/libmariadb/get_password.c) - -@@ -33,7 +33,7 @@ IF(WITH_SSL) - REGISTER_PLUGIN(TARGET caching_sha2_password - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/auth/caching_sha2_pw.c - ${CRYPT_SOURCE} - LIBRARIES ${CACHING_SHA2_LIBS}) -@@ -53,7 +53,7 @@ IF(GSSAPI_SOURCES) - REGISTER_PLUGIN(TARGET auth_gssapi_client - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${GSSAPI_SOURCES} - INCLUDES ${CC_SOURCE_DIR}/plugins/auth ${GSSAPI_INCS} - LIBRARIES ${GSSAPI_LIBS}) -@@ -68,7 +68,7 @@ IF(${WITH_SSL} STREQUAL "OPENSSL" OR ${WITH_SSL} STREQUAL "SCHANNEL") - REGISTER_PLUGIN(TARGET sha256_password - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${AUTH_DIR}/sha256_pw.c - LIBRARIES ${SHA256_LIBS}) - ENDIF() -@@ -85,6 +85,6 @@ REGISTER_PLUGIN(TARGET mysql_old_password - REGISTER_PLUGIN(TARGET mysql_clear_password - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${AUTH_DIR}/mariadb_cleartext.c) - -diff --git a/plugins/io/CMakeLists.txt b/plugins/io/CMakeLists.txt -index 8c304c9..3547107 100644 ---- a/plugins/io/CMakeLists.txt -+++ b/plugins/io/CMakeLists.txt -@@ -7,7 +7,7 @@ IF (WITH_CURL) - REGISTER_PLUGIN(TARGET remote_io - TYPE MARIADB_CLIENT_PLUGIN_IO - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/io/remote_io.c - INCLUDES ${CURL_INCLUDE_DIR} - LIBRARIES ${CURL_LIBRARIES}) -diff --git a/plugins/pvio/CMakeLists.txt b/plugins/pvio/CMakeLists.txt -index 76eb3ef..3601622 100644 ---- a/plugins/pvio/CMakeLists.txt -+++ b/plugins/pvio/CMakeLists.txt -@@ -15,13 +15,13 @@ IF(WIN32) - REGISTER_PLUGIN(TARGET pvio_npipe - TYPE MARIADB_CLIENT_PLUGIN_PVIO - CONFIGURATIONS STATIC DYNAMIC DEFAULT -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/pvio/pvio_npipe.c) - - # shared memory - REGISTER_PLUGIN(TARGET pvio_shmem - TYPE MARIADB_CLIENT_PLUGIN_PVIO - CONFIGURATIONS STATIC DYNAMIC DEFAULT -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/pvio/pvio_shmem.c) - ENDIF() diff --git a/ports/libmariadb/portfile.cmake b/ports/libmariadb/portfile.cmake index ebf8b9f24..6e74a5186 100644 --- a/ports/libmariadb/portfile.cmake +++ b/ports/libmariadb/portfile.cmake @@ -33,6 +33,10 @@ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) endif() +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + if(VCPKG_BUILD_TYPE STREQUAL "debug") # move headers file(RENAME -- cgit v1.2.3 From 0a033250c7dd3f4013248216e259548693b8cc8c Mon Sep 17 00:00:00 2001 From: Adam Martin Date: Fri, 16 Aug 2019 00:47:14 -0500 Subject: Added feature to optionally install all Angelscript standard addons (#7650) --- ports/angelscript/CONTROL | 5 ++++- ports/angelscript/portfile.cmake | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ports/angelscript/CONTROL b/ports/angelscript/CONTROL index 7315b1a90..103dda42e 100644 --- a/ports/angelscript/CONTROL +++ b/ports/angelscript/CONTROL @@ -1,3 +1,6 @@ Source: angelscript -Version: 2.33.0-1 +Version: 2.33.1-1 Description: The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. It has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer. + +Feature: addons +Description: Installs all addons for use in compiling scripts addons diff --git a/ports/angelscript/portfile.cmake b/ports/angelscript/portfile.cmake index f6521df29..3aea242b5 100644 --- a/ports/angelscript/portfile.cmake +++ b/ports/angelscript/portfile.cmake @@ -28,3 +28,11 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Angelscript) # Handle copyright file(INSTALL ${CURRENT_PORT_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/angelscript RENAME copyright) + +# Copy the addon files +if("addons" IN_LIST FEATURES) + file(INSTALL ${SOURCE_PATH}/add_on/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/angelscript FILES_MATCHING PATTERN "*.h" PATTERN "*.cpp") +endif() + +# Post-build test for cmake libraries +# vcpkg_test_cmake(PACKAGE_NAME angelscript) -- cgit v1.2.3 From c315a54a950e73c7413728a8e50a24774edc83ba Mon Sep 17 00:00:00 2001 From: wangli28 Date: Fri, 16 Aug 2019 06:20:22 +0000 Subject: [geographiclib] Remove elseif --- ports/geographiclib/portfile.cmake | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ports/geographiclib/portfile.cmake b/ports/geographiclib/portfile.cmake index 27c6f9ee7..529e07fcc 100644 --- a/ports/geographiclib/portfile.cmake +++ b/ports/geographiclib/portfile.cmake @@ -48,9 +48,7 @@ vcpkg_install_cmake() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) -elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") - vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake) -elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") +else() vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake) endif() vcpkg_copy_pdbs() -- cgit v1.2.3 From f82c50c9a57cb07c9742e61f4b8da2b3db992e73 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Aug 2019 12:06:16 +0430 Subject: [cpp-httplib] Update library to 0.2.1 --- ports/cpp-httplib/CONTROL | 2 +- ports/cpp-httplib/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/cpp-httplib/CONTROL b/ports/cpp-httplib/CONTROL index 66d4938f0..ebfc59ad8 100644 --- a/ports/cpp-httplib/CONTROL +++ b/ports/cpp-httplib/CONTROL @@ -1,4 +1,4 @@ Source: cpp-httplib -Version: 0.2.0 +Version: 0.2.1 Homepage: https://github.com/yhirose/cpp-httplib Description: A single file C++11 header-only HTTP/HTTPS server and client library diff --git a/ports/cpp-httplib/portfile.cmake b/ports/cpp-httplib/portfile.cmake index 9e85b57e3..975b74902 100644 --- a/ports/cpp-httplib/portfile.cmake +++ b/ports/cpp-httplib/portfile.cmake @@ -5,8 +5,8 @@ set(VERSION 0.2.0) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yhirose/cpp-httplib - REF 2f8479016fa9af9a63056571992b31c32741d89b - SHA512 2f17a6a95c849a5c873a65e8da8bf85311f0152e439a973354c24d02ee9e6c3b0f3a456b60f90637ea4588d9ac09f7e41f42199de61315754e5fe9eecbb657ed + REF v0.2.1 + SHA512 f0f24cb58da4bbe4ccaa28891fd56257bc97cdf861c4406f41c0cb0bb76b53f9f707298cb5ea1139e4a819c4b1a4b750090a53652d45c3621b33d76ba627a78f HEAD_REF master ) -- cgit v1.2.3 From 35696e12f8e9456fcc0546076e14584c7113ec39 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Aug 2019 12:39:18 +0430 Subject: [pegtl-2] Update library to 2.8.1 --- ports/pegtl-2/CONTROL | 2 +- ports/pegtl-2/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/pegtl-2/CONTROL b/ports/pegtl-2/CONTROL index fcbcd3bba..aba1579d1 100644 --- a/ports/pegtl-2/CONTROL +++ b/ports/pegtl-2/CONTROL @@ -1,3 +1,3 @@ Source: pegtl-2 -Version: 2.8.0 +Version: 2.8.1 Description: The Parsing Expression Grammar Template Library (PEGTL) is a zero-dependency C++ header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG). This version maintains compatibility with C++11. diff --git a/ports/pegtl-2/portfile.cmake b/ports/pegtl-2/portfile.cmake index 79d6bb97e..4e43c40ce 100644 --- a/ports/pegtl-2/portfile.cmake +++ b/ports/pegtl-2/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO taocpp/pegtl - REF 2.8.0 - SHA512 1652b0061cd4cbd0e687855ee2e61e97d020606c54329de8769c3a3f411002323900c11eaf0da28e107c17e269025f577f9205b7500c5bbb16502687be8ee77b + REF 2.8.1 + SHA512 7a8f6829123fbbd5a0ef1c8ef2c72bdae48576ef94056a1dff7914e4bb85caac1df02839131ea5cfb4131c8902addeca92df48fe7dd5815bdf5cb35759dace49 HEAD_REF master ) -- cgit v1.2.3 From f71048c97dd80313ebcd465e02f534b2376f0f4c Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Aug 2019 12:50:01 +0430 Subject: [doctest] Update library to 2.3.4 --- ports/doctest/CONTROL | 2 +- ports/doctest/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/doctest/CONTROL b/ports/doctest/CONTROL index 135b8a4d8..68981d7af 100644 --- a/ports/doctest/CONTROL +++ b/ports/doctest/CONTROL @@ -1,4 +1,4 @@ Source: doctest -Version: 2.3.3 +Version: 2.3.4 Homepage: https://github.com/onqtam/doctest Description: The fastest feature-rich C++ single-header testing framework for unit tests and TDD diff --git a/ports/doctest/portfile.cmake b/ports/doctest/portfile.cmake index 7c9c4bfed..c1fa00774 100644 --- a/ports/doctest/portfile.cmake +++ b/ports/doctest/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO onqtam/doctest - REF 2.3.3 - SHA512 9ef94de93906f3c43918f232b3baa64756fdaee883afc5b2e785e76b108f1aa0d526a49dac58ffb0475ebfd8d8394ef266aec499c29282eea9a2752fb60b663f + REF 2.3.4 + SHA512 ca97da8e22684f2d901d0a9dc9c1d0c7126a850f75fe20c37a4d8bbc6f7eafc961313a6c58ca712f00465fff107e1b6b6d9557d2b04edb3029b0035bcfa6db20 HEAD_REF master ) -- cgit v1.2.3 From 812beb610194ebcfc6f6ab0dd4a3fa337e677c0b Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Aug 2019 13:31:52 +0430 Subject: [jsoncons] Update library to 0.132.1 --- ports/jsoncons/CONTROL | 2 +- ports/jsoncons/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/jsoncons/CONTROL b/ports/jsoncons/CONTROL index 7158ab580..73871ba2b 100644 --- a/ports/jsoncons/CONTROL +++ b/ports/jsoncons/CONTROL @@ -1,4 +1,4 @@ Source: jsoncons -Version: 0.131.2 +Version: 0.132.1 Description: A C++, header-only library for constructing JSON and JSON-like text and binary data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON Homepage: https://github.com/danielaparker/jsoncons diff --git a/ports/jsoncons/portfile.cmake b/ports/jsoncons/portfile.cmake index 7c6af87b5..97274bd8f 100644 --- a/ports/jsoncons/portfile.cmake +++ b/ports/jsoncons/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO danielaparker/jsoncons - REF v0.131.2 - SHA512 7053a971cbc6e12623b65f98323c0d330c903f2b5eae9191369a9a04ae87654e8fa435139e9a72829a1ef9a957e3d4837362c90668f42ba8a0eedc80207e6eef + REF v0.132.1 + SHA512 74bfe6fe18e90f4230b9d811a01f263e4597f6363f4df0cb29a89148bbc040ab578a1eb77d3cb87ce0d8e9d304b9716dd245f4dc5603c7d445cd0acdfb62905d HEAD_REF master ) -- cgit v1.2.3 From 099c31ad696653fe845df3b442b905beb1ce82c6 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Aug 2019 13:43:24 +0430 Subject: [jsoncpp] Update library to 1.9.1 --- ports/jsoncpp/CONTROL | 2 +- ports/jsoncpp/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/jsoncpp/CONTROL b/ports/jsoncpp/CONTROL index 6bbe46c0e..f0d4b66a3 100644 --- a/ports/jsoncpp/CONTROL +++ b/ports/jsoncpp/CONTROL @@ -1,4 +1,4 @@ Source: jsoncpp -Version: 1.8.4-1 +Version: 1.9.1 Homepage: https://github.com/open-source-parsers/jsoncpp Description: jsoncpp is an implementation of a JSON reader and writer in C++. JSON (JavaScript Object Notation) is a lightweight data-interchange format that it is easy to parse and redeable for human. diff --git a/ports/jsoncpp/portfile.cmake b/ports/jsoncpp/portfile.cmake index f04620fd5..3e00476d2 100644 --- a/ports/jsoncpp/portfile.cmake +++ b/ports/jsoncpp/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-source-parsers/jsoncpp - REF 1.8.4 - SHA512 f70361a3263dd8b9441374a9a409462be1426c0d6587c865171a80448ab73b3f69de2b4d70d2f0c541764e1e6cccc727dd53178347901f625ec6fb54fb94f4f1 + REF 1.9.1 + SHA512 4a8352e1d32c0ba8a0aea4df1663279cb2256b334643c5b62be37dfb5951e06900ba38c010d1201511fcf7de09137d6a4b886edbb2b99160d2f62b5f4679f766 HEAD_REF master ) -- cgit v1.2.3 From ebefed05d4cc853f2bee26828b3fe1222347c5f8 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Aug 2019 13:55:18 +0430 Subject: [oniguruma] Update library 6.9.3 --- ports/oniguruma/CONTROL | 2 +- ports/oniguruma/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/oniguruma/CONTROL b/ports/oniguruma/CONTROL index 6fe3ee2d0..087fb428b 100644 --- a/ports/oniguruma/CONTROL +++ b/ports/oniguruma/CONTROL @@ -1,5 +1,5 @@ Source: oniguruma -Version: 6.9.2-3 +Version: 6.9.3 Description: Modern and flexible regular expressions library Homepage: https://github.com/kkos/oniguruma diff --git a/ports/oniguruma/portfile.cmake b/ports/oniguruma/portfile.cmake index 5b2fe2adf..7a4451f14 100644 --- a/ports/oniguruma/portfile.cmake +++ b/ports/oniguruma/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kkos/oniguruma - REF v6.9.2 - SHA512 b5578560f469c2e123280159a23a0e59045bf2452fd3efe09393c5e99ecc6323f965d2189a4e7e6e3a108c1d02b9b041f3fe991cd8ab64f7289003a5a07b4434 + REF v6.9.3 + SHA512 a0f4da26ba08de516c05b5e4b803a9cf8013489c3743ecf27fbc3f66f835eef8fca81b9ed2bd68729a470fe897994046843a4fd31d44a9584ff8dabd1748df21 HEAD_REF master ) -- cgit v1.2.3 From db96ecd7d7a501ab980f517a3781973ca2183033 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Aug 2019 14:14:15 +0430 Subject: [robin-hood-hashing] Update library to 3.4.0 --- ports/robin-hood-hashing/CONTROL | 2 +- ports/robin-hood-hashing/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/robin-hood-hashing/CONTROL b/ports/robin-hood-hashing/CONTROL index d30871519..785b6f791 100644 --- a/ports/robin-hood-hashing/CONTROL +++ b/ports/robin-hood-hashing/CONTROL @@ -1,3 +1,3 @@ Source: robin-hood-hashing -Version: 3.2.13 +Version: 3.4.0 Description: Fast & memory efficient hashtable based on robin hood hashing for C++14 diff --git a/ports/robin-hood-hashing/portfile.cmake b/ports/robin-hood-hashing/portfile.cmake index 890d6f86a..d3386f01f 100644 --- a/ports/robin-hood-hashing/portfile.cmake +++ b/ports/robin-hood-hashing/portfile.cmake @@ -5,8 +5,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinus/robin-hood-hashing - REF 3.2.13 - SHA512 5c508a1f43d2ca86c89b9aac3b17493a23b8ee3c7485438afc8e5eb4e697d663588e1945001ba3ba95dd1480b3c1b846079fadec5972e5ac4462117379052433 + REF 3.4.0 + SHA512 7985d64063af7d28b9404639df48645d2d72b0bc752fde23c7e3bf431adbd8eb4ffbc439e5a8513a39eb54481ce875fb044fafc86c36046995e3193284a594dd HEAD_REF master ) -- cgit v1.2.3 From da6c72ed506b8bf5d967cc881e185178e70b9ab0 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Aug 2019 14:27:01 +0430 Subject: [sqlite-orm] Update library to 1.4 --- ports/sqlite-orm/CONTROL | 2 +- ports/sqlite-orm/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/sqlite-orm/CONTROL b/ports/sqlite-orm/CONTROL index 6382eeca0..d4693ed46 100644 --- a/ports/sqlite-orm/CONTROL +++ b/ports/sqlite-orm/CONTROL @@ -1,4 +1,4 @@ Source: sqlite-orm -Version: 1.3-1 +Version: 1.4 Build-Depends: sqlite3 Description: SQLite ORM light header only library for modern C++ diff --git a/ports/sqlite-orm/portfile.cmake b/ports/sqlite-orm/portfile.cmake index 6df00f77f..8d757bb4c 100644 --- a/ports/sqlite-orm/portfile.cmake +++ b/ports/sqlite-orm/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fnc12/sqlite_orm - REF v1.3 - SHA512 43adcd28bdca5d0165ca0313c5ff90e048144e4841541704f49e443deaf0d8e027655a3bb88677f3f3c62c5764fdda8b1e472d74e68f3a32cad052f3b4ed63a7 + REF v1.4 + SHA512 b9ff600af568c2de982467cec9ef057e7cb687dc9123e84596590d2e4e51bf41db02a2e6386ef264b832530d4d05c2c18455c8c7d85498b15a9d76601ec81e75 HEAD_REF master ) -- cgit v1.2.3 From 073e0e4306336adc99eaa096951ba37a6ac11f68 Mon Sep 17 00:00:00 2001 From: DailyShana Date: Mon, 22 Jul 2019 14:15:49 +0800 Subject: Revert "[irrlicht] use unicode path on windows (#7354)" This reverts commit 22be764ecc302d93371b8f7a05faf0fc4e39fa31. --- ports/irrlicht/CMakeLists.txt | 10 --------- ports/irrlicht/CONTROL | 2 +- ports/irrlicht/portfile.cmake | 2 -- ports/irrlicht/support-unicode-on-windows.patch | 28 ------------------------- 4 files changed, 1 insertion(+), 41 deletions(-) delete mode 100644 ports/irrlicht/support-unicode-on-windows.patch diff --git a/ports/irrlicht/CMakeLists.txt b/ports/irrlicht/CMakeLists.txt index e61a1d270..b58739836 100644 --- a/ports/irrlicht/CMakeLists.txt +++ b/ports/irrlicht/CMakeLists.txt @@ -85,13 +85,6 @@ target_link_libraries(Irrlicht PRIVATE ${BZIP2_LIBRARY} ) -target_compile_definitions(Irrlicht PRIVATE - NO_IRR_USE_NON_SYSTEM_ZLIB_ - NO_IRR_USE_NON_SYSTEM_LIB_PNG_ - NO_IRR_USE_NON_SYSTEM_JPEG_LIB_ - NO_IRR_USE_NON_SYSTEM_BZLIB_ - ) - if(IRR_BUILD_TOOLS) add_executable(FileToHeader ${IRR_TOOL_FILES_FILE_TO_HEADER}) @@ -151,9 +144,6 @@ endif() target_compile_definitions(Irrlicht PRIVATE IRRLICHT_EXPORTS) if(WIN32) - # Unicode - target_compile_definitions(Irrlicht PRIVATE UNICODE _UNICODE) - # Import the symbols of bzip2 target_compile_definitions(Irrlicht PRIVATE BZ_IMPORT) diff --git a/ports/irrlicht/CONTROL b/ports/irrlicht/CONTROL index 89c782b46..7cc3e4223 100644 --- a/ports/irrlicht/CONTROL +++ b/ports/irrlicht/CONTROL @@ -1,5 +1,5 @@ Source: irrlicht -Version: 1.8.4-2 +Version: 1.8.4-1 Description: Irrlicht lightning fast 3d engine Build-Depends: zlib, libpng, bzip2, libjpeg-turbo diff --git a/ports/irrlicht/portfile.cmake b/ports/irrlicht/portfile.cmake index 5bee54b42..f4eaf5fc8 100644 --- a/ports/irrlicht/portfile.cmake +++ b/ports/irrlicht/portfile.cmake @@ -22,8 +22,6 @@ vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} REF "1.8.4" - PATCHES - "support-unicode-on-windows.patch" # [NO_REMOVE_ONE_LEVEL] # [WORKING_DIRECTORY <${CURRENT_BUILDTREES_DIR}/src>] # [PATCHES ...] diff --git a/ports/irrlicht/support-unicode-on-windows.patch b/ports/irrlicht/support-unicode-on-windows.patch deleted file mode 100644 index 609824401..000000000 --- a/ports/irrlicht/support-unicode-on-windows.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/include/IrrCompileConfig.h b/include/IrrCompileConfig.h -index c2c5d12..7c44f0c 100644 ---- a/include/IrrCompileConfig.h -+++ b/include/IrrCompileConfig.h -@@ -233,7 +233,9 @@ you will not be able to use anything provided by the GUI Environment, including - disable this feature, the engine behave as before (ansi). This is currently only supported - for Windows based systems. You also have to set #define UNICODE for this to compile. - */ --//#define _IRR_WCHAR_FILESYSTEM -+#if defined(_IRR_WINDOWS_) && (defined(_UNICODE) || defined(UNICODE)) -+#define _IRR_WCHAR_FILESYSTEM -+#endif - #ifdef NO_IRR_WCHAR_FILESYSTEM - #undef _IRR_WCHAR_FILESYSTEM - #endif -diff --git a/include/Keycodes.h b/include/Keycodes.h -index e56eca1..57ab312 100644 ---- a/include/Keycodes.h -+++ b/include/Keycodes.h -@@ -89,7 +89,7 @@ namespace irr - KEY_KEY_X = 0x58, // X key - KEY_KEY_Y = 0x59, // Y key - KEY_KEY_Z = 0x5A, // Z key -- KEY_LWIN = 0x5B, // Left Windows key (Microsoft® Natural® keyboard) -+ KEY_LWIN = 0x5B, // Left Windows key (Microsoft® Natural® keyboard) - KEY_RWIN = 0x5C, // Right Windows key (Natural keyboard) - KEY_APPS = 0x5D, // Applications key (Natural keyboard) - KEY_SLEEP = 0x5F, // Computer Sleep key -- cgit v1.2.3 From c176532bd688ddae9895ec265c4be1e94e222cc3 Mon Sep 17 00:00:00 2001 From: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> Date: Fri, 16 Aug 2019 21:02:14 +0200 Subject: [tinkerforge] add new port (#7523) * triplet whitespace changes to change abi tags in ci and trigger full CI rebuild * [tinkerforge] add new port * Revert "triplet whitespace changes to change abi tags in ci and trigger full CI rebuild" This reverts commit 5f356794b98d5ddd303886f97fce5d8523c54566. * added uwp early failure --- ports/tinkerforge/CMakeLists.txt | 63 ++++++++++++++++++++++++++++ ports/tinkerforge/CONTROL | 3 ++ ports/tinkerforge/portfile.cmake | 36 ++++++++++++++++ ports/tinkerforge/tinkerforgeConfig.cmake.in | 5 +++ 4 files changed, 107 insertions(+) create mode 100644 ports/tinkerforge/CMakeLists.txt create mode 100644 ports/tinkerforge/CONTROL create mode 100644 ports/tinkerforge/portfile.cmake create mode 100644 ports/tinkerforge/tinkerforgeConfig.cmake.in diff --git a/ports/tinkerforge/CMakeLists.txt b/ports/tinkerforge/CMakeLists.txt new file mode 100644 index 000000000..671f7d145 --- /dev/null +++ b/ports/tinkerforge/CMakeLists.txt @@ -0,0 +1,63 @@ +cmake_minimum_required (VERSION 3.13 FATAL_ERROR) +include(GNUInstallDirs) + +if(WIN32) + set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}") +endif() + +if(NOT TARGET_INSTALL_DIR) + set(TARGET_INSTALL_DIR "share/${PROJECT_NAME}") +endif() + +if(NOT CONFIG_INSTALL_DIR) + set(CONFIG_INSTALL_DIR "share/${PROJECT_NAME}") +endif() + +if(NOT INCLUDE_INSTALL_DIR) + set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}") +endif() + +project(tinkerforge LANGUAGES C VERSION 2.1.25) + +file(GLOB CPP_FILES source/*.c) +file(GLOB H_FILES source/*.h) +file(GLOB DEF_FILE source/*.def) + +add_library(${PROJECT_NAME} ${CPP_FILES} ${H_FILES} ${DEF_FILE}) +target_include_directories(${PROJECT_NAME} PUBLIC + $ + $) +target_link_libraries(${PROJECT_NAME} PUBLIC Ws2_32) +##---------------------------------------------------------------------------------------## +##----- Package definition. +##---------------------------------------------------------------------------------------## +include(CMakePackageConfigHelpers) + +#Export as Package +set_target_properties (${PROJECT_NAME} PROPERTIES EXPORT_NAME ${PROJECT_NAME}) +export(TARGETS ${PROJECT_NAME} NAMESPACE ${PROJECT_NAME}:: FILE cmake/${PROJECT_NAME}Targets.cmake) +export(PACKAGE ${PROJECT_NAME}) + +#Config files for find_package +configure_package_config_file( + ${PROJECT_NAME}Config.cmake.in cmake/${PROJECT_NAME}Config.cmake + INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}/${PROJECT_NAME}Config.cmake" + PATH_VARS TARGET_INSTALL_DIR INCLUDE_INSTALL_DIR +) +write_basic_package_version_file(cmake/${PROJECT_NAME}ConfigVersion.cmake COMPATIBILITY SameMinorVersion) + +#Install the target and all it build outputs. +install (TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Runtime + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Development + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime + PUBLIC_HEADER DESTINATION "${INCLUDE_INSTALL_DIR}" COMPONENT Development + BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime) +#Install public headers +install(FILES ${H_FILES} DESTINATION "${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}") +#Install the config files for find_package +install(FILES "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake" + "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake" + DESTINATION "${CONFIG_INSTALL_DIR}") +#install the targets file included by the config +install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME}:: DESTINATION "${TARGET_INSTALL_DIR}") \ No newline at end of file diff --git a/ports/tinkerforge/CONTROL b/ports/tinkerforge/CONTROL new file mode 100644 index 000000000..5eb67e96b --- /dev/null +++ b/ports/tinkerforge/CONTROL @@ -0,0 +1,3 @@ +Source: tinkerforge +Version: 2.1.25 +Description: Tinkerforge C API bindings for bricks and bricklets diff --git a/ports/tinkerforge/portfile.cmake b/ports/tinkerforge/portfile.cmake new file mode 100644 index 000000000..128f72e32 --- /dev/null +++ b/ports/tinkerforge/portfile.cmake @@ -0,0 +1,36 @@ +vcpkg_fail_port_install(ON_TARGET "uwp") + +set(VERSION 2_1_25) + +vcpkg_download_distfile(ARCHIVE + URLS "http://download.tinkerforge.com/bindings/c/tinkerforge_c_bindings_${VERSION}.zip" + FILENAME "tinkerforge-${VERSION}.zip" + SHA512 c02b789bd466803d60aeb39a544b0aa17af811377b065a0b273bcfc15c5844f8cfe981d8143743e32bd05470c2c6af297df50924da0d2895a4cdf4bc9e9bd0b8 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF tinker-${VERSION} + NO_REMOVE_ONE_LEVEL +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION ${SOURCE_PATH}) +file(COPY "${CMAKE_CURRENT_LIST_DIR}/tinkerforgeConfig.cmake.in" DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share) + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share +) + +file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/tinkerforge/tinkerforgeConfig.cmake.in b/ports/tinkerforge/tinkerforgeConfig.cmake.in new file mode 100644 index 000000000..440db8a6c --- /dev/null +++ b/ports/tinkerforge/tinkerforgeConfig.cmake.in @@ -0,0 +1,5 @@ +@PACKAGE_INIT@ + +include ("@PACKAGE_TARGET_INSTALL_DIR@@PROJECT_NAME@Targets.cmake") +set_and_check(REFL_ENUM_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") +check_required_components("@PROJECT_NAME@") -- cgit v1.2.3 From 879a7fafd7018895825f5190d6cf0cf11f2e15da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kriszti=C3=A1n=20Csord=C3=A1s?= Date: Fri, 16 Aug 2019 21:40:44 +0200 Subject: Fix opengl for SFML Cmake doesn't find opengl on Ubuntu (tried 18.04, 19.04) even after installing the required system dependencies. libgl1-mesa-dev works instead of mesa-common-dev, as noted here: https://stackoverflow.com/a/47926071/6597851. --- ports/sfml/portfile.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/sfml/portfile.cmake b/ports/sfml/portfile.cmake index a4c0d89c4..2281d5ac3 100644 --- a/ports/sfml/portfile.cmake +++ b/ports/sfml/portfile.cmake @@ -16,7 +16,7 @@ file(WRITE ${SOURCE_PATH}/extlibs/libs/x "") file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/Modules/FindFreetype.cmake) if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - message("SFML currently requires the following libraries from the system package manager:\n libudev\n libx11\n libxrandr\n opengl\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libxrandr-dev libxi-dev libudev-dev mesa-common-dev") + message("SFML currently requires the following libraries from the system package manager:\n libudev\n libx11\n libxrandr\n opengl\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libxrandr-dev libxi-dev libudev-dev libgl1-mesa-dev") endif() vcpkg_configure_cmake( -- cgit v1.2.3 From a3135b7c8679a1f7142cebd2ceccfce4623c5751 Mon Sep 17 00:00:00 2001 From: Lily <47812810+wangli28@users.noreply.github.com> Date: Sat, 17 Aug 2019 04:08:35 +0800 Subject: [field3d] Add new port (#7594) * [field3d] Add new port * [field3d] Add new port --- ports/field3d/CONTROL | 5 +++++ ports/field3d/fix-build_error.patch | 13 +++++++++++++ ports/field3d/portfile.cmake | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 ports/field3d/CONTROL create mode 100644 ports/field3d/fix-build_error.patch create mode 100644 ports/field3d/portfile.cmake diff --git a/ports/field3d/CONTROL b/ports/field3d/CONTROL new file mode 100644 index 000000000..487075eb4 --- /dev/null +++ b/ports/field3d/CONTROL @@ -0,0 +1,5 @@ +Source: field3d +Version: 1.7.2 +Homepage: https://github.com/imageworks/Field3D +Description: An open source library for storing voxel data. It provides C++ classes that handle in-memory storage and a file format based on HDF5 that allows the C++ objects to be written to and read from disk. +Build-Depends: hdf5, boost-regex, boost-thread, boost-program-options, boost-system, openexr, boost-foreach, boost-test, boost-timer, boost-format diff --git a/ports/field3d/fix-build_error.patch b/ports/field3d/fix-build_error.patch new file mode 100644 index 000000000..e2f44c093 --- /dev/null +++ b/ports/field3d/fix-build_error.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e9ad44f..45f3fad 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -147,7 +147,7 @@ IF ( CMAKE_HOST_UNIX ) + ${MPI_LIBRARIES} ) + ENDIF ( MPI_FOUND ) + LIST ( APPEND Field3D_Libraries_Shared +- Iex Half IlmThread Imath ++ Iex-2_3 Half-2_3 IlmThread-2_3 Imath-2_3 + pthread dl z ) + SET ( Field3D_DSO_Libraries ${Field3D_Libraries_Shared} ) + SET ( Field3D_BIN_Libraries Field3D ${Field3D_Libraries_Shared} diff --git a/ports/field3d/portfile.cmake b/ports/field3d/portfile.cmake new file mode 100644 index 000000000..5170e97a3 --- /dev/null +++ b/ports/field3d/portfile.cmake @@ -0,0 +1,35 @@ +include(vcpkg_common_functions) + +if (VCPKG_TARGET_IS_WINDOWS) + message(FATAL_ERROR "Windows is currently not supported.") +elseif (TRIPLET_SYSTEM_ARCH MATCHES "arm") + message(FATAL_ERROR "ARM is currently not supported.") +elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) + message(FATAL_ERROR "Error: UWP builds are currently not supported.") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO imageworks/Field3D + REF v1.7.2 + SHA512 e4ea51310105980f759dce48830db8ae3592ce32a02b246214d8aed9df7a7f5c500314f2daf92196b7a76d648f2909b18112df4c5c3c8949c0676d710dfbf1f2 + HEAD_REF master + PATCHES + fix-build_error.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/field3d) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/field3d/COPYING ${CURRENT_PACKAGES_DIR}/share/field3d/copyright) -- cgit v1.2.3 From 7a17abd59d7da7e5d648156191d8cae61ab318c8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 17 Aug 2019 01:08:53 +0430 Subject: [cgltf] Update library to 1.2 --- ports/cgltf/CONTROL | 2 +- ports/cgltf/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/cgltf/CONTROL b/ports/cgltf/CONTROL index 4967e5715..948fde883 100644 --- a/ports/cgltf/CONTROL +++ b/ports/cgltf/CONTROL @@ -1,3 +1,3 @@ Source: cgltf -Version: 2019-04-30 +Version: 1.2 Description: Single-file glTF 2.0 parser written in C99 diff --git a/ports/cgltf/portfile.cmake b/ports/cgltf/portfile.cmake index 2d1569196..75b5ce191 100644 --- a/ports/cgltf/portfile.cmake +++ b/ports/cgltf/portfile.cmake @@ -5,8 +5,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jkuhlmann/cgltf - REF 093ef81bf63ec18ba6d9f61073da8881fb7619b3 - SHA512 8801c13ee98780e845c7d28b27d523af86ab2a49499bbb235ee67a91dfacda3c7fddc9503d91918001a432267f890e82c2204a9c1462c64467034d334b0eadf2 + REF v1.2 + SHA512 3a678023ffd25416a1454da5e67bdf303d08dcd5a46e19a912dc2dfc549a6cd5800024649757c19653f9b2763fc6342d8dd398e940b2df6c3e1b222a4fd2e0e1 HEAD_REF master ) -- cgit v1.2.3 From de3d6b5c26d2e8274297e101ba23a45fea35512a Mon Sep 17 00:00:00 2001 From: NiHoel Date: Sat, 17 Aug 2019 02:16:18 +0200 Subject: Fix building feature opencv halide (#7581) * Add feature halide to OpenCV. * Add dependency of opencv[halide] to opencv[dnn]. * Fix building opencv[halide]. * Only require opencv[dnn] not default features. * Migration to opencv4 port. * [opencv] Normalize line endings in CONTROL file * [opencv] Normalize line endings in CONTROL file --- ports/opencv3/CONTROL | 2 +- ports/opencv3/portfile.cmake | 1 + ports/opencv4/CONTROL | 2 +- ports/opencv4/portfile.cmake | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ports/opencv3/CONTROL b/ports/opencv3/CONTROL index 5f65d9e43..f70d1d387 100644 --- a/ports/opencv3/CONTROL +++ b/ports/opencv3/CONTROL @@ -83,7 +83,7 @@ Build-Depends: eigen3 Description: Eigen support for opencv Feature: halide -Build-Depends: halide, opencv3[dnn] +Build-Depends: halide, opencv3[core], opencv3[dnn] Description: Halide support for opencv Feature: world diff --git a/ports/opencv3/portfile.cmake b/ports/opencv3/portfile.cmake index 12c4dadae..e4745d336 100644 --- a/ports/opencv3/portfile.cmake +++ b/ports/opencv3/portfile.cmake @@ -316,6 +316,7 @@ vcpkg_configure_cmake( -DWITH_FFMPEG=${WITH_FFMPEG} -DWITH_GDCM=${WITH_GDCM} -DWITH_HALIDE=${WITH_HALIDE} + -DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR} -DWITH_IPP=${WITH_IPP} -DWITH_JASPER=${WITH_JASPER} -DWITH_JPEG=${WITH_JPEG} diff --git a/ports/opencv4/CONTROL b/ports/opencv4/CONTROL index ca52577c7..e16540656 100644 --- a/ports/opencv4/CONTROL +++ b/ports/opencv4/CONTROL @@ -89,7 +89,7 @@ Build-Depends: libwebp Description: WebP support for opencv Feature: halide -Build-Depends: halide, opencv4[dnn] +Build-Depends: halide, opencv4[core], opencv4[dnn] Description: Halide support for opencv Feature: world diff --git a/ports/opencv4/portfile.cmake b/ports/opencv4/portfile.cmake index efafab614..ed0b9f1e2 100644 --- a/ports/opencv4/portfile.cmake +++ b/ports/opencv4/portfile.cmake @@ -305,6 +305,7 @@ vcpkg_configure_cmake( ###### customized properties ## Options from vcpkg_check_features() ${FEATURE_OPTIONS} + -DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR} -DWITH_IPP=${WITH_IPP} -DWITH_MSMF=${WITH_MSMF} -DWITH_PROTOBUF=ON -- cgit v1.2.3 From 5d1751dfda36199ae307825e38c80c3dc283b075 Mon Sep 17 00:00:00 2001 From: Lily <47812810+wangli28@users.noreply.github.com> Date: Sat, 17 Aug 2019 08:22:04 +0800 Subject: [open62541, duktape] Update hash for pip. (#7548) * [open62541, duktape] Update hash for pip. * [duktape] Fix build error on Linux * [open62541, duktape] Update download linkage for pip. * [open62541] Resolve conflict * [open62541] Resolve conflict * [open62541] Remove homepage --- ports/duktape/CMakeLists.txt | 2 ++ ports/duktape/CONTROL | 2 +- ports/duktape/portfile.cmake | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ports/duktape/CMakeLists.txt b/ports/duktape/CMakeLists.txt index 3a9c869de..3986c4df1 100644 --- a/ports/duktape/CMakeLists.txt +++ b/ports/duktape/CMakeLists.txt @@ -1,3 +1,5 @@ +cmake_minimum_required(VERSION 3.14) + project (duktape) file(GLOB_RECURSE DUKTAPE_SOURCES "src/*.c") diff --git a/ports/duktape/CONTROL b/ports/duktape/CONTROL index 08c822fad..769e3bc82 100644 --- a/ports/duktape/CONTROL +++ b/ports/duktape/CONTROL @@ -1,5 +1,5 @@ Source: duktape -Version: 2.3.0-2 +Version: 2.3.0-3 Homepage: https://github.com/svaarala/duktape Description: Embeddable Javascript engine with a focus on portability and compact footprint. Build-Depends: diff --git a/ports/duktape/portfile.cmake b/ports/duktape/portfile.cmake index fe2c9a494..5c855027f 100644 --- a/ports/duktape/portfile.cmake +++ b/ports/duktape/portfile.cmake @@ -28,9 +28,9 @@ vcpkg_add_to_path("${PYTHON2_DIR}") if(NOT EXISTS ${PYTHON2_DIR}/easy_install${EXECUTABLE_SUFFIX}) if(NOT EXISTS ${PYTHON2_DIR}/Scripts/pip${EXECUTABLE_SUFFIX}) vcpkg_download_distfile(GET_PIP - URLS "https://bootstrap.pypa.io/get-pip.py" + URLS "https://bootstrap.pypa.io/3.3/get-pip.py" FILENAME "tools/python/python2/get-pip.py" - SHA512 99520d223819708b8f6e4b839d1fa215e4e8adc7fcd0db6c25a0399cf2fa10034b35673cf450609303646d12497f301ef53b7e7cc65c78e7bce4af0c673555ad + SHA512 92e68525830bb23955a31cb19ebc3021ef16b6337eab83d5db2961b791283d2867207545faf83635f6027f2f7b7f8fee2c85f2cfd8e8267df25406474571c741 ) execute_process(COMMAND ${PYTHON2_DIR}/python${EXECUTABLE_SUFFIX} ${PYTHON2_DIR}/get-pip.py) endif() -- cgit v1.2.3 From 300e21d59ebfe42e118cf4e97887f0680fbcfa2f Mon Sep 17 00:00:00 2001 From: Nicole Mazzuca Date: Fri, 9 Aug 2019 11:16:35 -0700 Subject: [vcpkg] Major tool CMakeLists.txt updates - Add the "VCPKG_DEVELOPMENT_WARNINGS" flag - setting "WERROR" will also set this flag - This flag is set by default - on GCC/clang, this will pass '-Wall -Wextra -Wpedantic -Werror' - on GCC, this will additionally pass '-Wmissing-declarations' - on clang, this will additionally pass '-Wmissing-prototypes' - on MSVC, this will pass '-W4 -WX' - On Visual Studio 2017 and later, pass '-permissive-' - Change the source for fallout of these changes - add `format` subcommand - formats all C++ source and header files using clang-format - move `include/vcpkg-test/catch.h` to `include/catch2/catch.hpp` - pass CONFIGURE_DEPENDS to file(GLOB) --- scripts/bootstrap.sh | 2 +- toolsrc/CMakeLists.txt | 91 +- toolsrc/include/catch2/catch.hpp | 16865 ++++++++++++++++++++++++++ toolsrc/include/vcpkg-test/catch.h | 16865 -------------------------- toolsrc/include/vcpkg-test/util.h | 2 +- toolsrc/include/vcpkg/base/chrono.h | 2 +- toolsrc/include/vcpkg/base/graphs.h | 2 +- toolsrc/include/vcpkg/base/util.h | 5 +- toolsrc/src/vcpkg-test/arguments.cpp | 2 +- toolsrc/src/vcpkg-test/catch.cpp | 2 +- toolsrc/src/vcpkg-test/chrono.cpp | 2 +- toolsrc/src/vcpkg-test/dependencies.cpp | 2 +- toolsrc/src/vcpkg-test/files.cpp | 4 +- toolsrc/src/vcpkg-test/paragraph.cpp | 2 +- toolsrc/src/vcpkg-test/plan.cpp | 2 +- toolsrc/src/vcpkg-test/specifier.cpp | 4 +- toolsrc/src/vcpkg-test/statusparagraphs.cpp | 2 +- toolsrc/src/vcpkg-test/strings.cpp | 2 +- toolsrc/src/vcpkg-test/supports.cpp | 2 +- toolsrc/src/vcpkg-test/update.cpp | 2 +- toolsrc/src/vcpkg-test/util.cpp | 7 +- toolsrc/src/vcpkg.cpp | 4 +- toolsrc/src/vcpkg/base/hash.cpp | 2 + toolsrc/src/vcpkg/base/system.cpp | 8 +- toolsrc/src/vcpkg/base/system.print.cpp | 4 + toolsrc/src/vcpkg/build.cpp | 6 +- toolsrc/src/vcpkg/commands.autocomplete.cpp | 4 +- toolsrc/src/vcpkg/commands.dependinfo.cpp | 331 +- toolsrc/src/vcpkg/commands.edit.cpp | 4 +- toolsrc/src/vcpkg/commands.exportifw.cpp | 564 +- toolsrc/src/vcpkg/commands.xvsinstances.cpp | 1 + toolsrc/src/vcpkg/dependencies.cpp | 77 +- toolsrc/src/vcpkg/export.cpp | 9 + toolsrc/src/vcpkg/install.cpp | 2 +- toolsrc/src/vcpkg/logicexpression.cpp | 28 +- toolsrc/src/vcpkg/metrics.cpp | 4 +- toolsrc/src/vcpkg/paragraphs.cpp | 2 +- toolsrc/src/vcpkg/postbuildlint.cpp | 4 +- toolsrc/src/vcpkg/statusparagraphs.cpp | 5 +- toolsrc/src/vcpkg/tools.cpp | 6 + toolsrc/src/vcpkg/vcpkgpaths.cpp | 4 +- toolsrc/src/vcpkg/versiont.cpp | 1 - 42 files changed, 17500 insertions(+), 17439 deletions(-) create mode 100644 toolsrc/include/catch2/catch.hpp delete mode 100644 toolsrc/include/vcpkg-test/catch.h diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 09d77b07d..afdd9c1b3 100644 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -249,7 +249,7 @@ buildDir="$vcpkgRootDir/toolsrc/build.rel" rm -rf "$buildDir" mkdir -p "$buildDir" -(cd "$buildDir" && CXX=$CXX "$cmakeExe" .. -DCMAKE_BUILD_TYPE=Release -G "Ninja" "-DCMAKE_MAKE_PROGRAM=$ninjaExe" "-DBUILD_TESTING=OFF" "-DDEFINE_DISABLE_METRICS=$vcpkgDisableMetrics" "-DVCPKG_ALLOW_APPLE_CLANG=$vcpkgAllowAppleClang") || exit 1 +(cd "$buildDir" && CXX=$CXX "$cmakeExe" .. -DCMAKE_BUILD_TYPE=Release -G "Ninja" "-DCMAKE_MAKE_PROGRAM=$ninjaExe" "-DBUILD_TESTING=OFF" "-DVCPKG_DEVELOPMENT_WARNINGS=Off" "-DDEFINE_DISABLE_METRICS=$vcpkgDisableMetrics" "-DVCPKG_ALLOW_APPLE_CLANG=$vcpkgAllowAppleClang") || exit 1 (cd "$buildDir" && "$cmakeExe" --build .) || exit 1 rm -rf "$vcpkgRootDir/vcpkg" diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt index 7245179f2..3ae7cdae5 100644 --- a/toolsrc/CMakeLists.txt +++ b/toolsrc/CMakeLists.txt @@ -2,10 +2,17 @@ cmake_minimum_required(VERSION 3.14) project(vcpkg C CXX) -OPTION(BUILD_TESTING "Option for enabling testing" ON) -OPTION(VCPKG_BUILD_BENCHMARKING "Option for enabling benchmarking" OFF) OPTION(DEFINE_DISABLE_METRICS "Option for disabling metrics" OFF) OPTION(VCPKG_ALLOW_APPLE_CLANG "Option for allowing apple clang" OFF) +OPTION(VCPKG_DEVELOPMENT_WARNINGS "Option for turning on all warnings, and making them errors" ON) +OPTION(BUILD_TESTING "Option for enabling testing" ON) +OPTION(VCPKG_BUILD_BENCHMARKING "Option for enabling benchmarking" OFF) + +# for backwards compatibility with existing code +if (WERROR) + set(VCPKG_DEVELOPMENT_WARNINGS On) +endif() + if (DEFINE_DISABLE_METRICS) set(DISABLE_METRICS_VALUE "1") @@ -27,33 +34,10 @@ If you would like to try anyway, pass --allowAppleClang to bootstrap.sh.") endif() elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang") set(CLANG 1) -elseif(MSVC) - add_compile_options(/FC) -else() +elseif(NOT MSVC) message(FATAL_ERROR "Unknown compiler: ${CMAKE_CXX_COMPILER_ID}") endif() -if(GCC OR (CLANG AND NOT MSVC)) - if(WERROR) - add_compile_options(-Wall -Wno-unknown-pragmas -Werror) - endif() -endif() - -if (DEFINE_DISABLE_METRICS) - set(DISABLE_METRICS_VALUE "1") -else() - set(DISABLE_METRICS_VALUE "0") -endif() - -file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp) - -add_library(vcpkglib OBJECT ${VCPKGLIB_SOURCES}) -add_executable(vcpkg src/vcpkg.cpp $) - -target_compile_features(vcpkg PRIVATE cxx_std_17) -target_compile_definitions(vcpkg PRIVATE -DDISABLE_METRICS=${DISABLE_METRICS_VALUE}) -target_include_directories(vcpkg PRIVATE include) - set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) @@ -61,7 +45,7 @@ add_definitions(-DDISABLE_METRICS=${DISABLE_METRICS_VALUE}) include_directories(include) link_libraries(Threads::Threads) -if(CLANG) +if(CLANG AND NOT MSVC) include(CheckCXXSourceCompiles) check_cxx_source_compiles("#include int main() { return __GLIBCXX__; }" USES_LIBSTDCXX) @@ -73,31 +57,70 @@ if(CLANG) endif() if(GCC OR (CLANG AND USES_LIBSTDCXX)) - target_link_libraries(vcpkg PRIVATE stdc++fs) + link_libraries(stdc++fs) elseif(CLANG AND NOT MSVC) - target_link_libraries(vcpkg PRIVATE c++fs) + link_libraries(c++fs) endif() -if(GCC OR CLANG) +if(MSVC) + # either MSVC, or clang-cl + add_compile_options(-FC) + + if (MSVC_VERSION GREATER 1900) + # Visual Studio 2017 or later + add_compile_options(-std:c++17 -permissive-) + else() + # Visual Studio 2015 + add_compile_options(-std:c++latest) + endif() + + if(VCPKG_DEVELOPMENT_WARNINGS) + string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + add_compile_options(-W4 -WX) + + if (CLANG) + add_compile_options(-Wmissing-prototypes -Wno-missing-field-initializers) + endif() + endif() +elseif(GCC OR CLANG) add_compile_options(-std=c++1z) - if(WERROR) - add_compile_options(-Wall -Wno-unknown-pragmas -Werror) + + if(VCPKG_DEVELOPMENT_WARNINGS) + add_compile_options(-Wall -Wextra -Wpedantic -Wno-unknown-pragmas -Wno-missing-field-initializers -Werror) + + # GCC and clang have different names for the same warning + if (GCC) + add_compile_options(-Wmissing-declarations) + elseif(CLANG) + add_compile_options(-Wmissing-prototypes) + endif() endif() endif() +file(GLOB_RECURSE VCPKGLIB_SOURCES CONFIGURE_DEPENDS src/vcpkg/*.cpp) + +add_library(vcpkglib OBJECT ${VCPKGLIB_SOURCES}) +add_executable(vcpkg src/vcpkg.cpp $) + if (BUILD_TESTING) - file(GLOB_RECURSE VCPKGTEST_SOURCES src/vcpkg-test/*.cpp) + file(GLOB_RECURSE VCPKGTEST_SOURCES CONFIGURE_DEPENDS src/vcpkg-test/*.cpp) enable_testing() add_executable(vcpkg-test ${VCPKGTEST_SOURCES} $) - add_test(NAME default COMMAND vcpkg-test [${TEST_NAME}]) + add_test(NAME default COMMAND vcpkg-test) if (VCPKG_BUILD_BENCHMARKING) target_compile_options(vcpkg-test PRIVATE -DCATCH_CONFIG_ENABLE_BENCHMARKING) endif() + + find_program(CLANG_FORMAT clang-format) + if (CLANG_FORMAT) + file(GLOB_RECURSE VCPKG_FORMAT_SOURCES CONFIGURE_DEPENDS src/*.cpp include/pch.h include/vcpkg/*.h include/vcpkg-test/*.h) + add_custom_target(format COMMAND ${CLANG_FORMAT} -i -verbose ${VCPKG_FORMAT_SOURCES}) + endif() endif() if(MSVC) diff --git a/toolsrc/include/catch2/catch.hpp b/toolsrc/include/catch2/catch.hpp new file mode 100644 index 000000000..303f664ff --- /dev/null +++ b/toolsrc/include/catch2/catch.hpp @@ -0,0 +1,16865 @@ +/* + * Catch v2.9.1 + * Generated: 2019-06-17 11:59:24.363643 + * ---------------------------------------------------------- + * This file has been merged from multiple headers. Please don't edit it directly + * Copyright (c) 2019 Two Blue Cubes Ltd. All rights reserved. + * + * Distributed under the Boost Software License, Version 1.0. (See accompanying + * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED +#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED +// start catch.hpp + + +#define CATCH_VERSION_MAJOR 2 +#define CATCH_VERSION_MINOR 9 +#define CATCH_VERSION_PATCH 1 + +#ifdef __clang__ +# pragma clang system_header +#elif defined __GNUC__ +# pragma GCC system_header +#endif + +// start catch_suppress_warnings.h + +#ifdef __clang__ +# ifdef __ICC // icpc defines the __clang__ macro +# pragma warning(push) +# pragma warning(disable: 161 1682) +# else // __ICC +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wpadded" +# pragma clang diagnostic ignored "-Wswitch-enum" +# pragma clang diagnostic ignored "-Wcovered-switch-default" +# endif +#elif defined __GNUC__ + // Because REQUIREs trigger GCC's -Wparentheses, and because still + // supported version of g++ have only buggy support for _Pragmas, + // Wparentheses have to be suppressed globally. +# pragma GCC diagnostic ignored "-Wparentheses" // See #674 for details + +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wunused-variable" +# pragma GCC diagnostic ignored "-Wpadded" +#endif +// end catch_suppress_warnings.h +#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER) +# define CATCH_IMPL +# define CATCH_CONFIG_ALL_PARTS +#endif + +// In the impl file, we want to have access to all parts of the headers +// Can also be used to sanely support PCHs +#if defined(CATCH_CONFIG_ALL_PARTS) +# define CATCH_CONFIG_EXTERNAL_INTERFACES +# if defined(CATCH_CONFIG_DISABLE_MATCHERS) +# undef CATCH_CONFIG_DISABLE_MATCHERS +# endif +# if !defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER) +# define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER +# endif +#endif + +#if !defined(CATCH_CONFIG_IMPL_ONLY) +// start catch_platform.h + +#ifdef __APPLE__ +# include +# if TARGET_OS_OSX == 1 +# define CATCH_PLATFORM_MAC +# elif TARGET_OS_IPHONE == 1 +# define CATCH_PLATFORM_IPHONE +# endif + +#elif defined(linux) || defined(__linux) || defined(__linux__) +# define CATCH_PLATFORM_LINUX + +#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__) +# define CATCH_PLATFORM_WINDOWS +#endif + +// end catch_platform.h + +#ifdef CATCH_IMPL +# ifndef CLARA_CONFIG_MAIN +# define CLARA_CONFIG_MAIN_NOT_DEFINED +# define CLARA_CONFIG_MAIN +# endif +#endif + +// start catch_user_interfaces.h + +namespace Catch { + unsigned int rngSeed(); +} + +// end catch_user_interfaces.h +// start catch_tag_alias_autoregistrar.h + +// start catch_common.h + +// start catch_compiler_capabilities.h + +// Detect a number of compiler features - by compiler +// The following features are defined: +// +// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported? +// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported? +// CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported? +// CATCH_CONFIG_DISABLE_EXCEPTIONS : Are exceptions enabled? +// **************** +// Note to maintainers: if new toggles are added please document them +// in configuration.md, too +// **************** + +// In general each macro has a _NO_ form +// (e.g. CATCH_CONFIG_NO_POSIX_SIGNALS) which disables the feature. +// Many features, at point of detection, define an _INTERNAL_ macro, so they +// can be combined, en-mass, with the _NO_ forms later. + +#ifdef __cplusplus + +# if (__cplusplus >= 201402L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) +# define CATCH_CPP14_OR_GREATER +# endif + +# if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) +# define CATCH_CPP17_OR_GREATER +# endif + +#endif + +#if defined(CATCH_CPP17_OR_GREATER) +# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS +#endif + +#ifdef __clang__ + +# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + _Pragma( "clang diagnostic push" ) \ + _Pragma( "clang diagnostic ignored \"-Wexit-time-destructors\"" ) \ + _Pragma( "clang diagnostic ignored \"-Wglobal-constructors\"") +# define CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS \ + _Pragma( "clang diagnostic pop" ) + +# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ + _Pragma( "clang diagnostic push" ) \ + _Pragma( "clang diagnostic ignored \"-Wparentheses\"" ) +# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS \ + _Pragma( "clang diagnostic pop" ) + +# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \ + _Pragma( "clang diagnostic push" ) \ + _Pragma( "clang diagnostic ignored \"-Wunused-variable\"" ) +# define CATCH_INTERNAL_UNSUPPRESS_UNUSED_WARNINGS \ + _Pragma( "clang diagnostic pop" ) + +# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \ + _Pragma( "clang diagnostic push" ) \ + _Pragma( "clang diagnostic ignored \"-Wgnu-zero-variadic-macro-arguments\"" ) +# define CATCH_INTERNAL_UNSUPPRESS_ZERO_VARIADIC_WARNINGS \ + _Pragma( "clang diagnostic pop" ) + +#endif // __clang__ + +//////////////////////////////////////////////////////////////////////////////// +// Assume that non-Windows platforms support posix signals by default +#if !defined(CATCH_PLATFORM_WINDOWS) + #define CATCH_INTERNAL_CONFIG_POSIX_SIGNALS +#endif + +//////////////////////////////////////////////////////////////////////////////// +// We know some environments not to support full POSIX signals +#if defined(__CYGWIN__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(__DJGPP__) + #define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS +#endif + +#ifdef __OS400__ +# define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS +# define CATCH_CONFIG_COLOUR_NONE +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Android somehow still does not support std::to_string +#if defined(__ANDROID__) +# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Not all Windows environments support SEH properly +#if defined(__MINGW32__) +# define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH +#endif + +//////////////////////////////////////////////////////////////////////////////// +// PS4 +#if defined(__ORBIS__) +# define CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Cygwin +#ifdef __CYGWIN__ + +// Required for some versions of Cygwin to declare gettimeofday +// see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin +# define _BSD_SOURCE +// some versions of cygwin (most) do not support std::to_string. Use the libstd check. +// https://gcc.gnu.org/onlinedocs/gcc-4.8.2/libstdc++/api/a01053_source.html line 2812-2813 +# if !((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \ + && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)) + +# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING + +# endif +#endif // __CYGWIN__ + +//////////////////////////////////////////////////////////////////////////////// +// Visual C++ +#ifdef _MSC_VER + +# if _MSC_VER >= 1900 // Visual Studio 2015 or newer +# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS +# endif + +// Universal Windows platform does not support SEH +// Or console colours (or console at all...) +# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) +# define CATCH_CONFIG_COLOUR_NONE +# else +# define CATCH_INTERNAL_CONFIG_WINDOWS_SEH +# endif + +// MSVC traditional preprocessor needs some workaround for __VA_ARGS__ +// _MSVC_TRADITIONAL == 0 means new conformant preprocessor +// _MSVC_TRADITIONAL == 1 means old traditional non-conformant preprocessor +# if !defined(_MSVC_TRADITIONAL) || (defined(_MSVC_TRADITIONAL) && _MSVC_TRADITIONAL) +# define CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +# endif +#endif // _MSC_VER + +#if defined(_REENTRANT) || defined(_MSC_VER) +// Enable async processing, as -pthread is specified or no additional linking is required +# define CATCH_INTERNAL_CONFIG_USE_ASYNC +#endif // _MSC_VER + +//////////////////////////////////////////////////////////////////////////////// +// Check if we are compiled with -fno-exceptions or equivalent +#if defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND) +# define CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED +#endif + +//////////////////////////////////////////////////////////////////////////////// +// DJGPP +#ifdef __DJGPP__ +# define CATCH_INTERNAL_CONFIG_NO_WCHAR +#endif // __DJGPP__ + +//////////////////////////////////////////////////////////////////////////////// +// Embarcadero C++Build +#if defined(__BORLANDC__) + #define CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN +#endif + +//////////////////////////////////////////////////////////////////////////////// + +// Use of __COUNTER__ is suppressed during code analysis in +// CLion/AppCode 2017.2.x and former, because __COUNTER__ is not properly +// handled by it. +// Otherwise all supported compilers support COUNTER macro, +// but user still might want to turn it off +#if ( !defined(__JETBRAINS_IDE__) || __JETBRAINS_IDE__ >= 20170300L ) + #define CATCH_INTERNAL_CONFIG_COUNTER +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Check if string_view is available and usable +// The check is split apart to work around v140 (VS2015) preprocessor issue... +#if defined(__has_include) +#if __has_include() && defined(CATCH_CPP17_OR_GREATER) +# define CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW +#endif +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Check if optional is available and usable +#if defined(__has_include) +# if __has_include() && defined(CATCH_CPP17_OR_GREATER) +# define CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL +# endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) +#endif // __has_include + +//////////////////////////////////////////////////////////////////////////////// +// Check if variant is available and usable +#if defined(__has_include) +# if __has_include() && defined(CATCH_CPP17_OR_GREATER) +# if defined(__clang__) && (__clang_major__ < 8) + // work around clang bug with libstdc++ https://bugs.llvm.org/show_bug.cgi?id=31852 + // fix should be in clang 8, workaround in libstdc++ 8.2 +# include +# if defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) +# define CATCH_CONFIG_NO_CPP17_VARIANT +# else +# define CATCH_INTERNAL_CONFIG_CPP17_VARIANT +# endif // defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) +# else +# define CATCH_INTERNAL_CONFIG_CPP17_VARIANT +# endif // defined(__clang__) && (__clang_major__ < 8) +# endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) +#endif // __has_include + +#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) +# define CATCH_CONFIG_COUNTER +#endif +#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) && !defined(CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH) +# define CATCH_CONFIG_WINDOWS_SEH +#endif +// This is set by default, because we assume that unix compilers are posix-signal-compatible by default. +#if defined(CATCH_INTERNAL_CONFIG_POSIX_SIGNALS) && !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS) +# define CATCH_CONFIG_POSIX_SIGNALS +#endif +// This is set by default, because we assume that compilers with no wchar_t support are just rare exceptions. +#if !defined(CATCH_INTERNAL_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_WCHAR) +# define CATCH_CONFIG_WCHAR +#endif + +#if !defined(CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_CPP11_TO_STRING) +# define CATCH_CONFIG_CPP11_TO_STRING +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_NO_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_CPP17_OPTIONAL) +# define CATCH_CONFIG_CPP17_OPTIONAL +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) +# define CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_NO_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_CPP17_STRING_VIEW) +# define CATCH_CONFIG_CPP17_STRING_VIEW +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_VARIANT) && !defined(CATCH_CONFIG_NO_CPP17_VARIANT) && !defined(CATCH_CONFIG_CPP17_VARIANT) +# define CATCH_CONFIG_CPP17_VARIANT +#endif + +#if defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT) +# define CATCH_INTERNAL_CONFIG_NEW_CAPTURE +#endif + +#if defined(CATCH_INTERNAL_CONFIG_NEW_CAPTURE) && !defined(CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NEW_CAPTURE) +# define CATCH_CONFIG_NEW_CAPTURE +#endif + +#if !defined(CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED) && !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) +# define CATCH_CONFIG_DISABLE_EXCEPTIONS +#endif + +#if defined(CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_NO_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_POLYFILL_ISNAN) +# define CATCH_CONFIG_POLYFILL_ISNAN +#endif + +#if defined(CATCH_INTERNAL_CONFIG_USE_ASYNC) && !defined(CATCH_CONFIG_NO_USE_ASYNC) && !defined(CATCH_CONFIG_USE_ASYNC) +# define CATCH_CONFIG_USE_ASYNC +#endif + +#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS +# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS +# define CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS +# define CATCH_INTERNAL_UNSUPPRESS_UNUSED_WARNINGS +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS +# define CATCH_INTERNAL_UNSUPPRESS_ZERO_VARIADIC_WARNINGS +#endif + +#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) +#define CATCH_TRY if ((true)) +#define CATCH_CATCH_ALL if ((false)) +#define CATCH_CATCH_ANON(type) if ((false)) +#else +#define CATCH_TRY try +#define CATCH_CATCH_ALL catch (...) +#define CATCH_CATCH_ANON(type) catch (type) +#endif + +#if defined(CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_NO_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) +#define CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#endif + +// end catch_compiler_capabilities.h +#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line +#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) +#ifdef CATCH_CONFIG_COUNTER +# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) +#else +# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) +#endif + +#include +#include +#include + +// We need a dummy global operator<< so we can bring it into Catch namespace later +struct Catch_global_namespace_dummy {}; +std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); + +namespace Catch { + + struct CaseSensitive { enum Choice { + Yes, + No + }; }; + + class NonCopyable { + NonCopyable( NonCopyable const& ) = delete; + NonCopyable( NonCopyable && ) = delete; + NonCopyable& operator = ( NonCopyable const& ) = delete; + NonCopyable& operator = ( NonCopyable && ) = delete; + + protected: + NonCopyable(); + virtual ~NonCopyable(); + }; + + struct SourceLineInfo { + + SourceLineInfo() = delete; + SourceLineInfo( char const* _file, std::size_t _line ) noexcept + : file( _file ), + line( _line ) + {} + + SourceLineInfo( SourceLineInfo const& other ) = default; + SourceLineInfo& operator = ( SourceLineInfo const& ) = default; + SourceLineInfo( SourceLineInfo&& ) noexcept = default; + SourceLineInfo& operator = ( SourceLineInfo&& ) noexcept = default; + + bool empty() const noexcept; + bool operator == ( SourceLineInfo const& other ) const noexcept; + bool operator < ( SourceLineInfo const& other ) const noexcept; + + char const* file; + std::size_t line; + }; + + std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); + + // Bring in operator<< from global namespace into Catch namespace + // This is necessary because the overload of operator<< above makes + // lookup stop at namespace Catch + using ::operator<<; + + // Use this in variadic streaming macros to allow + // >> +StreamEndStop + // as well as + // >> stuff +StreamEndStop + struct StreamEndStop { + std::string operator+() const; + }; + template + T const& operator + ( T const& value, StreamEndStop ) { + return value; + } +} + +#define CATCH_INTERNAL_LINEINFO \ + ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) ) + +// end catch_common.h +namespace Catch { + + struct RegistrarForTagAliases { + RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); + }; + +} // end namespace Catch + +#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \ + CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS + +// end catch_tag_alias_autoregistrar.h +// start catch_test_registry.h + +// start catch_interfaces_testcase.h + +#include + +namespace Catch { + + class TestSpec; + + struct ITestInvoker { + virtual void invoke () const = 0; + virtual ~ITestInvoker(); + }; + + class TestCase; + struct IConfig; + + struct ITestCaseRegistry { + virtual ~ITestCaseRegistry(); + virtual std::vector const& getAllTests() const = 0; + virtual std::vector const& getAllTestsSorted( IConfig const& config ) const = 0; + }; + + bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ); + std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ); + std::vector const& getAllTestCasesSorted( IConfig const& config ); + +} + +// end catch_interfaces_testcase.h +// start catch_stringref.h + +#include +#include +#include + +namespace Catch { + + /// A non-owning string class (similar to the forthcoming std::string_view) + /// Note that, because a StringRef may be a substring of another string, + /// it may not be null terminated. c_str() must return a null terminated + /// string, however, and so the StringRef will internally take ownership + /// (taking a copy), if necessary. In theory this ownership is not externally + /// visible - but it does mean (substring) StringRefs should not be shared between + /// threads. + class StringRef { + public: + using size_type = std::size_t; + + private: + friend struct StringRefTestAccess; + + char const* m_start; + size_type m_size; + + char* m_data = nullptr; + + void takeOwnership(); + + static constexpr char const* const s_empty = ""; + + public: // construction/ assignment + StringRef() noexcept + : StringRef( s_empty, 0 ) + {} + + StringRef( StringRef const& other ) noexcept + : m_start( other.m_start ), + m_size( other.m_size ) + {} + + StringRef( StringRef&& other ) noexcept + : m_start( other.m_start ), + m_size( other.m_size ), + m_data( other.m_data ) + { + other.m_data = nullptr; + } + + StringRef( char const* rawChars ) noexcept; + + StringRef( char const* rawChars, size_type size ) noexcept + : m_start( rawChars ), + m_size( size ) + {} + + StringRef( std::string const& stdString ) noexcept + : m_start( stdString.c_str() ), + m_size( stdString.size() ) + {} + + ~StringRef() noexcept { + delete[] m_data; + } + + auto operator = ( StringRef const &other ) noexcept -> StringRef& { + delete[] m_data; + m_data = nullptr; + m_start = other.m_start; + m_size = other.m_size; + return *this; + } + + operator std::string() const; + + void swap( StringRef& other ) noexcept; + + public: // operators + auto operator == ( StringRef const& other ) const noexcept -> bool; + auto operator != ( StringRef const& other ) const noexcept -> bool; + + auto operator[] ( size_type index ) const noexcept -> char; + + public: // named queries + auto empty() const noexcept -> bool { + return m_size == 0; + } + auto size() const noexcept -> size_type { + return m_size; + } + + auto numberOfCharacters() const noexcept -> size_type; + auto c_str() const -> char const*; + + public: // substrings and searches + auto substr( size_type start, size_type size ) const noexcept -> StringRef; + + // Returns the current start pointer. + // Note that the pointer can change when if the StringRef is a substring + auto currentData() const noexcept -> char const*; + + private: // ownership queries - may not be consistent between calls + auto isOwned() const noexcept -> bool; + auto isSubstring() const noexcept -> bool; + }; + + auto operator + ( StringRef const& lhs, StringRef const& rhs ) -> std::string; + auto operator + ( StringRef const& lhs, char const* rhs ) -> std::string; + auto operator + ( char const* lhs, StringRef const& rhs ) -> std::string; + + auto operator += ( std::string& lhs, StringRef const& sr ) -> std::string&; + auto operator << ( std::ostream& os, StringRef const& sr ) -> std::ostream&; + + inline auto operator "" _sr( char const* rawChars, std::size_t size ) noexcept -> StringRef { + return StringRef( rawChars, size ); + } + +} // namespace Catch + +inline auto operator "" _catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef { + return Catch::StringRef( rawChars, size ); +} + +// end catch_stringref.h +// start catch_type_traits.hpp + + +#include + +namespace Catch{ + +#ifdef CATCH_CPP17_OR_GREATER + template + inline constexpr auto is_unique = std::true_type{}; + + template + inline constexpr auto is_unique = std::bool_constant< + (!std::is_same_v && ...) && is_unique + >{}; +#else + +template +struct is_unique : std::true_type{}; + +template +struct is_unique : std::integral_constant +::value + && is_unique::value + && is_unique::value +>{}; + +#endif +} + +// end catch_type_traits.hpp +// start catch_preprocessor.hpp + + +#define CATCH_RECURSION_LEVEL0(...) __VA_ARGS__ +#define CATCH_RECURSION_LEVEL1(...) CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL2(...) CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL3(...) CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL4(...) CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL5(...) CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(__VA_ARGS__))) + +#ifdef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_EXPAND_VARGS(...) __VA_ARGS__ +// MSVC needs more evaluations +#define CATCH_RECURSION_LEVEL6(...) CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(__VA_ARGS__))) +#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL6(CATCH_RECURSION_LEVEL6(__VA_ARGS__)) +#else +#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL5(__VA_ARGS__) +#endif + +#define CATCH_REC_END(...) +#define CATCH_REC_OUT + +#define CATCH_EMPTY() +#define CATCH_DEFER(id) id CATCH_EMPTY() + +#define CATCH_REC_GET_END2() 0, CATCH_REC_END +#define CATCH_REC_GET_END1(...) CATCH_REC_GET_END2 +#define CATCH_REC_GET_END(...) CATCH_REC_GET_END1 +#define CATCH_REC_NEXT0(test, next, ...) next CATCH_REC_OUT +#define CATCH_REC_NEXT1(test, next) CATCH_DEFER ( CATCH_REC_NEXT0 ) ( test, next, 0) +#define CATCH_REC_NEXT(test, next) CATCH_REC_NEXT1(CATCH_REC_GET_END test, next) + +#define CATCH_REC_LIST0(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST1(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0) ) ( f, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST2(f, x, peek, ...) f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) + +#define CATCH_REC_LIST0_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST1_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0_UD) ) ( f, userdata, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST2_UD(f, userdata, x, peek, ...) f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) + +// Applies the function macro `f` to each of the remaining parameters, inserts commas between the results, +// and passes userdata as the first parameter to each invocation, +// e.g. CATCH_REC_LIST_UD(f, x, a, b, c) evaluates to f(x, a), f(x, b), f(x, c) +#define CATCH_REC_LIST_UD(f, userdata, ...) CATCH_RECURSE(CATCH_REC_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) + +#define CATCH_REC_LIST(f, ...) CATCH_RECURSE(CATCH_REC_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) + +#define INTERNAL_CATCH_EXPAND1(param) INTERNAL_CATCH_EXPAND2(param) +#define INTERNAL_CATCH_EXPAND2(...) INTERNAL_CATCH_NO## __VA_ARGS__ +#define INTERNAL_CATCH_DEF(...) INTERNAL_CATCH_DEF __VA_ARGS__ +#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF +#define INTERNAL_CATCH_STRINGIZE(...) INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__) +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_STRINGIZE2(...) #__VA_ARGS__ +#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) +#else +// MSVC is adding extra space and needs another indirection to expand INTERNAL_CATCH_NOINTERNAL_CATCH_DEF +#define INTERNAL_CATCH_STRINGIZE2(...) INTERNAL_CATCH_STRINGIZE3(__VA_ARGS__) +#define INTERNAL_CATCH_STRINGIZE3(...) #__VA_ARGS__ +#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) (INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) + 1) +#endif + +#define INTERNAL_CATCH_MAKE_NAMESPACE2(...) ns_##__VA_ARGS__ +#define INTERNAL_CATCH_MAKE_NAMESPACE(name) INTERNAL_CATCH_MAKE_NAMESPACE2(name) + +#define INTERNAL_CATCH_REMOVE_PARENS(...) INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__) + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) decltype(get_wrapper()) +#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__)) +#else +#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) INTERNAL_CATCH_EXPAND_VARGS(decltype(get_wrapper())) +#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__))) +#endif + +#define INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)\ + CATCH_REC_LIST(INTERNAL_CATCH_MAKE_TYPE_LIST,__VA_ARGS__) + +#define INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0) INTERNAL_CATCH_REMOVE_PARENS(_0) +#define INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_1) +#define INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_1, _2) +#define INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_1, _2, _3) +#define INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_1, _2, _3, _4) +#define INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_1, _2, _3, _4, _5) +#define INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _4, _5, _6) +#define INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_1, _2, _3, _4, _5, _6, _7) +#define INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_1, _2, _3, _4, _5, _6, _7, _8) +#define INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9) +#define INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) + +#define INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N + +#define INTERNAL_CATCH_TYPE_GEN\ + template struct TypeList {};\ + template\ + constexpr auto get_wrapper() noexcept -> TypeList { return {}; }\ + \ + template class L1, typename...E1, template class L2, typename...E2> \ + constexpr auto append(L1, L2) noexcept -> L1 { return {}; }\ + template< template class L1, typename...E1, template class L2, typename...E2, typename...Rest>\ + constexpr auto append(L1, L2, Rest...) noexcept -> decltype(append(L1{}, Rest{}...)) { return {}; }\ + template< template class L1, typename...E1, typename...Rest>\ + constexpr auto append(L1, TypeList, Rest...) noexcept -> L1 { return {}; }\ + \ + template< template class Container, template class List, typename...elems>\ + constexpr auto rewrap(List) noexcept -> TypeList> { return {}; }\ + template< template class Container, template class List, class...Elems, typename...Elements>\ + constexpr auto rewrap(List,Elements...) noexcept -> decltype(append(TypeList>{}, rewrap(Elements{}...))) { return {}; }\ + \ + template