Add support for VS2022 (#2065)
* Add generation code for VS, cleanup Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> * Remove unused code and fixed comments of what is supported Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> * Code review comments Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
@@ -8,39 +8,16 @@
|
||||
include(cmake/Platform/Common/Configurations_common.cmake)
|
||||
include(cmake/Platform/Common/VisualStudio_common.cmake)
|
||||
|
||||
set(LY_MSVC_SUPPORTED_GENERATORS
|
||||
"Visual Studio 15"
|
||||
"Visual Studio 16"
|
||||
)
|
||||
set(FOUND_SUPPORTED_GENERATOR)
|
||||
foreach(supported_generator ${LY_MSVC_SUPPORTED_GENERATORS})
|
||||
if(CMAKE_GENERATOR MATCHES ${supported_generator})
|
||||
set(FOUND_SUPPORTED_GENERATOR TRUE)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
# VS2017's checks since it defaults the toolchain and target architecture to x86
|
||||
if(CMAKE_GENERATOR MATCHES "Visual Studio 15")
|
||||
if(CMAKE_VS_PLATFORM_NAME AND CMAKE_VS_PLATFORM_NAME STREQUAL "Win32") # VS2017 has Win32 as the default architecture
|
||||
message(FATAL_ERROR "Win32 architecture not supported, specify \"-A x64\" when invoking cmake")
|
||||
endif()
|
||||
if(NOT CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE STREQUAL "x64") # There is at least one library (EditorLib) that make the x86 linker to run out of memory
|
||||
message(FATAL_ERROR "x86 toolset not supported, specify \"-T host=x64\" when invoking cmake")
|
||||
endif()
|
||||
else()
|
||||
# For the other cases, verify that it wasn't invoked with an unsupported architecture. defaults to x86 architecture
|
||||
if(SUPPORTED_VS_PLATFORM_NAME_OVERRIDE)
|
||||
set(SUPPORTED_VS_PLATFORM_NAME ${SUPPORTED_VS_PLATFORM_NAME_OVERRIDE})
|
||||
else()
|
||||
set(SUPPORTED_VS_PLATFORM_NAME x64)
|
||||
endif()
|
||||
if(NOT CMAKE_GENERATOR MATCHES "Visual Studio 1[6-7]")
|
||||
message(FATAL_ERROR "Generator ${CMAKE_GENERATOR} not supported")
|
||||
endif()
|
||||
|
||||
if(CMAKE_VS_PLATFORM_NAME AND NOT CMAKE_VS_PLATFORM_NAME STREQUAL "${SUPPORTED_VS_PLATFORM_NAME}")
|
||||
message(FATAL_ERROR "${CMAKE_VS_PLATFORM_NAME} architecture not supported")
|
||||
endif()
|
||||
if(CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE AND NOT CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE STREQUAL "x64")
|
||||
message(FATAL_ERROR "${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE} toolset not supported")
|
||||
endif()
|
||||
# Verify that it wasn't invoked with an unsupported target/host architecture. Currently only supports x64/x64
|
||||
if(CMAKE_VS_PLATFORM_NAME AND NOT CMAKE_VS_PLATFORM_NAME STREQUAL "x64")
|
||||
message(FATAL_ERROR "${CMAKE_VS_PLATFORM_NAME} target architecture is not supported, it must be 'x64'")
|
||||
endif()
|
||||
if(CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE AND NOT CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE STREQUAL "x64")
|
||||
message(FATAL_ERROR "${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE} host toolset is not supported, it must be 'x64'")
|
||||
endif()
|
||||
|
||||
ly_append_configurations_options(
|
||||
|
||||
@@ -5,16 +5,13 @@
|
||||
#
|
||||
#
|
||||
|
||||
if(CMAKE_GENERATOR MATCHES "Visual Studio 16")
|
||||
foreach(conf IN LISTS CMAKE_CONFIGURATION_TYPES)
|
||||
if(conf STREQUAL debug)
|
||||
string(APPEND VCPKG_CONFIGURATION_MAPPING " <VcpkgConfiguration Condition=\"'$(Configuration)' == '${conf}'\">Debug</VcpkgConfiguration>\n")
|
||||
else()
|
||||
string(APPEND VCPKG_CONFIGURATION_MAPPING " <VcpkgConfiguration Condition=\"'$(Configuration)' == '${conf}'\">Release</VcpkgConfiguration>\n")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/Directory.Build.props" "${CMAKE_BINARY_DIR}/Directory.Build.props" @ONLY)
|
||||
|
||||
foreach(conf IN LISTS CMAKE_CONFIGURATION_TYPES)
|
||||
if(conf STREQUAL debug)
|
||||
string(APPEND VCPKG_CONFIGURATION_MAPPING " <VcpkgConfiguration Condition=\"'$(Configuration)' == '${conf}'\">Debug</VcpkgConfiguration>\n")
|
||||
else()
|
||||
string(APPEND VCPKG_CONFIGURATION_MAPPING " <VcpkgConfiguration Condition=\"'$(Configuration)' == '${conf}'\">Release</VcpkgConfiguration>\n")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/Directory.Build.props" "${CMAKE_BINARY_DIR}/Directory.Build.props" @ONLY)
|
||||
|
||||
endif()
|
||||
Reference in New Issue
Block a user