Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop support for Visual Studio 12 (2013) #1046

Merged
merged 2 commits into from
Jul 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 7 additions & 44 deletions src/windows/find_tools.rs
Original file line number Diff line number Diff line change
Expand Up @@ -146,14 +146,16 @@ pub(crate) fn find_tool_inner(
impl_::find_msvc_environment(tool, target, env_getter)
.or_else(|| impl_::find_msvc_15plus(tool, target, env_getter))
.or_else(|| impl_::find_msvc_14(tool, target, env_getter))
.or_else(|| impl_::find_msvc_12(tool, target, env_getter))
}

/// A version of Visual Studio
#[derive(Debug, PartialEq, Eq, Copy, Clone)]
#[non_exhaustive]
pub enum VsVers {
/// Visual Studio 12 (2013)
#[deprecated(
note = "Visual Studio 12 is no longer supported. cc will never return this value."
)]
Vs12,
dpaoliello marked this conversation as resolved.
Show resolved Hide resolved
/// Visual Studio 14 (2015)
Vs14,
Expand Down Expand Up @@ -181,7 +183,6 @@ pub fn find_vs_version() -> Result<VsVers, String> {
"16.0" => Ok(VsVers::Vs16),
"15.0" => Ok(VsVers::Vs15),
"14.0" => Ok(VsVers::Vs14),
"12.0" => Ok(VsVers::Vs12),
vers => Err(format!(
"\n\n\
unsupported or unknown VisualStudio version: {}\n\
Expand All @@ -203,8 +204,6 @@ pub fn find_vs_version() -> Result<VsVers, String> {
Ok(VsVers::Vs15)
} else if has_msbuild_version("14.0") {
Ok(VsVers::Vs14)
} else if has_msbuild_version("12.0") {
Ok(VsVers::Vs12)
} else {
Err("\n\n\
couldn't determine visual studio generator\n\
Expand Down Expand Up @@ -257,7 +256,7 @@ mod impl_ {
impl LibraryHandle {
fn new(name: &[u8]) -> Option<Self> {
let handle = unsafe { LoadLibraryA(name.as_ptr() as _) };
(!handle.is_null()).then(|| Self(handle))
(!handle.is_null()).then_some(Self(handle))
}

/// Get a function pointer to a function in the library.
Expand Down Expand Up @@ -786,26 +785,6 @@ mod impl_ {
Some(())
}

// For MSVC 12 we need to find the Windows 8.1 SDK.
pub(super) fn find_msvc_12(
tool: &str,
target: TargetArch<'_>,
env_getter: &dyn EnvGetter,
) -> Option<Tool> {
let vcdir = get_vc_dir("12.0")?;
let mut tool = get_tool(tool, &vcdir, target)?;
let sub = lib_subdir(target)?;
let sdk81 = get_sdk81_dir()?;
tool.path.push(sdk81.join("bin").join(sub));
let sdk_lib = sdk81.join("lib").join("winv6.3");
tool.libs.push(sdk_lib.join("um").join(sub));
let sdk_include = sdk81.join("include");
tool.include.push(sdk_include.join("shared"));
tool.include.push(sdk_include.join("um"));
tool.include.push(sdk_include.join("winrt"));
Some(tool.into_tool(env_getter))
}

fn add_env(
tool: &mut Tool,
env: &'static str,
Expand Down Expand Up @@ -1069,7 +1048,7 @@ mod impl_ {
|| find_msbuild_vs15(TargetArch("i686"), env_getter).is_some()
|| find_msbuild_vs15(TargetArch("aarch64"), env_getter).is_some()
}
"12.0" | "14.0" => LOCAL_MACHINE
"14.0" => LOCAL_MACHINE
.open(&OsString::from(format!(
"SOFTWARE\\Microsoft\\MSBuild\\ToolsVersions\\{}",
version
Expand Down Expand Up @@ -1198,24 +1177,8 @@ mod impl_ {
None
}

// For MSVC 12 we need to find the Windows 8.1 SDK.
#[inline(always)]
pub(super) fn find_msvc_12(
_tool: &str,
_target: TargetArch<'_>,
_: &dyn EnvGetter,
) -> Option<Tool> {
None
}

#[inline(always)]
pub(super) fn has_msbuild_version(version: &str, _: &dyn EnvGetter) -> bool {
match version {
"17.0" => false,
"16.0" => false,
"15.0" => false,
"12.0" | "14.0" => false,
_ => false,
}
pub(super) fn has_msbuild_version(_version: &str, _: &dyn EnvGetter) -> bool {
false
}
}