CMake/Tests/VSMASM/CMakeLists.txt
AJIOB 2b2344b412 MSVC: Add abstraction for runtime checks
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
2025-01-29 13:07:41 -05:00

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)