mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-01 12:32:48 +00:00
Merge pull request #5037 from Orphis/vs2017
VS2017 support (with bonus CMake integration)
This commit is contained in:
commit
8ff8c26f1a
@ -27,13 +27,23 @@ function(check_and_add_flag var flag)
|
|||||||
message(FATAL_ERROR "check_and_add_flag called with incorrect arguments: ${ARGN}")
|
message(FATAL_ERROR "check_and_add_flag called with incorrect arguments: ${ARGN}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(is_c "$<COMPILE_LANGUAGE:C>")
|
||||||
|
set(is_cxx "$<COMPILE_LANGUAGE:CXX>")
|
||||||
|
|
||||||
|
# The Visual Studio generators don't support COMPILE_LANGUAGE
|
||||||
|
# So we fail all the C flags and only actually test CXX ones
|
||||||
|
if(CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||||
|
set(is_c "0")
|
||||||
|
set(is_cxx "1")
|
||||||
|
endif()
|
||||||
|
|
||||||
check_c_compiler_flag(${flag} FLAG_C_${var})
|
check_c_compiler_flag(${flag} FLAG_C_${var})
|
||||||
if(FLAG_C_${var})
|
if(FLAG_C_${var})
|
||||||
add_compile_options("$<$<AND:$<COMPILE_LANGUAGE:C>,${genexp_config_test}>:${flag}>")
|
add_compile_options("$<$<AND:${is_c},${genexp_config_test}>:${flag}>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
check_cxx_compiler_flag(${flag} FLAG_CXX_${var})
|
check_cxx_compiler_flag(${flag} FLAG_CXX_${var})
|
||||||
if(FLAG_CXX_${var})
|
if(FLAG_CXX_${var})
|
||||||
add_compile_options("$<$<AND:$<COMPILE_LANGUAGE:CXX>,${genexp_config_test}>:${flag}>")
|
add_compile_options("$<$<AND:${is_cxx},${genexp_config_test}>:${flag}>")
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -30,5 +30,5 @@ function(dolphin_compile_definitions)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS
|
||||||
"$<${genexp_config_test}:${ARGN}>")
|
"$<${genexp_config_test}:${defs}>")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -206,7 +206,7 @@ endif()
|
|||||||
|
|
||||||
if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
||||||
check_and_add_flag(EXCEPTIONS /EHsc)
|
check_and_add_flag(EXCEPTIONS /EHsc)
|
||||||
dolphin_compile_definitions(-D_DEBUG DEBUG_ONLY)
|
dolphin_compile_definitions(_DEBUG DEBUG_ONLY)
|
||||||
|
|
||||||
string(APPEND CMAKE_EXE_LINKER_FLAGS " /NXCOMPAT")
|
string(APPEND CMAKE_EXE_LINKER_FLAGS " /NXCOMPAT")
|
||||||
string(APPEND CMAKE_EXE_LINKER_FLAGS " /BASE:0x00400000")
|
string(APPEND CMAKE_EXE_LINKER_FLAGS " /BASE:0x00400000")
|
||||||
|
20
CMakeSettings.json
Normal file
20
CMakeSettings.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "x64-Debug",
|
||||||
|
"generator": "Visual Studio 15 2017 Win64",
|
||||||
|
"configurationType": "Debug",
|
||||||
|
"buildRoot": "${env.LOCALAPPDATA}\\CMakeBuild\\${workspaceHash}\\build\\${name}",
|
||||||
|
"cmakeCommandArgs": "",
|
||||||
|
"buildCommandArgs": "-m -p:PreferredToolArchitecture=x64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "x64-Release",
|
||||||
|
"generator": "Visual Studio 15 2017 Win64",
|
||||||
|
"configurationType": "Release",
|
||||||
|
"buildRoot": "${env.LOCALAPPDATA}\\CMakeBuild\\${workspaceHash}\\build\\${name}",
|
||||||
|
"cmakeCommandArgs": "",
|
||||||
|
"buildCommandArgs": "-m -p:PreferredToolArchitecture=x64"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -10,6 +10,10 @@
|
|||||||
|
|
||||||
#include "Common/CommonTypes.h"
|
#include "Common/CommonTypes.h"
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#include <intrin.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace MathUtil
|
namespace MathUtil
|
||||||
{
|
{
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@ -24,7 +28,6 @@ constexpr T SNANConstant()
|
|||||||
// will use __builtin_nans, which is improperly handled by the compiler and generates
|
// will use __builtin_nans, which is improperly handled by the compiler and generates
|
||||||
// a bad constant. Here we go back to the version MSVC used before the builtin.
|
// a bad constant. Here we go back to the version MSVC used before the builtin.
|
||||||
// TODO: Remove this and use numeric_limits directly whenever this bug is fixed.
|
// TODO: Remove this and use numeric_limits directly whenever this bug is fixed.
|
||||||
#include <intrin.h>
|
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
constexpr double SNANConstant()
|
constexpr double SNANConstant()
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include "Core/IOS/ES/ES.h"
|
#include "Core/IOS/ES/ES.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <cctype>
|
||||||
#include <cinttypes>
|
#include <cinttypes>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user