# - for non-windows build platform & architecture is detected using inbuilt CMAKE variables and cross target component configure
# - for windows we use the passed in parameter to CMAKE to determine build arch
#----------------------------------------
+set(CLR_CMAKE_HOST_OS ${CMAKE_SYSTEM_NAME})
if(CMAKE_SYSTEM_NAME STREQUAL Linux)
set(CLR_CMAKE_HOST_UNIX 1)
if(CLR_CROSS_COMPONENTS_BUILD)
if(DEFINED CLR_CMAKE_LINUX_ID)
if(CLR_CMAKE_LINUX_ID STREQUAL tizen)
set(CLR_CMAKE_TARGET_TIZEN_LINUX 1)
+ set(CLR_CMAKE_HOST_OS ${CLR_CMAKE_LINUX_ID})
elseif(CLR_CMAKE_LINUX_ID STREQUAL alpine)
set(CLR_CMAKE_HOST_ALPINE_LINUX 1)
+ set(CLR_CMAKE_HOST_OS ${CLR_CMAKE_LINUX_ID})
endif()
endif(DEFINED CLR_CMAKE_LINUX_ID)
endif(CMAKE_SYSTEM_NAME STREQUAL Linux)
set(CLR_CMAKE_HOST_SUNOS 1)
endif(CMAKE_SYSTEM_NAME STREQUAL SunOS)
+if(CMAKE_SYSTEM_NAME STREQUAL Windows)
+ set(CLR_CMAKE_HOST_OS Windows_NT)
+endif(CMAKE_SYSTEM_NAME STREQUAL Windows)
+
+
#--------------------------------------------
# This repo builds two set of binaries
# 1. binaries which execute on target arch machine
clr_unknown_arch()
endif()
-# check if host & target arch combination are valid
-if(NOT(CLR_CMAKE_TARGET_ARCH STREQUAL CLR_CMAKE_HOST_ARCH))
- if(NOT((CLR_CMAKE_HOST_ARCH_AMD64 AND CLR_CMAKE_TARGET_ARCH_ARM64) OR (CLR_CMAKE_HOST_ARCH_I386 AND CLR_CMAKE_TARGET_ARCH_ARM) OR (CLR_CMAKE_HOST_ARCH_AMD64 AND CLR_CMAKE_TARGET_ARCH_ARM)))
- message(FATAL_ERROR "Invalid host and target arch combination")
+# Set TARGET architecture variables
+# Target os will be a cmake param (optional) for both windows as well as non-windows build
+# if target os is not specified then host & target os are same
+if (NOT DEFINED CLR_CMAKE_TARGET_OS OR CLR_CMAKE_TARGET_OS STREQUAL "" )
+ set(CLR_CMAKE_TARGET_OS ${CLR_CMAKE_HOST_OS})
+endif()
+
+if(CLR_CMAKE_TARGET_OS STREQUAL Linux)
+ set(CLR_CMAKE_TARGET_UNIX 1)
+ set(CLR_CMAKE_TARGET_LINUX 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL Linux)
+
+if(CLR_CMAKE_TARGET_OS STREQUAL tizen)
+ set(CLR_CMAKE_TARGET_UNIX 1)
+ set(CLR_CMAKE_TARGET_LINUX 1)
+ set(CLR_CMAKE_TARGET_TIZEN_LINUX 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL tizen)
+
+if(CLR_CMAKE_TARGET_OS STREQUAL alpine)
+ set(CLR_CMAKE_TARGET_UNIX 1)
+ set(CLR_CMAKE_TARGET_LINUX 1)
+ set(CLR_CMAKE_TARGET_ALPINE_LINUX 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL alpine)
+
+if(CLR_CMAKE_TARGET_OS STREQUAL Darwin)
+ set(CLR_CMAKE_TARGET_UNIX 1)
+ set(CLR_CMAKE_TARGET_DARWIN 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL Darwin)
+
+if(CLR_CMAKE_TARGET_OS STREQUAL FreeBSD)
+ set(CLR_CMAKE_TARGET_UNIX 1)
+ set(CLR_CMAKE_TARGET_FREEBSD 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL FreeBSD)
+
+if(CLR_CMAKE_TARGET_OS STREQUAL OpenBSD)
+ set(CLR_CMAKE_TARGET_UNIX 1)
+ set(CLR_CMAKE_TARGET_OPENBSD 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL OpenBSD)
+
+if(CLR_CMAKE_TARGET_OS STREQUAL NetBSD)
+ set(CLR_CMAKE_TARGET_UNIX 1)
+ set(CLR_CMAKE_TARGET_NETBSD 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL NetBSD)
+
+if(CLR_CMAKE_TARGET_OS STREQUAL SunOS)
+ set(CLR_CMAKE_TARGET_UNIX 1)
+ set(CLR_CMAKE_TARGET_SUNOS 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL SunOS)
+
+if(CLR_CMAKE_TARGET_UNIX)
+ if(CLR_CMAKE_TARGET_ARCH STREQUAL x64)
+ set(CLR_CMAKE_TARGET_UNIX_AMD64 1)
+ elseif(CLR_CMAKE_TARGET_ARCH STREQUAL armel)
+ set(CLR_CMAKE_TARGET_UNIX_ARM 1)
+ elseif(CLR_CMAKE_TARGET_ARCH STREQUAL arm)
+ set(CLR_CMAKE_TARGET_UNIX_ARM 1)
+ elseif(CLR_CMAKE_TARGET_ARCH STREQUAL arm64)
+ set(CLR_CMAKE_TARGET_UNIX_ARM64 1)
+ elseif(CLR_CMAKE_TARGET_ARCH STREQUAL x86)
+ set(CLR_CMAKE_TARGET_UNIX_X86 1)
+ else()
+ clr_unknown_arch()
+ endif()
+else()
+ set(CLR_CMAKE_TARGET_WIN32 1)
+endif(CLR_CMAKE_TARGET_UNIX)
+
+# check if host & target os/arch combination are valid
+if (CLR_CMAKE_TARGET_OS STREQUAL CLR_CMAKE_HOST_OS)
+ if(NOT(CLR_CMAKE_TARGET_ARCH STREQUAL CLR_CMAKE_HOST_ARCH))
+ if(NOT((CLR_CMAKE_HOST_ARCH_AMD64 AND CLR_CMAKE_TARGET_ARCH_ARM64) OR (CLR_CMAKE_HOST_ARCH_I386 AND CLR_CMAKE_TARGET_ARCH_ARM) OR (CLR_CMAKE_HOST_ARCH_AMD64 AND CLR_CMAKE_TARGET_ARCH_ARM)))
+ message(FATAL_ERROR "Invalid platform and target arch combination")
+ endif()
+ endif()
+else()
+ if(NOT (CLR_CMAKE_HOST_OS STREQUAL Windows_NT))
+ message(FATAL_ERROR "Invalid host and target os/arch combination. Host OS: ${CLR_CMAKE_HOST_OS}")
+ endif()
+ if(NOT (CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_ALPINE_LINUX))
+ message(FATAL_ERROR "Invalid host and target os/arch combination. Target OS: ${CLR_CMAKE_TARGET_OS}")
+ endif()
+ if(NOT ((CLR_CMAKE_HOST_ARCH_AMD64 AND (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_ARM64)) OR (CLR_CMAKE_HOST_ARCH_I386 AND CLR_CMAKE_TARGET_ARCH_ARM)))
+ message(FATAL_ERROR "Invalid host and target os/arch combination. Host Arch: ${CLR_CMAKE_HOST_ARCH} Target Arch: ${CLR_CMAKE_TARGET_ARCH}")
endif()
endif()
add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>:SELF_NO_HOST>)
if (CLR_CMAKE_TARGET_ARCH_AMD64)
- if (CLR_CMAKE_HOST_UNIX)
+ if (CLR_CMAKE_TARGET_UNIX)
add_definitions(-DDBG_TARGET_AMD64_UNIX)
endif()
add_definitions(-D_TARGET_AMD64_)
add_definitions(-DDBG_TARGET_64BIT)
add_definitions(-DDBG_TARGET_AMD64)
elseif (CLR_CMAKE_TARGET_ARCH_ARM64)
- if (CLR_CMAKE_HOST_UNIX)
+ if (CLR_CMAKE_TARGET_UNIX)
add_definitions(-DDBG_TARGET_ARM64_UNIX)
add_definitions(-DFEATURE_EMULATE_SINGLESTEP)
endif()
add_definitions(-DDBG_TARGET_ARM64)
add_definitions(-DFEATURE_MULTIREG_RETURN)
elseif (CLR_CMAKE_TARGET_ARCH_ARM)
- if (CLR_CMAKE_HOST_UNIX)
+ if (CLR_CMAKE_TARGET_UNIX)
add_definitions(-DDBG_TARGET_ARM_UNIX)
elseif (WIN32 AND NOT DEFINED CLR_CROSS_COMPONENTS_BUILD)
# Set this to ensure we can use Arm SDK for Desktop binary linkage when doing native (Arm32) build
add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE)
add_definitions(-D_ARM_WORKAROUND_)
- endif (CLR_CMAKE_HOST_UNIX)
+ endif (CLR_CMAKE_TARGET_UNIX)
add_definitions(-D_TARGET_ARM_)
add_definitions(-DDBG_TARGET_32BIT)
add_definitions(-DDBG_TARGET_ARM)
clr_unknown_arch()
endif (CLR_CMAKE_TARGET_ARCH_AMD64)
-if (CLR_CMAKE_HOST_UNIX)
+if (CLR_CMAKE_TARGET_UNIX)
- if(CLR_CMAKE_HOST_DARWIN)
+ if(CLR_CMAKE_TARGET_DARWIN)
add_definitions(-D_XOPEN_SOURCE)
add_definitions(-DFEATURE_DATATARGET4)
- endif(CLR_CMAKE_HOST_DARWIN)
+ endif(CLR_CMAKE_TARGET_DARWIN)
if (CLR_CMAKE_TARGET_ARCH_AMD64)
add_definitions(-DUNIX_AMD64_ABI)
add_definitions(-DUNIX_X86_ABI)
endif()
-endif(CLR_CMAKE_HOST_UNIX)
+endif(CLR_CMAKE_TARGET_UNIX)
-if(CLR_CMAKE_HOST_ALPINE_LINUX)
+if(CLR_CMAKE_TARGET_ALPINE_LINUX)
# Alpine Linux doesn't have fixed stack limit, this define disables some stack pointer
# sanity checks in debug / checked build that rely on a fixed stack limit
add_definitions(-DNO_FIXED_STACK_LIMIT)
-endif(CLR_CMAKE_HOST_ALPINE_LINUX)
+endif(CLR_CMAKE_TARGET_ALPINE_LINUX)
add_definitions(-D_BLD_CLR)
add_definitions(-DDEBUGGING_SUPPORTED)
add_definitions(-D_WIN32_WINNT=0x0602)
add_definitions(-DWIN32_LEAN_AND_MEAN)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+endif(WIN32)
+if(CLR_CMAKE_TARGET_WIN32)
if(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386)
# Only enable edit and continue on windows x86 and x64
# exclude Linux, arm & arm64
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:EnC_SUPPORTED>)
endif(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386)
- endif(WIN32)
+endif(CLR_CMAKE_TARGET_WIN32)
# Features - please keep them alphabetically sorted
-if(WIN32)
+if(CLR_CMAKE_TARGET_WIN32)
add_definitions(-DFEATURE_APPX)
if(NOT CLR_CMAKE_TARGET_ARCH_I386)
add_definitions(-DFEATURE_ARRAYSTUB_AS_IL)
add_definitions(-DFEATURE_MULTICASTSTUB_AS_IL)
endif()
-else(WIN32)
+else(CLR_CMAKE_TARGET_WIN32)
add_definitions(-DFEATURE_ARRAYSTUB_AS_IL)
add_definitions(-DFEATURE_MULTICASTSTUB_AS_IL)
-endif(WIN32)
+endif(CLR_CMAKE_TARGET_WIN32)
if(NOT CLR_CMAKE_TARGET_ARCH_I386)
add_definitions(-DFEATURE_PORTABLE_SHUFFLE_THUNKS)
endif()
-if(CLR_CMAKE_HOST_UNIX OR NOT CLR_CMAKE_TARGET_ARCH_I386)
+if(CLR_CMAKE_TARGET_UNIX OR NOT CLR_CMAKE_TARGET_ARCH_I386)
add_definitions(-DFEATURE_INSTANTIATINGSTUB_AS_IL)
endif()
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_CODE_VERSIONING>)
add_definitions(-DFEATURE_COLLECTIBLE_TYPES)
-if(WIN32)
+if(CLR_CMAKE_TARGET_WIN32)
add_definitions(-DFEATURE_CLASSIC_COMINTEROP)
add_definitions(-DFEATURE_COMINTEROP)
add_definitions(-DFEATURE_COMINTEROP_APARTMENT_SUPPORT)
add_definitions(-DFEATURE_COMINTEROP_UNMANAGED_ACTIVATION)
add_definitions(-DFEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION)
-endif(WIN32)
+endif(CLR_CMAKE_TARGET_WIN32)
add_definitions(-DFEATURE_BASICFREEZE)
add_definitions(-DFEATURE_CORECLR)
if(FEATURE_GDBJIT_SYMTAB)
add_definitions(-DFEATURE_GDBJIT_SYMTAB)
endif(FEATURE_GDBJIT_SYMTAB)
-if(CLR_CMAKE_HOST_UNIX)
+if(CLR_CMAKE_TARGET_UNIX)
add_definitions(-DFEATURE_EVENTSOURCE_XPLAT)
-endif(CLR_CMAKE_HOST_UNIX)
+endif(CLR_CMAKE_TARGET_UNIX)
# NetBSD doesn't implement this feature
if(NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD)
add_definitions(-DFEATURE_HIJACK)
endif(NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD)
add_definitions(-DFEATURE_ICASTABLE)
-if (WIN32 AND (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_ARM64))
+if (CLR_CMAKE_TARGET_WIN32 AND (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_ARM64))
add_definitions(-DFEATURE_INTEROP_DEBUGGING)
-endif (WIN32 AND (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_ARM64))
+endif (CLR_CMAKE_TARGET_WIN32 AND (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_ARM64))
if(FEATURE_INTERPRETER)
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_INTERPRETER>)
endif(FEATURE_INTERPRETER)
add_definitions(-DFEATURE_ISYM_READER)
-if (CLR_CMAKE_HOST_LINUX OR WIN32)
+if (CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_WIN32)
add_definitions(-DFEATURE_MANAGED_ETW)
-endif(CLR_CMAKE_HOST_LINUX OR WIN32)
+endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_WIN32)
add_definitions(-DFEATURE_MANAGED_ETW_CHANNELS)
if(FEATURE_MERGE_JIT_AND_ENGINE)
add_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
endif(FEATURE_MERGE_JIT_AND_ENGINE)
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_MULTICOREJIT>)
-if(CLR_CMAKE_HOST_UNIX)
+if(CLR_CMAKE_TARGET_UNIX)
add_definitions(-DFEATURE_PAL)
add_definitions(-DFEATURE_PAL_ANSI)
-endif(CLR_CMAKE_HOST_UNIX)
-if(CLR_CMAKE_HOST_LINUX)
+endif(CLR_CMAKE_TARGET_UNIX)
+if(CLR_CMAKE_TARGET_LINUX AND CLR_CMAKE_HOST_LINUX)
add_definitions(-DFEATURE_PERFMAP)
-endif(CLR_CMAKE_HOST_LINUX)
-if(CLR_CMAKE_HOST_FREEBSD)
+endif(CLR_CMAKE_TARGET_LINUX AND CLR_CMAKE_HOST_LINUX)
+if(CLR_CMAKE_TARGET_FREEBSD)
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_PERFMAP>)
-endif(CLR_CMAKE_HOST_FREEBSD)
+endif(CLR_CMAKE_TARGET_FREEBSD)
if(FEATURE_PREJIT)
add_definitions(-DFEATURE_PREJIT)
else()
add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>:FEATURE_PREJIT>)
endif(FEATURE_PREJIT)
-if(WIN32 OR CLR_CMAKE_HOST_LINUX)
+if(CLR_CMAKE_TARGET_WIN32 OR CLR_CMAKE_TARGET_LINUX)
add_compile_definitions($<$<AND:$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>,$<NOT:$<BOOL:$<TARGET_PROPERTY:DAC_COMPONENT>>>>:FEATURE_PROFAPI_ATTACH_DETACH>)
-endif(WIN32 OR CLR_CMAKE_HOST_LINUX)
+endif(CLR_CMAKE_TARGET_WIN32 OR CLR_CMAKE_TARGET_LINUX)
add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:DAC_COMPONENT>>:DATA_PROFAPI_ATTACH_DETACH>)
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_REJIT>)
-if (CLR_CMAKE_HOST_UNIX OR CLR_CMAKE_TARGET_ARCH_ARM64)
+if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_ARCH_ARM64)
add_definitions(-DFEATURE_STUBS_AS_IL)
endif ()
if (FEATURE_NGEN_RELOCS_OPTIMIZATIONS)
add_definitions(-DFEATURE_SVR_GC)
add_definitions(-DFEATURE_SYMDIFF)
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_TIERED_COMPILATION>)
-if (WIN32)
+if (CLR_CMAKE_TARGET_WIN32)
add_definitions(-DFEATURE_TYPEEQUIVALENCE)
-endif(WIN32)
-if (CLR_CMAKE_HOST_ARCH_AMD64)
+endif(CLR_CMAKE_TARGET_WIN32)
+if (CLR_CMAKE_TARGET_ARCH_AMD64)
# Enable the AMD64 Unix struct passing JIT-EE interface for all AMD64 platforms, to enable altjit.
add_definitions(-DUNIX_AMD64_ABI_ITF)
-endif (CLR_CMAKE_HOST_ARCH_AMD64)
-if(CLR_CMAKE_HOST_UNIX_AMD64)
+endif (CLR_CMAKE_TARGET_ARCH_AMD64)
+if(CLR_CMAKE_TARGET_UNIX_AMD64)
add_definitions(-DFEATURE_MULTIREG_RETURN)
-endif (CLR_CMAKE_HOST_UNIX_AMD64)
-if(CLR_CMAKE_HOST_UNIX AND CLR_CMAKE_TARGET_ARCH_AMD64)
+endif (CLR_CMAKE_TARGET_UNIX_AMD64)
+if(CLR_CMAKE_TARGET_UNIX AND CLR_CMAKE_TARGET_ARCH_AMD64)
add_definitions(-DUNIX_AMD64_ABI)
-endif(CLR_CMAKE_HOST_UNIX AND CLR_CMAKE_TARGET_ARCH_AMD64)
+endif(CLR_CMAKE_TARGET_UNIX AND CLR_CMAKE_TARGET_ARCH_AMD64)
add_definitions(-DFEATURE_USE_ASM_GC_WRITE_BARRIERS)
-if(CLR_CMAKE_HOST_ARCH_AMD64 OR CLR_CMAKE_HOST_ARCH_ARM64)
+if(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_ARM64)
add_definitions(-DFEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP)
-endif(CLR_CMAKE_HOST_ARCH_AMD64 OR CLR_CMAKE_HOST_ARCH_ARM64)
-if(CLR_CMAKE_HOST_ARCH_AMD64 OR CLR_CMAKE_HOST_ARCH_ARM64)
+endif(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_ARM64)
+if(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_ARM64)
add_definitions(-DFEATURE_MANUALLY_MANAGED_CARD_BUNDLES)
-endif(CLR_CMAKE_HOST_ARCH_AMD64 OR CLR_CMAKE_HOST_ARCH_ARM64)
+endif(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_ARM64)
-if(NOT CLR_CMAKE_HOST_UNIX)
+if(NOT CLR_CMAKE_TARGET_UNIX)
add_definitions(-DFEATURE_WIN32_REGISTRY)
-endif(NOT CLR_CMAKE_HOST_UNIX)
+endif(NOT CLR_CMAKE_TARGET_UNIX)
add_definitions(-DFEATURE_WINMD_RESILIENT)
add_definitions(-D_SECURE_SCL=0)
add_definitions(-DUNICODE)
add_definitions(-D_UNICODE)
-if(WIN32)
+if(CLR_CMAKE_TARGET_WIN32)
if (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386)
add_definitions(-DFEATURE_DATABREAKPOINT)
endif(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386)
-endif(WIN32)
+endif(CLR_CMAKE_TARGET_WIN32)
-if(CLR_CMAKE_HOST_DARWIN)
+if(CLR_CMAKE_TARGET_DARWIN)
add_definitions(-DFEATURE_WRITEBARRIER_COPY)
-endif(CLR_CMAKE_HOST_DARWIN)
+endif(CLR_CMAKE_TARGET_DARWIN)
-if (NOT CLR_CMAKE_TARGET_ARCH_I386 OR NOT WIN32)
+if (NOT CLR_CMAKE_TARGET_ARCH_I386 OR NOT CLR_CMAKE_TARGET_WIN32)
add_definitions(-DFEATURE_EH_FUNCLETS)
-endif (NOT CLR_CMAKE_TARGET_ARCH_I386 OR NOT WIN32)
+endif (NOT CLR_CMAKE_TARGET_ARCH_I386 OR NOT CLR_CMAKE_TARGET_WIN32)