diff --git a/CMakeLists.txt b/CMakeLists.txt index d191ad9..b40e0e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. -cmake_minimum_required (VERSION 3.11) +cmake_minimum_required (VERSION 3.13) set(DIRECTXTK12_VERSION 1.4.9) @@ -29,6 +29,14 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/CMake") if (DEFINED VCPKG_TARGET_ARCHITECTURE) set(DIRECTX_ARCH ${VCPKG_TARGET_ARCHITECTURE}) +elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Ww][Ii][Nn]32$") + set(DIRECTX_ARCH x86) +elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Xx]64$") + set(DIRECTX_ARCH x64) +elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]$") + set(DIRECTX_ARCH arm) +elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]64$") + set(DIRECTX_ARCH arm64) endif() #--- Library @@ -262,10 +270,11 @@ install(FILES DESTINATION cmake/) if(MSVC) - target_compile_options(${PROJECT_NAME} PRIVATE /fp:fast) + target_compile_options(${PROJECT_NAME} PRIVATE /fp:fast "$<$>:/guard:cf>") if((${CMAKE_SIZEOF_VOID_P} EQUAL 4) AND (NOT ${DIRECTX_ARCH} MATCHES "arm")) target_compile_options(${PROJECT_NAME} PRIVATE /arch:SSE2) + target_link_options(${PROJECT_NAME} PRIVATE /SAFESEH) endif() endif() @@ -273,7 +282,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_compile_options(${PROJECT_NAME} PRIVATE -Wpedantic -Wextra) endif() if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - target_compile_options(${PROJECT_NAME} PRIVATE /permissive- /JMC- /Zc:__cplusplus) + target_compile_options(${PROJECT_NAME} PRIVATE /sdl /permissive- /JMC- /Zc:__cplusplus) if(ENABLE_CODE_ANALYSIS) target_compile_options(${PROJECT_NAME} PRIVATE /analyze)