Support non-VS generator on Windows
This commit is contained in:
parent
c2ef75186a
commit
6b5f4bcc43
2 changed files with 14 additions and 7 deletions
|
|
@ -77,7 +77,14 @@ function(nuget_add_winrt target_name)
|
||||||
set(gen_dst ${CMAKE_BINARY_DIR}/packages/gen)
|
set(gen_dst ${CMAKE_BINARY_DIR}/packages/gen)
|
||||||
file(MAKE_DIRECTORY ${gen_dst}/winrt)
|
file(MAKE_DIRECTORY ${gen_dst}/winrt)
|
||||||
|
|
||||||
set(winrt_sdk_version ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION})
|
set(winrt_sdk_version)
|
||||||
|
if (NOT DEFINED CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION)
|
||||||
|
set(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION)
|
||||||
|
endif()
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/blob/89cfb90b9c0893133983b4f25896671c4f07497c/Modules/InstallRequiredSystemLibraries.cmake#L381
|
||||||
|
if (";${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION};$ENV{UCRTVersion};$ENV{WindowsSDKVersion};" MATCHES [=[;([0-9.]+)[;\]]=])
|
||||||
|
set(winrt_sdk_version ${CMAKE_MATCH_1})
|
||||||
|
endif()
|
||||||
set(winrt_version_key ${gen_dst}/winrt/version_key)
|
set(winrt_version_key ${gen_dst}/winrt/version_key)
|
||||||
set(winrt_version_test ${winrt_version_key}_test)
|
set(winrt_version_test ${winrt_version_key}_test)
|
||||||
set(sdk_version_key ${gen_dst}/winrt/sdk_version_key)
|
set(sdk_version_key ${gen_dst}/winrt/sdk_version_key)
|
||||||
|
|
|
||||||
12
run_cmake.py
12
run_cmake.py
|
|
@ -11,24 +11,24 @@ def run(project, arguments, buildType=''):
|
||||||
basePath = scriptPath + '/../out/' + buildType
|
basePath = scriptPath + '/../out/' + buildType
|
||||||
|
|
||||||
cmake = ['cmake']
|
cmake = ['cmake']
|
||||||
windowsArch = ''
|
vsArch = ''
|
||||||
explicitGenerator = False
|
explicitGenerator = False
|
||||||
for arg in arguments:
|
for arg in arguments:
|
||||||
if arg == 'debug':
|
if arg == 'debug':
|
||||||
cmake.append('-DCMAKE_BUILD_TYPE=Debug')
|
cmake.append('-DCMAKE_BUILD_TYPE=Debug')
|
||||||
elif arg == 'x86' or arg == 'x64':
|
elif arg == 'x86' or arg == 'x64':
|
||||||
windowsArch = arg
|
vsArch = arg
|
||||||
elif arg != 'force':
|
elif arg != 'force':
|
||||||
if arg.startswith('-G'):
|
if arg.startswith('-G'):
|
||||||
explicitGenerator = True
|
explicitGenerator = True
|
||||||
cmake.append(arg)
|
cmake.append(arg)
|
||||||
if sys.platform == 'win32':
|
if sys.platform == 'win32' and not explicitGenerator:
|
||||||
if windowsArch == 'x64':
|
if vsArch == 'x64':
|
||||||
cmake.append('-Ax64')
|
cmake.append('-Ax64')
|
||||||
else:
|
else:
|
||||||
cmake.append('-AWin32') # default
|
cmake.append('-AWin32') # default
|
||||||
elif windowsArch != '':
|
elif vsArch != '':
|
||||||
print("[ERROR] x86/x64 switch is supported only on Windows.")
|
print("[ERROR] x86/x64 switch is supported only with Visual Studio.")
|
||||||
return 1
|
return 1
|
||||||
elif sys.platform == 'darwin':
|
elif sys.platform == 'darwin':
|
||||||
if not explicitGenerator:
|
if not explicitGenerator:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue