Skip to content

Commit

Permalink
add support for windows on ARM64 native platform (conan-io#12145)
Browse files Browse the repository at this point in the history
* add support for windows on ARM64 native platform

* added unit test and implementation for non-legacy code

* Update conans/test/functional/tools/old/vcvars/vcvars_arch_test.py

Co-authored-by: James <[email protected]>

* Update conans/test/functional/tools/old/vcvars/vcvars_arch_test.py

Co-authored-by: James <[email protected]>

Co-authored-by: James <[email protected]>
  • Loading branch information
DoDoENT and memsharded authored Sep 21, 2022
1 parent 8f55db2 commit 669a1b7
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 2 deletions.
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,10 @@ conan.conf
#Generated certificate file
cacert.pem

#linux backup files
#linux backup and vim files
*~
.*.swp
.*.sw?
Session.vim

#Pyinstaller generated binaries
/pyinstaller
Expand Down
5 changes: 5 additions & 0 deletions conan/tools/microsoft/visual.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,11 @@ def vcvars_arch(conanfile):
'x86_64': 'x86_amd64',
'armv7': 'x86_arm',
'armv8': 'x86_arm64'}.get(arch_host)
elif arch_build == 'armv8':
arch = {'x86': 'arm64_x86',
'x86_64': 'arm64_x64',
'armv7': 'arm64_arm',
'armv8': 'arm64'}.get(arch_host)

if not arch:
raise ConanException('vcvars unsupported architectures %s-%s' % (arch_build, arch_host))
Expand Down
5 changes: 5 additions & 0 deletions conans/client/tools/win.py
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,11 @@ def vcvars_command(conanfile=None, arch=None, compiler_version=None, force=False
'x86_64': 'x86_amd64',
'armv7': 'x86_arm',
'armv8': 'x86_arm64'}.get(arch_setting)
elif arch_build == 'armv8':
vcvars_arch = {'x86': 'arm64_x86',
'x86_64': 'arm64_x64',
'armv7': 'arm64_arm',
'armv8': 'arm64'}.get(arch_setting)

if not vcvars_arch:
raise ConanException('unsupported architecture %s' % arch_setting)
Expand Down
11 changes: 11 additions & 0 deletions conans/test/functional/tools/old/vcvars/vcvars_arch_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,17 @@ def test_arch(self):
settings.arch = 'x86'
self.assert_vcvars_command(settings, "amd64_x86")

settings.arch_build = 'armv8'
settings.arch = 'armv8'

self.assert_vcvars_command(settings, "arm64")

settings.arch = 'x86'
self.assert_vcvars_command(settings, "arm64_x86")

settings.arch = 'x86_64'
self.assert_vcvars_command(settings, "arm64_x64")

def test_arch_override(self):
settings = Settings.loads(get_default_settings_yml())
settings.compiler = 'Visual Studio'
Expand Down

0 comments on commit 669a1b7

Please sign in to comment.