
Replace our hard-coded default for `/RTC1` with a first-class abstraction to select runtime checks from an enumeration of logical names. Add a `MSVC_RUNTIME_CHECKS` target property and corresponding `CMAKE_MSVC_RUNTIME_CHECKS` variable. Removing the old default flag requires a policy because existing projects may rely on string processing to edit them and choose runtime checks under the old behavior. Add policy CMP0184 to provide compatibility. Fixes: #26614
15 lines
496 B
CMake
15 lines
496 B
CMake
cmake_minimum_required(VERSION 3.25) # Enable CMP0141
|
|
cmake_policy(SET CMP0184 NEW)
|
|
project(VSMASM C ASM_MASM)
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
add_definitions(-DTESTx64)
|
|
else()
|
|
add_definitions(-DTESTi386)
|
|
string(APPEND CMAKE_ASM_MASM_FLAGS " /safeseh")
|
|
endif()
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
|
add_executable(VSMASM main.c foo.asm)
|
|
target_compile_definitions(VSMASM PUBLIC DEF_FOO)
|
|
target_compile_options(VSMASM PUBLIC -DDEF_BAR)
|
|
add_library(empty STATIC empty.asm)
|