@@ -43,7 +43,7 @@ endif()
43
43
# Ensure other tools are present
44
44
if (WIN32 )
45
45
if (CLR_CMAKE_HOST_ARCH STREQUAL arm)
46
-
46
+
47
47
# Confirm that Windows SDK is present
48
48
if (NOT DEFINED CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION OR CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION STREQUAL "" )
49
49
message (FATAL_ERROR "Windows SDK is required for the Arm32 build." )
@@ -52,11 +52,15 @@ if (WIN32)
52
52
endif ()
53
53
54
54
# Explicitly specify the assembler to be used for Arm32 compile
55
- file (TO_CMAKE_PATH "$ENV{VCINSTALLDIR} \\ bin\\ x86_arm\\ armasm.exe" CMAKE_ASM_COMPILER)
56
-
57
- set (CMAKE_ASM_MASM_COMPILER ${CMAKE_ASM_COMPILER} )
58
- message ("CMAKE_ASM_MASM_COMPILER explicitly set to: ${CMAKE_ASM_MASM_COMPILER} " )
55
+ if ($ENV{__VSVersion} STREQUAL "vs2015" )
56
+ file (TO_CMAKE_PATH "$ENV{VCINSTALLDIR} \\ bin\\ x86_arm\\ armasm.exe" CMAKE_ASM_COMPILER)
57
+ else ()
58
+ file (TO_CMAKE_PATH "$ENV{VCToolsInstallDir} \\ bin\\ HostX86\\ arm\\ armasm.exe" CMAKE_ASM_COMPILER)
59
+ endif ()
59
60
61
+ set (CMAKE_ASM_MASM_COMPILER ${CMAKE_ASM_COMPILER} )
62
+ message ("CMAKE_ASM_MASM_COMPILER explicitly set to: ${CMAKE_ASM_MASM_COMPILER} " )
63
+
60
64
# Enable generic assembly compilation to avoid CMake generate VS proj files that explicitly
61
65
# use ml[64].exe as the assembler.
62
66
enable_language (ASM)
@@ -71,13 +75,13 @@ if (WIN32)
71
75
endif ()
72
76
73
77
if (CLR_CMAKE_HOST_ARCH STREQUAL arm64)
74
- # CMAKE_CXX_COMPILER will default to the compiler installed with
75
- # Visual studio. Overwrite it to the compiler on the path.
76
- # TODO, remove when cmake generator supports Arm64 as a target.
77
- find_program (PATH_CXX_COMPILER cl)
78
- set (CMAKE_CXX_COMPILER ${PATH_CXX_COMPILER} )
79
- message ("Overwriting the CMAKE_CXX_COMPILER." )
80
- message (CMAKE_CXX_COMPILER found:${CMAKE_CXX_COMPILER} )
78
+ # CMAKE_CXX_COMPILER will default to the compiler installed with
79
+ # Visual studio. Overwrite it to the compiler on the path.
80
+ # TODO, remove when cmake generator supports Arm64 as a target.
81
+ find_program (PATH_CXX_COMPILER cl)
82
+ set (CMAKE_CXX_COMPILER ${PATH_CXX_COMPILER} )
83
+ message ("Overwriting the CMAKE_CXX_COMPILER." )
84
+ message (CMAKE_CXX_COMPILER found:${CMAKE_CXX_COMPILER} )
81
85
endif ()
82
86
83
87
else (WIN32 )
@@ -88,7 +92,7 @@ else (WIN32)
88
92
if (AWK STREQUAL "AWK-NOTFOUND" )
89
93
message (FATAL_ERROR "AWK not found" )
90
94
endif ()
91
-
95
+
92
96
if (CMAKE_SYSTEM_NAME STREQUAL Darwin)
93
97
94
98
# Ensure that dsymutil and strip are present
@@ -321,13 +325,13 @@ if (WIN32)
321
325
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO" ) #Do not create Side-by-Side Assembly Manifest
322
326
323
327
if (CLR_CMAKE_PLATFORM_ARCH_ARM)
324
- set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,6.02" ) #windows subsystem - arm minimum is 6.02
328
+ set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,6.02" ) #windows subsystem - arm minimum is 6.02
325
329
elseif (CLR_CMAKE_PLATFORM_ARCH_ARM64)
326
- set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,6.03" ) #windows subsystem - arm64 minimum is 6.03
330
+ set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,6.03" ) #windows subsystem - arm64 minimum is 6.03
327
331
else ()
328
332
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,6.01" ) #windows subsystem
329
333
endif ()
330
-
334
+
331
335
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /LARGEADDRESSAWARE" ) # can handle addresses larger than 2 gigabytes
332
336
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NXCOMPAT" ) #Compatible with Data Execution Prevention
333
337
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DYNAMICBASE" ) #Use address space layout randomization
@@ -366,11 +370,11 @@ if (WIN32)
366
370
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /machine:arm64" )
367
371
endif (CLR_CMAKE_PLATFORM_ARCH_ARM64)
368
372
369
- # Force uCRT to be dynamically linked for Release build
370
- set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib" )
371
- set (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib" )
372
- set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib" )
373
- set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib" )
373
+ # Force uCRT to be dynamically linked for Release build
374
+ set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib" )
375
+ set (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib" )
376
+ set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib" )
377
+ set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib" )
374
378
375
379
elseif (CLR_CMAKE_PLATFORM_UNIX)
376
380
# Set the values to display when interactively configuring CMAKE_BUILD_TYPE
@@ -433,11 +437,11 @@ elseif (CLR_CMAKE_PLATFORM_UNIX)
433
437
endif (UPPERCASE_CMAKE_BUILD_TYPE STREQUAL DEBUG OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL CHECKED)
434
438
endif (WIN32 )
435
439
436
- if (CLR_CMAKE_PLATFORM_LINUX)
440
+ if (CLR_CMAKE_PLATFORM_LINUX)
437
441
set (CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack" )
438
442
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--build-id=sha1" )
439
443
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--build-id=sha1" )
440
- endif (CLR_CMAKE_PLATFORM_LINUX)
444
+ endif (CLR_CMAKE_PLATFORM_LINUX)
441
445
442
446
#------------------------------------
443
447
# Definitions (for platform)
@@ -492,9 +496,9 @@ if (CLR_CMAKE_PLATFORM_UNIX)
492
496
message ("Detected FreeBSD amd64" )
493
497
endif (CLR_CMAKE_PLATFORM_FREEBSD)
494
498
495
- if (CLR_CMAKE_PLATFORM_NETBSD)
496
- message ("Detected NetBSD amd64" )
497
- endif (CLR_CMAKE_PLATFORM_NETBSD)
499
+ if (CLR_CMAKE_PLATFORM_NETBSD)
500
+ message ("Detected NetBSD amd64" )
501
+ endif (CLR_CMAKE_PLATFORM_NETBSD)
498
502
endif (CLR_CMAKE_PLATFORM_UNIX)
499
503
500
504
if (WIN32 )
@@ -601,7 +605,7 @@ include(clrdefinitions.cmake)
601
605
602
606
# Microsoft.Dotnet.BuildTools.Coreclr version
603
607
set (BuildToolsVersion "1.0.4-prerelease" )
604
- set (BuildToolsDir "${CLR_DIR} /packages /Microsoft.DotNet.BuildTools.CoreCLR/${BuildToolsVersion} " )
608
+ set (BuildToolsDir "${CLR_CMAKE_PACKAGES_DIR} /Microsoft.DotNet.BuildTools.CoreCLR/${BuildToolsVersion} " )
605
609
606
610
#------------------------------
607
611
# Add Product Directory
0 commit comments