diff --git a/eng/native/configureplatform.cmake b/eng/native/configureplatform.cmake index 2f2f2d4ec41e9..c1b627f5f9dd7 100644 --- a/eng/native/configureplatform.cmake +++ b/eng/native/configureplatform.cmake @@ -1,20 +1,12 @@ include(CheckPIESupported) -# All code we build should be compiled as position independent -check_pie_supported(OUTPUT_VARIABLE PIE_SUPPORT_OUTPUT LANGUAGES CXX) -if(NOT MSVC AND NOT CMAKE_CXX_LINK_PIE_SUPPORTED) - message(WARNING "PIE is not supported at link time: ${PIE_SUPPORT_OUTPUT}.\n" - "PIE link options will not be passed to linker.") -endif() -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - #---------------------------------------- # Detect and set platform variable names # - 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) +if(CLR_CMAKE_HOST_OS STREQUAL Linux) set(CLR_CMAKE_HOST_UNIX 1) if(CLR_CROSS_COMPONENTS_BUILD) # CMAKE_HOST_SYSTEM_PROCESSOR returns the value of `uname -p` on host. @@ -42,6 +34,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux) set(CLR_CMAKE_HOST_UNIX_AMD64 1) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l) set(CLR_CMAKE_HOST_UNIX_ARM 1) + set(CLR_CMAKE_HOST_UNIX_ARMV7L 1) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL arm) set(CLR_CMAKE_HOST_UNIX_ARM 1) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) @@ -72,54 +65,62 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux) elseif(CLR_CMAKE_LINUX_ID STREQUAL alpine) set(CLR_CMAKE_HOST_ALPINE_LINUX 1) set(CLR_CMAKE_HOST_OS ${CLR_CMAKE_LINUX_ID}) + elseif(CLR_CMAKE_LINUX_ID STREQUAL android) + set(CLR_CMAKE_HOST_ANDROID 1) + set(CLR_CMAKE_HOST_OS ${CLR_CMAKE_LINUX_ID}) endif() endif(DEFINED CLR_CMAKE_LINUX_ID) -endif(CMAKE_SYSTEM_NAME STREQUAL Linux) +endif(CLR_CMAKE_HOST_OS STREQUAL Linux) -if(CMAKE_SYSTEM_NAME STREQUAL Darwin) - set(CLR_CMAKE_HOST_UNIX 1) - set(CLR_CMAKE_HOST_UNIX_AMD64 1) - set(CLR_CMAKE_HOST_DARWIN 1) - set(CMAKE_ASM_COMPILE_OBJECT "${CMAKE_C_COMPILER} -o -c ") -endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - -if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) - set(CLR_CMAKE_HOST_UNIX 1) - set(CLR_CMAKE_HOST_UNIX_AMD64 1) - set(CLR_CMAKE_HOST_FREEBSD 1) -endif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) +if(CLR_CMAKE_HOST_OS STREQUAL Darwin) + set(CLR_CMAKE_HOST_UNIX 1) + set(CLR_CMAKE_HOST_UNIX_AMD64 1) + set(CLR_CMAKE_HOST_DARWIN 1) + set(CMAKE_ASM_COMPILE_OBJECT "${CMAKE_C_COMPILER} -o -c ") +endif(CLR_CMAKE_HOST_OS STREQUAL Darwin) -if(CMAKE_SYSTEM_NAME STREQUAL OpenBSD) - set(CLR_CMAKE_HOST_UNIX 1) - set(CLR_CMAKE_HOST_UNIX_AMD64 1) - set(CLR_CMAKE_HOST_OPENBSD 1) -endif(CMAKE_SYSTEM_NAME STREQUAL OpenBSD) +if(CLR_CMAKE_HOST_OS STREQUAL FreeBSD) + set(CLR_CMAKE_HOST_UNIX 1) + set(CLR_CMAKE_HOST_UNIX_AMD64 1) + set(CLR_CMAKE_HOST_FREEBSD 1) +endif(CLR_CMAKE_HOST_OS STREQUAL FreeBSD) -if(CMAKE_SYSTEM_NAME STREQUAL NetBSD) - set(CLR_CMAKE_HOST_UNIX 1) - set(CLR_CMAKE_HOST_UNIX_AMD64 1) - set(CLR_CMAKE_HOST_NETBSD 1) -endif(CMAKE_SYSTEM_NAME STREQUAL NetBSD) +if(CLR_CMAKE_HOST_OS STREQUAL OpenBSD) + set(CLR_CMAKE_HOST_UNIX 1) + set(CLR_CMAKE_HOST_UNIX_AMD64 1) + set(CLR_CMAKE_HOST_OPENBSD 1) +endif(CLR_CMAKE_HOST_OS STREQUAL OpenBSD) -if(CMAKE_SYSTEM_NAME STREQUAL SunOS) - set(CLR_CMAKE_HOST_UNIX 1) - EXECUTE_PROCESS( - COMMAND isainfo -n - OUTPUT_VARIABLE SUNOS_NATIVE_INSTRUCTION_SET - ) - if(SUNOS_NATIVE_INSTRUCTION_SET MATCHES "amd64") +if(CLR_CMAKE_HOST_OS STREQUAL NetBSD) + set(CLR_CMAKE_HOST_UNIX 1) set(CLR_CMAKE_HOST_UNIX_AMD64 1) - set(CMAKE_SYSTEM_PROCESSOR "amd64") - else() - clr_unknown_arch() - endif() - set(CLR_CMAKE_HOST_SUNOS 1) -endif(CMAKE_SYSTEM_NAME STREQUAL SunOS) + set(CLR_CMAKE_HOST_NETBSD 1) +endif(CLR_CMAKE_HOST_OS STREQUAL NetBSD) -if(CMAKE_SYSTEM_NAME STREQUAL Windows) - set(CLR_CMAKE_HOST_OS Windows_NT) -endif(CMAKE_SYSTEM_NAME STREQUAL Windows) +if(CLR_CMAKE_HOST_OS STREQUAL SunOS) + set(CLR_CMAKE_HOST_UNIX 1) + EXECUTE_PROCESS( + COMMAND isainfo -n + OUTPUT_VARIABLE SUNOS_NATIVE_INSTRUCTION_SET) + if(SUNOS_NATIVE_INSTRUCTION_SET MATCHES "amd64") + set(CLR_CMAKE_HOST_UNIX_AMD64 1) + set(CMAKE_SYSTEM_PROCESSOR "amd64") + else() + clr_unknown_arch() + endif() + + set(CLR_CMAKE_HOST_SUNOS 1) +endif(CLR_CMAKE_HOST_OS STREQUAL SunOS) + +if(CLR_CMAKE_HOST_OS STREQUAL Windows) + set(CLR_CMAKE_HOST_OS Windows_NT) + set(CLR_CMAKE_HOST_WIN32 1) +endif(CLR_CMAKE_HOST_OS STREQUAL Windows) + +if(CLR_CMAKE_HOST_OS STREQUAL Emscripten) + set(CLR_CMAKE_HOST_ARCH_WASM 1) +endif(CLR_CMAKE_HOST_OS STREQUAL Emscripten) #-------------------------------------------- # This repo builds two set of binaries @@ -135,6 +136,10 @@ endif(CMAKE_SYSTEM_NAME STREQUAL Windows) if(CLR_CMAKE_HOST_UNIX_ARM) set(CLR_CMAKE_HOST_ARCH_ARM 1) set(CLR_CMAKE_HOST_ARCH "arm") + + if(CLR_CMAKE_HOST_HOST_ARMV7L) + set(CLR_CMAKE_HOST_ARCH_ARMV7L 1) + endif() elseif(CLR_CMAKE_HOST_UNIX_ARM64) set(CLR_CMAKE_HOST_ARCH_ARM64 1) set(CLR_CMAKE_HOST_ARCH "arm64") @@ -206,6 +211,12 @@ if(CLR_CMAKE_TARGET_OS STREQUAL alpine) set(CLR_CMAKE_TARGET_ALPINE_LINUX 1) endif(CLR_CMAKE_TARGET_OS STREQUAL alpine) +if(CLR_CMAKE_TARGET_OS STREQUAL android) + set(CLR_CMAKE_TARGET_UNIX 1) + set(CLR_CMAKE_TARGET_LINUX 1) + set(CLR_CMAKE_TARGET_ANDROID 1) +endif(CLR_CMAKE_TARGET_OS STREQUAL android) + if(CLR_CMAKE_TARGET_OS STREQUAL Darwin) set(CLR_CMAKE_TARGET_UNIX 1) set(CLR_CMAKE_TARGET_DARWIN 1) @@ -267,3 +278,19 @@ else() message(FATAL_ERROR "Invalid host and target os/arch combination. Host Arch: ${CLR_CMAKE_HOST_ARCH} Target Arch: ${CLR_CMAKE_TARGET_ARCH}") endif() endif() + +if(NOT CLR_CMAKE_HOST_ARCH_WASM) + # All code we build should be compiled as position independent + get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) + if("CXX" IN_LIST languages) + set(CLR_PIE_LANGUAGE CXX) + else() + set(CLR_PIE_LANGUAGE C) + endif() + check_pie_supported(OUTPUT_VARIABLE PIE_SUPPORT_OUTPUT LANGUAGES ${CLR_PIE_LANGUAGE}) + if(NOT MSVC AND NOT CMAKE_${CLR_PIE_LANGUAGE}_LINK_PIE_SUPPORTED) + message(WARNING "PIE is not supported at link time: ${PIE_SUPPORT_OUTPUT}.\n" + "PIE link options will not be passed to linker.") + endif() + set(CMAKE_POSITION_INDEPENDENT_CODE ON) +endif(NOT CLR_CMAKE_HOST_ARCH_WASM) diff --git a/src/coreclr/CMakeLists.txt b/src/coreclr/CMakeLists.txt index 49046059eb2bd..5a33d25d6fa4a 100644 --- a/src/coreclr/CMakeLists.txt +++ b/src/coreclr/CMakeLists.txt @@ -5,13 +5,15 @@ cmake_policy(SET CMP0042 NEW) # Set the project name project(CoreCLR) +include(${CLR_ENG_NATIVE_DIR}/configureplatform.cmake) + # Include cmake functions include(${CLR_ENG_NATIVE_DIR}/functions.cmake) -if (WIN32) +if (CLR_CMAKE_HOST_WIN32) message(STATUS "VS_PLATFORM_TOOLSET is ${CMAKE_VS_PLATFORM_TOOLSET}") message(STATUS "VS_PLATFORM_NAME is ${CMAKE_VS_PLATFORM_NAME}") -endif (WIN32) +endif (CLR_CMAKE_HOST_WIN32) # Set commonly used directory names set(CLR_DIR ${CMAKE_CURRENT_SOURCE_DIR}) @@ -34,8 +36,8 @@ OPTION(CLR_CMAKE_ENABLE_CODE_COVERAGE "Enable code coverage" OFF) OPTION(CLR_CMAKE_WARNINGS_ARE_ERRORS "Warnings are errors" ON) # Ensure other tools are present -if (WIN32) - if(CLR_CMAKE_HOST_ARCH STREQUAL arm) +if (CLR_CMAKE_HOST_WIN32) + if(CLR_CMAKE_HOST_ARCH_ARM) # Confirm that Windows SDK is present if(NOT DEFINED CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION OR CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION STREQUAL "" ) @@ -53,7 +55,7 @@ if (WIN32) # Enable generic assembly compilation to avoid CMake generate VS proj files that explicitly # use ml[64].exe as the assembler. enable_language(ASM) - elseif(CLR_CMAKE_HOST_ARCH STREQUAL arm64) + elseif(CLR_CMAKE_HOST_ARCH_ARM64) # Confirm that Windows SDK is present if(NOT DEFINED CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION OR CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION STREQUAL "" ) @@ -81,7 +83,7 @@ if (WIN32) message(FATAL_ERROR "MC not found") endif() -else (WIN32) +else (CLR_CMAKE_HOST_WIN32) enable_language(ASM) # Ensure that awk is present @@ -95,7 +97,7 @@ else (WIN32) # to prevent applications to create executable memory mappings. find_program(PAXCTL paxctl) - if (CMAKE_SYSTEM_NAME STREQUAL Darwin) + if (CLR_CMAKE_HOST_DARWIN) # Ensure that dsymutil and strip are present find_program(DSYMUTIL dsymutil) @@ -109,7 +111,7 @@ else (WIN32) endif() endif() -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) #---------------------------------------------------- # Configure compiler settings for environment @@ -146,7 +148,7 @@ add_subdirectory(src/pal/prebuilt/inc) add_subdirectory(src/debug/debug-pal) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_subdirectory(src/gc/sample) endif() @@ -155,10 +157,10 @@ add_subdirectory(src/tools/crossgen2/jitinterface) # Above projects do not build with these compile options # All of the compiler options are specified in file compileoptions.cmake # Do not add any new options here. They should be added in compileoptions.cmake -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) add_compile_options(/FIWarningControl.h) # force include of WarningControl.h add_compile_options(/Zl) # omit default library name in .OBJ -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) #-------------------------------- # Definition directives diff --git a/src/coreclr/clrdefinitions.cmake b/src/coreclr/clrdefinitions.cmake index d926f9724a22e..e0126139f0f94 100644 --- a/src/coreclr/clrdefinitions.cmake +++ b/src/coreclr/clrdefinitions.cmake @@ -6,7 +6,7 @@ set(PRERELEASE 1) # Features we're currently flighting, but don't intend to ship in officially supported releases if (PRERELEASE) - add_definitions(-DFEATURE_UTF8STRING) + add_definitions(-DFEATURE_UTF8STRING) # add_definitions(-DFEATURE_XXX) endif (PRERELEASE) @@ -22,11 +22,11 @@ if (CLR_CMAKE_TARGET_ARCH_ARM64) endif() add_definitions(-DFEATURE_MULTIREG_RETURN) elseif (CLR_CMAKE_TARGET_ARCH_ARM) - if (WIN32 AND NOT DEFINED CLR_CROSS_COMPONENTS_BUILD) + if (CLR_CMAKE_HOST_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 (WIN32 AND NOT DEFINED CLR_CROSS_COMPONENTS_BUILD) + endif (CLR_CMAKE_HOST_WIN32 AND NOT DEFINED CLR_CROSS_COMPONENTS_BUILD) add_definitions(-DFEATURE_EMULATE_SINGLESTEP) endif (CLR_CMAKE_TARGET_ARCH_ARM64) @@ -58,14 +58,14 @@ add_definitions(-DDEBUGGING_SUPPORTED) add_compile_definitions($<$>>:PROFILING_SUPPORTED>) add_compile_definitions($<$>:PROFILING_SUPPORTED_DATA>) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) add_definitions(-DWIN32) add_definitions(-D_WIN32) add_definitions(-DWINVER=0x0602) add_definitions(-D_WIN32_WINNT=0x0602) add_definitions(-DWIN32_LEAN_AND_MEAN) add_definitions(-D_CRT_SECURE_NO_WARNINGS) -endif(WIN32) +endif(CLR_CMAKE_HOST_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 @@ -134,9 +134,9 @@ if(CLR_CMAKE_TARGET_UNIX) add_definitions(-DFEATURE_EVENTSOURCE_XPLAT) endif(CLR_CMAKE_TARGET_UNIX) # NetBSD doesn't implement this feature -if(NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) +if(NOT CLR_CMAKE_TARGET_NETBSD) add_definitions(-DFEATURE_HIJACK) -endif(NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) +endif(NOT CLR_CMAKE_TARGET_NETBSD) add_definitions(-DFEATURE_ICASTABLE) 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) diff --git a/src/coreclr/configurecompiler.cmake b/src/coreclr/configurecompiler.cmake index e08eb3c30da9e..36cd285d6a674 100644 --- a/src/coreclr/configurecompiler.cmake +++ b/src/coreclr/configurecompiler.cmake @@ -10,7 +10,6 @@ cmake_policy(SET CMP0083 NEW) include(CheckCXXCompilerFlag) -include(${CLR_ENG_NATIVE_DIR}/configureplatform.cmake) # "configureoptimization.cmake" must be included after CLR_CMAKE_HOST_UNIX has been set. include(${CMAKE_CURRENT_LIST_DIR}/configureoptimization.cmake) @@ -235,14 +234,14 @@ if (CLR_CMAKE_HOST_UNIX) endif(CLR_CMAKE_HOST_NETBSD) endif(CLR_CMAKE_HOST_UNIX) -if (WIN32) +if (CLR_CMAKE_HOST_WIN32) add_definitions(-DHOST_WINDOWS) # Define the CRT lib references that link into Desktop imports set(STATIC_MT_CRT_LIB "libcmt$<$,$>:d>.lib") set(STATIC_MT_VCRT_LIB "libvcruntime$<$,$>:d>.lib") set(STATIC_MT_CPP_LIB "libcpmt$<$,$>:d>.lib") -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) # Architecture specific files folder name if (CLR_CMAKE_TARGET_ARCH_AMD64) diff --git a/src/coreclr/configureoptimization.cmake b/src/coreclr/configureoptimization.cmake index 302788809ea2b..548a8585b11fd 100644 --- a/src/coreclr/configureoptimization.cmake +++ b/src/coreclr/configureoptimization.cmake @@ -1,4 +1,4 @@ -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) add_compile_options($<$:/Od>) add_compile_options($<$:/O1>) add_compile_options($<$:/Ox>) diff --git a/src/coreclr/pgosupport.cmake b/src/coreclr/pgosupport.cmake index ec1b9dcb3aefd..f5a2d2f62d69b 100644 --- a/src/coreclr/pgosupport.cmake +++ b/src/coreclr/pgosupport.cmake @@ -3,36 +3,36 @@ check_ipo_supported(RESULT HAVE_LTO) # Adds Profile Guided Optimization (PGO) flags to the current target function(add_pgo TargetName) - if(WIN32) + if(CLR_CMAKE_HOST_WIN32) set(ProfileFileName "${TargetName}.pgd") - else(WIN32) + else(CLR_CMAKE_HOST_WIN32) set(ProfileFileName "${TargetName}.profdata") - endif(WIN32) - + endif(CLR_CMAKE_HOST_WIN32) + file(TO_NATIVE_PATH "${CLR_CMAKE_OPTDATA_PATH}/data/${ProfileFileName}" ProfilePath ) if(CLR_CMAKE_PGO_INSTRUMENT) - if(WIN32) + if(CLR_CMAKE_HOST_WIN32) set_property(TARGET ${TargetName} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE " /LTCG /GENPROFILE") set_property(TARGET ${TargetName} APPEND_STRING PROPERTY LINK_FLAGS_RELWITHDEBINFO " /LTCG /GENPROFILE") - else(WIN32) + else(CLR_CMAKE_HOST_WIN32) if(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELEASE OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELWITHDEBINFO) target_compile_options(${TargetName} PRIVATE -flto -fprofile-instr-generate) set_property(TARGET ${TargetName} APPEND_STRING PROPERTY LINK_FLAGS " -flto -fuse-ld=gold -fprofile-instr-generate") endif(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELEASE OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELWITHDEBINFO) - endif(WIN32) + endif(CLR_CMAKE_HOST_WIN32) elseif(CLR_CMAKE_PGO_OPTIMIZE) # If we don't have profile data availble, gracefully fall back to a non-PGO opt build if(NOT EXISTS ${ProfilePath}) message("PGO data file NOT found: ${ProfilePath}") else(NOT EXISTS ${ProfilePath}) - if(WIN32) + if(CLR_CMAKE_HOST_WIN32) set_property(TARGET ${TargetName} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE " /LTCG /USEPROFILE:PGD=${ProfilePath}") set_property(TARGET ${TargetName} APPEND_STRING PROPERTY LINK_FLAGS_RELWITHDEBINFO " /LTCG /USEPROFILE:PGD=${ProfilePath}") - else(WIN32) + else(CLR_CMAKE_HOST_WIN32) if(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELEASE OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELWITHDEBINFO) if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.6) if(HAVE_LTO) @@ -45,7 +45,7 @@ function(add_pgo TargetName) message(WARNING "PGO is not supported; Clang 3.6 or later is required for profile guided optimizations") endif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.6) endif(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELEASE OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELWITHDEBINFO) - endif(WIN32) + endif(CLR_CMAKE_HOST_WIN32) endif(NOT EXISTS ${ProfilePath}) endif(CLR_CMAKE_PGO_INSTRUMENT) endfunction(add_pgo) diff --git a/src/coreclr/src/CMakeLists.txt b/src/coreclr/src/CMakeLists.txt index 9babcfdf958ab..d08608b16ebcb 100644 --- a/src/coreclr/src/CMakeLists.txt +++ b/src/coreclr/src/CMakeLists.txt @@ -9,9 +9,9 @@ include_directories("classlibnative/cryptography") include_directories("classlibnative/inc") include_directories("${GENERATED_INCLUDE_DIR}") -if(WIN32 AND FEATURE_EVENT_TRACE) +if(CLR_CMAKE_TARGET_WIN32 AND FEATURE_EVENT_TRACE) include_directories("${GENERATED_INCLUDE_DIR}/etw") -endif(WIN32 AND FEATURE_EVENT_TRACE) +endif(CLR_CMAKE_TARGET_WIN32 AND FEATURE_EVENT_TRACE) if(CLR_CMAKE_HOST_UNIX) @@ -76,6 +76,6 @@ add_subdirectory(ilasm) if(CLR_CMAKE_HOST_UNIX) add_subdirectory(palrt) -elseif(WIN32) +elseif(CLR_CMAKE_HOST_WIN32) add_subdirectory(hosts) endif(CLR_CMAKE_HOST_UNIX) diff --git a/src/coreclr/src/ToolBox/SOS/CMakeLists.txt b/src/coreclr/src/ToolBox/SOS/CMakeLists.txt index e9c1be8c95e86..1fb8efbfe57b2 100644 --- a/src/coreclr/src/ToolBox/SOS/CMakeLists.txt +++ b/src/coreclr/src/ToolBox/SOS/CMakeLists.txt @@ -1,8 +1,8 @@ -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) if (CMAKE_GENERATOR MATCHES "Visual Studio .*") add_subdirectory(DacTableGen) endif() -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) _install(FILES SOS_README.md DESTINATION .) _install(FILES SOS_README.md DESTINATION sharedFramework) diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/CMakeLists.txt b/src/coreclr/src/ToolBox/superpmi/mcs/CMakeLists.txt index 158bef6b34802..ec027ffeca758 100644 --- a/src/coreclr/src/ToolBox/superpmi/mcs/CMakeLists.txt +++ b/src/coreclr/src/ToolBox/superpmi/mcs/CMakeLists.txt @@ -3,10 +3,10 @@ project(mcs) add_definitions(-DFEATURE_NO_HOST) add_definitions(-DSELF_NO_HOST) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) #use static crt add_definitions(-MT) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) include_directories(.) include_directories(../superpmi-shared) diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/CMakeLists.txt b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/CMakeLists.txt index e252b2bc3af95..d435f3b290754 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/CMakeLists.txt +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/CMakeLists.txt @@ -6,10 +6,10 @@ remove_definitions(-D_UNICODE) add_definitions(-DFEATURE_NO_HOST) add_definitions(-DSELF_NO_HOST) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) #use static crt add_definitions(-MT) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) include_directories(.) include_directories(../superpmi-shared) @@ -35,11 +35,11 @@ set(SUPERPMI_SHIM_COLLECTOR_SOURCES ../superpmi-shared/typeutils.cpp ../superpmi-shared/spmidumphelper.cpp ) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) preprocess_file(${CMAKE_CURRENT_SOURCE_DIR}/superpmi-shim-collector.def ${CMAKE_CURRENT_BINARY_DIR}/superpmi-shim-collector.def) list(APPEND SUPERPMI_SHIM_COLLECTOR_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/superpmi-shim-collector.def) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) _add_library(superpmi-shim-collector SHARED diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/CMakeLists.txt b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/CMakeLists.txt index 9e087a62feee5..8bf68a910f2e1 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/CMakeLists.txt +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/CMakeLists.txt @@ -6,10 +6,10 @@ remove_definitions(-D_UNICODE) add_definitions(-DFEATURE_NO_HOST) add_definitions(-DSELF_NO_HOST) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) #use static crt add_definitions(-MT) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) include_directories(.) include_directories(../superpmi-shared) @@ -37,11 +37,11 @@ set(SUPERPMI_SHIM_COUNTER_SOURCES ../superpmi-shared/spmidumphelper.cpp ) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) preprocess_file(${CMAKE_CURRENT_SOURCE_DIR}/superpmi-shim-counter.def ${CMAKE_CURRENT_BINARY_DIR}/superpmi-shim-counter.def) list(APPEND SUPERPMI_SHIM_COUNTER_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/superpmi-shim-counter.def) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) _add_library(superpmi-shim-counter SHARED diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/CMakeLists.txt b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/CMakeLists.txt index f53b41e126ed2..c27dd035fb12d 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/CMakeLists.txt +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/CMakeLists.txt @@ -6,10 +6,10 @@ remove_definitions(-D_UNICODE) add_definitions(-DFEATURE_NO_HOST) add_definitions(-DSELF_NO_HOST) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) #use static crt add_definitions(-MT) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) include_directories(.) include_directories(../superpmi-shared) @@ -36,11 +36,11 @@ set(SUPERPMI_SHIM_SIMPLE_SOURCES ../superpmi-shared/spmidumphelper.cpp ) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) preprocess_file(${CMAKE_CURRENT_SOURCE_DIR}/superpmi-shim-simple.def ${CMAKE_CURRENT_BINARY_DIR}/superpmi-shim-simple.def) list(APPEND SUPERPMI_SHIM_SIMPLE_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/superpmi-shim-simple.def) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) _add_library(superpmi-shim-simple SHARED diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/CMakeLists.txt b/src/coreclr/src/ToolBox/superpmi/superpmi/CMakeLists.txt index e98e74a75187e..1c8b10ba0c552 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi/CMakeLists.txt +++ b/src/coreclr/src/ToolBox/superpmi/superpmi/CMakeLists.txt @@ -7,10 +7,10 @@ add_definitions(-DFEATURE_NO_HOST) add_definitions(-DSELF_NO_HOST) add_definitions(-DUSE_COREDISTOOLS) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) #use static crt add_definitions(-MT) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) include_directories(.) include_directories(../superpmi-shared) diff --git a/src/coreclr/src/binder/CMakeLists.txt b/src/coreclr/src/binder/CMakeLists.txt index 7c2618270cafb..3a66c81e10e84 100644 --- a/src/coreclr/src/binder/CMakeLists.txt +++ b/src/coreclr/src/binder/CMakeLists.txt @@ -74,10 +74,10 @@ set(BINDER_CROSSGEN_HEADERS ${BINDER_COMMON_HEADERS} ) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND BINDER_SOURCES ${BINDER_HEADERS}) list(APPEND BINDER_CROSSGEN_SOURCES ${BINDER_CROSSGEN_HEADERS}) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) convert_to_absolute_path(BINDER_SOURCES ${BINDER_SOURCES}) convert_to_absolute_path(BINDER_CROSSGEN_SOURCES ${BINDER_CROSSGEN_SOURCES}) diff --git a/src/coreclr/src/debug/dbgutil/CMakeLists.txt b/src/coreclr/src/debug/dbgutil/CMakeLists.txt index 6c43b5ca759c9..c432a32cefa3b 100644 --- a/src/coreclr/src/debug/dbgutil/CMakeLists.txt +++ b/src/coreclr/src/debug/dbgutil/CMakeLists.txt @@ -1,7 +1,7 @@ -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) #use static crt add_definitions(-MT) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) set(CMAKE_INCLUDE_CURRENT_DIR ON) diff --git a/src/coreclr/src/debug/debug-pal/CMakeLists.txt b/src/coreclr/src/debug/debug-pal/CMakeLists.txt index 032ff26b7a2c8..b06e46092caba 100644 --- a/src/coreclr/src/debug/debug-pal/CMakeLists.txt +++ b/src/coreclr/src/debug/debug-pal/CMakeLists.txt @@ -4,7 +4,7 @@ include_directories(../../pal/inc) add_definitions(-DPAL_STDCPP_COMPAT) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) add_definitions(-DWIN32_LEAN_AND_MEAN) include_directories(../../inc) #needed for warning control @@ -13,7 +13,7 @@ if(WIN32) win/twowaypipe.cpp win/processdescriptor.cpp ) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) if(CLR_CMAKE_HOST_UNIX) diff --git a/src/coreclr/src/debug/di/CMakeLists.txt b/src/coreclr/src/debug/di/CMakeLists.txt index 08d1d2ee008f5..d600ad3dcd08b 100644 --- a/src/coreclr/src/debug/di/CMakeLists.txt +++ b/src/coreclr/src/debug/di/CMakeLists.txt @@ -48,7 +48,7 @@ set(CORDBDI_HEADERS symbolinfo.h) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) #use static crt add_definitions(-MT) @@ -69,12 +69,12 @@ elseif(CLR_CMAKE_HOST_UNIX) ) endif() -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) convert_to_absolute_path(CORDBDI_HEADERS ${CORDBDI_HEADERS}) list(APPEND CORDBDI_SOURCES ${CORDBDI_HEADERS}) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) list(APPEND CORDBDI_SOURCES ${CORDBDI_SOURCES_ASM_FILE}) diff --git a/src/coreclr/src/debug/ee/CMakeLists.txt b/src/coreclr/src/debug/ee/CMakeLists.txt index a593c3ad2bafc..8a9eda3da3165 100644 --- a/src/coreclr/src/debug/ee/CMakeLists.txt +++ b/src/coreclr/src/debug/ee/CMakeLists.txt @@ -70,10 +70,10 @@ endif() convert_to_absolute_path(CORDBEE_SOURCES_DAC ${CORDBEE_SOURCES_DAC}) convert_to_absolute_path(CORDBEE_SOURCES_WKS ${CORDBEE_SOURCES_WKS}) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) convert_to_absolute_path(CORDBEE_HEADERS_DAC ${CORDBEE_HEADERS_DAC}) convert_to_absolute_path(CORDBEE_HEADERS_WKS ${CORDBEE_HEADERS_WKS}) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) set(CORDBEE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/src/coreclr/src/debug/ee/dac/CMakeLists.txt b/src/coreclr/src/debug/ee/dac/CMakeLists.txt index feb69474a9c7c..ffb05b56bc2b3 100644 --- a/src/coreclr/src/debug/ee/dac/CMakeLists.txt +++ b/src/coreclr/src/debug/ee/dac/CMakeLists.txt @@ -1,7 +1,7 @@ -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND CORDBEE_SOURCES_DAC ${CORDBEE_HEADERS_DAC}) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) add_library_clr(cordbee_dac ${CORDBEE_SOURCES_DAC}) set_target_properties(cordbee_dac PROPERTIES DAC_COMPONENT TRUE) diff --git a/src/coreclr/src/debug/ee/wks/CMakeLists.txt b/src/coreclr/src/debug/ee/wks/CMakeLists.txt index a5ba2490aa54b..ee6c482ce7617 100644 --- a/src/coreclr/src/debug/ee/wks/CMakeLists.txt +++ b/src/coreclr/src/debug/ee/wks/CMakeLists.txt @@ -1,4 +1,4 @@ -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND CORDBEE_SOURCES_WKS ${CORDBEE_HEADERS_WKS}) @@ -35,7 +35,7 @@ else () message(FATAL_ERROR "Unknown platform") endif() -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) target_precompile_header(TARGET cordbee_wks HEADER stdafx.h) add_dependencies(cordbee_wks eventing_headers) diff --git a/src/coreclr/src/debug/ildbsymlib/CMakeLists.txt b/src/coreclr/src/debug/ildbsymlib/CMakeLists.txt index 8fe2ea6bf52df..88364658f110e 100644 --- a/src/coreclr/src/debug/ildbsymlib/CMakeLists.txt +++ b/src/coreclr/src/debug/ildbsymlib/CMakeLists.txt @@ -1,7 +1,7 @@ -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) #use static crt add_definitions(-MT) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) set( ILDBSYMLIB_SOURCES symread.cpp diff --git a/src/coreclr/src/debug/shim/CMakeLists.txt b/src/coreclr/src/debug/shim/CMakeLists.txt index f54e2087e53e3..6517eb73327a4 100644 --- a/src/coreclr/src/debug/shim/CMakeLists.txt +++ b/src/coreclr/src/debug/shim/CMakeLists.txt @@ -1,11 +1,11 @@ -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) #use static crt add_definitions(-MT) add_definitions(-DHOST_WINDOWS) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) set(DEBUGSHIM_SOURCES debugshim.cpp ) -add_library_clr(debugshim STATIC ${DEBUGSHIM_SOURCES}) \ No newline at end of file +add_library_clr(debugshim STATIC ${DEBUGSHIM_SOURCES}) diff --git a/src/coreclr/src/dlls/CMakeLists.txt b/src/coreclr/src/dlls/CMakeLists.txt index 932e65e35015a..6df11d24cd4ef 100644 --- a/src/coreclr/src/dlls/CMakeLists.txt +++ b/src/coreclr/src/dlls/CMakeLists.txt @@ -1,6 +1,6 @@ -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_subdirectory(clretwrc) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) add_subdirectory(dbgshim) add_subdirectory(mscordbi) add_subdirectory(mscordac) diff --git a/src/coreclr/src/dlls/clretwrc/CMakeLists.txt b/src/coreclr/src/dlls/clretwrc/CMakeLists.txt index e1e49a7d8a5a8..771dc494eed51 100644 --- a/src/coreclr/src/dlls/clretwrc/CMakeLists.txt +++ b/src/coreclr/src/dlls/clretwrc/CMakeLists.txt @@ -1,6 +1,6 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) # remove /ltcg from resource-only libraries string(REPLACE "/LTCG" "" CMAKE_SHARED_LINKER_FLAGS_RELEASE ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}) string(REPLACE "/LTCG" "" CMAKE_STATIC_LINKER_FLAGS_RELEASE ${CMAKE_STATIC_LINKER_FLAGS_RELEASE}) @@ -11,7 +11,7 @@ if(WIN32) string(REPLACE "/guard:cf" "" CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS}) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NOENTRY") -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) add_definitions(-DFX_VER_INTERNALNAME_STR=clretwrc.dll) diff --git a/src/coreclr/src/dlls/dbgshim/CMakeLists.txt b/src/coreclr/src/dlls/dbgshim/CMakeLists.txt index aba60bd075700..ea29359e57c50 100644 --- a/src/coreclr/src/dlls/dbgshim/CMakeLists.txt +++ b/src/coreclr/src/dlls/dbgshim/CMakeLists.txt @@ -7,22 +7,24 @@ set(DBGSHIM_SOURCES dbgshim.cpp ) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) # Use static crt add_definitions(-MT) add_definitions(-DFX_VER_INTERNALNAME_STR=dbgshim.dll) +endif(CLR_CMAKE_HOST_WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND DBGSHIM_SOURCES dbgshim.rc ) preprocess_file(${CMAKE_CURRENT_SOURCE_DIR}/dbgshim.ntdef ${CMAKE_CURRENT_BINARY_DIR}/dbgshim.def) list(APPEND DBGSHIM_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/dbgshim.def) -else(WIN32) +else(CLR_CMAKE_TARGET_WIN32) set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/dbgshim_unixexports.src) set(EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/dbgshim.exports) generate_exports_file(${DEF_SOURCES} ${EXPORTS_FILE}) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD) # This option is necessary to ensure that the overloaded delete operator defined inside @@ -56,7 +58,7 @@ set(DBGSHIM_LIBRARIES utilcodestaticnohost ) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) list(APPEND DBGSHIM_LIBRARIES kernel32.lib ${STATIC_MT_CRT_LIB} @@ -76,7 +78,7 @@ else() mscorrc_debug palrt ) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) target_link_libraries(dbgshim ${DBGSHIM_LIBRARIES}) diff --git a/src/coreclr/src/dlls/mscordac/CMakeLists.txt b/src/coreclr/src/dlls/mscordac/CMakeLists.txt index 544661f2890da..ba45564b05296 100644 --- a/src/coreclr/src/dlls/mscordac/CMakeLists.txt +++ b/src/coreclr/src/dlls/mscordac/CMakeLists.txt @@ -5,7 +5,7 @@ set(CLR_DAC_SOURCES add_definitions(-DFX_VER_INTERNALNAME_STR=mscordaccore.dll) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND CLR_DAC_SOURCES Native.rc ) @@ -24,7 +24,7 @@ if(WIN32) # No library groups for Win32 set(START_LIBRARY_GROUP) set(END_LIBRARY_GROUP) -else(WIN32) +else(CLR_CMAKE_TARGET_WIN32) set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/mscordac_unixexports.src) set(EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/mscordac.exports) @@ -71,7 +71,7 @@ else(WIN32) # Add lib redefines file to DAC list(APPEND CLR_DAC_SOURCES libredefines.S) endif(CLR_CMAKE_HOST_LINUX) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD) # This option is necessary to ensure that the overloaded delete operator defined inside @@ -135,7 +135,7 @@ set(COREDAC_LIBRARIES ${END_LIBRARY_GROUP} # End group of libraries that have circular references ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) # mscordac.def should be generated before mscordaccore.dll is built add_dependencies(mscordaccore mscordaccore_def) @@ -170,7 +170,7 @@ if(WIN32) ${STATIC_MT_CRT_LIB} ${STATIC_MT_VCRT_LIB} ) -else(WIN32) +else(CLR_CMAKE_TARGET_WIN32) list(APPEND COREDAC_LIBRARIES mscorrc_debug ${START_WHOLE_ARCHIVE} # force all PAL objects to be included so all exports are available @@ -178,7 +178,7 @@ else(WIN32) palrt ${END_WHOLE_ARCHIVE} ) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) target_link_libraries(mscordaccore PRIVATE ${COREDAC_LIBRARIES}) @@ -186,7 +186,7 @@ target_link_libraries(mscordaccore PRIVATE ${COREDAC_LIBRARIES}) install_clr(TARGETS mscordaccore) install_clr(TARGETS mscordaccore DESTINATION sharedFramework SKIP_STRIP) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) set(LONG_NAME_HOST_ARCH ${CLR_CMAKE_HOST_ARCH}) set(LONG_NAME_TARGET_ARCH ${CLR_CMAKE_TARGET_ARCH}) if (LONG_NAME_HOST_ARCH STREQUAL x64) diff --git a/src/coreclr/src/dlls/mscordbi/CMakeLists.txt b/src/coreclr/src/dlls/mscordbi/CMakeLists.txt index 613e526972e4c..304d7761e618b 100644 --- a/src/coreclr/src/dlls/mscordbi/CMakeLists.txt +++ b/src/coreclr/src/dlls/mscordbi/CMakeLists.txt @@ -19,7 +19,7 @@ if(CLR_CMAKE_HOST_LINUX) list(APPEND MSCORDBI_SOURCES ${PAL_REDEFINES_FILE}) endif(CLR_CMAKE_HOST_LINUX) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_definitions(-DFX_VER_INTERNALNAME_STR=mscordbi.dll) list(APPEND MSCORDBI_SOURCES @@ -35,11 +35,11 @@ if(WIN32) preprocess_file(${DEF_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/mscordbi.def) list(APPEND MSCORDBI_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/mscordbi.def) -else(WIN32) +else(CLR_CMAKE_TARGET_WIN32) set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/mscordbi_unixexports.src) set(EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/mscordbi.exports) generate_exports_file(${DEF_SOURCES} ${EXPORTS_FILE}) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD) # This option is necessary to ensure that the overloaded new/delete operators defined inside @@ -78,7 +78,7 @@ set(COREDBI_LIBRARIES corguids ) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) list(APPEND COREDBI_LIBRARIES mdhotdata-staticcrt mdwinmd_dbi @@ -115,7 +115,7 @@ elseif(CLR_CMAKE_HOST_UNIX) add_dependencies(mscordbi pal_redefines_file) endif(CLR_CMAKE_HOST_LINUX) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) # add the install targets install_clr(TARGETS mscordbi) diff --git a/src/coreclr/src/dlls/mscoree/CMakeLists.txt b/src/coreclr/src/dlls/mscoree/CMakeLists.txt index dc5d2c86c6b9a..4571b196aaa94 100644 --- a/src/coreclr/src/dlls/mscoree/CMakeLists.txt +++ b/src/coreclr/src/dlls/mscoree/CMakeLists.txt @@ -9,7 +9,7 @@ set(CLR_SOURCES unixinterface.cpp ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND CLR_SOURCES delayloadhook.cpp Native.rc @@ -27,7 +27,7 @@ if(FEATURE_GDBJIT) gdbjit_unixexports.src ) endif(FEATURE_GDBJIT) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) convert_to_absolute_path(DEF_SOURCES ${DEF_SOURCES}) convert_to_absolute_path(CLR_SOURCES ${CLR_SOURCES}) diff --git a/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt b/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt index ca9d8cd835beb..0745ad4ad22f7 100644 --- a/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt +++ b/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt @@ -1,4 +1,10 @@ -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) + preprocess_file(${DEF_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/coreclr.def) + + list(APPEND CLR_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/coreclr.def) +endif (CLR_CMAKE_TARGET_WIN32) + +if (CLR_CMAKE_HOST_WIN32) preprocess_file(${DEF_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/coreclr.def) list(APPEND CLR_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/coreclr.def) @@ -22,11 +28,11 @@ if (WIN32) set(START_LIBRARY_GROUP) set(END_LIBRARY_GROUP) -else() +else(CLR_CMAKE_HOST_WIN32) set(EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/coreclr.exports) generate_exports_file(${DEF_SOURCES} ${EXPORTS_FILE}) - if(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL NetBSD) + if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD) # This option is necessary to ensure that the overloaded delete operator defined inside # of the utilcode will be used instead of the standard library delete operator. add_link_options("LINKER:-Bsymbolic,-Bsymbolic-functions") @@ -41,17 +47,17 @@ else() set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive) set(EXPORTS_LINKER_OPTION -Wl,--version-script=${EXPORTS_FILE}) - endif(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL NetBSD) + endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD) - if(CMAKE_SYSTEM_NAME STREQUAL Darwin) + if(CLR_CMAKE_TARGET_DARWIN) # These options are used to force every object to be included even if it's unused. set(START_WHOLE_ARCHIVE -force_load) set(END_WHOLE_ARCHIVE ) set(EXPORTS_LINKER_OPTION -Wl,-exported_symbols_list,${EXPORTS_FILE}) - endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) + endif(CLR_CMAKE_TARGET_DARWIN) -endif (WIN32) +endif (CLR_CMAKE_HOST_WIN32) add_definitions(-DFX_VER_INTERNALNAME_STR=CoreCLR.dll) @@ -100,7 +106,7 @@ set(CORECLR_LIBRARIES v3binder ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND CORECLR_LIBRARIES ${STATIC_MT_CRT_LIB} ${STATIC_MT_VCRT_LIB} @@ -125,15 +131,15 @@ else() palrt System.Globalization.Native-Static ) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) -if(CMAKE_SYSTEM_NAME STREQUAL Linux) +if(CLR_CMAKE_TARGET_LINUX) list(APPEND CORECLR_LIBRARIES ${START_WHOLE_ARCHIVE} tracepointprovider ${END_WHOLE_ARCHIVE} ) -endif(CMAKE_SYSTEM_NAME STREQUAL Linux) +endif(CLR_CMAKE_TARGET_LINUX) if(FEATURE_PERFTRACING) list(APPEND CORECLR_LIBRARIES @@ -151,7 +157,7 @@ endif(FEATURE_EVENT_TRACE) target_link_libraries(coreclr ${CORECLR_LIBRARIES}) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) if (NOT CMAKE_GENERATOR MATCHES "Visual Studio .*") add_custom_target(inject_debug_resources ALL COMMAND UNABLE_TO_EMBED_DAC_ON_WINDOWS_NON_VS_GENERATOR) add_dependencies(inject_debug_resources coreclr mscordaccore mscordbi) @@ -197,7 +203,7 @@ if(WIN32) endif() endif() -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) # add the install targets install_clr(TARGETS coreclr) diff --git a/src/coreclr/src/dlls/mscorrc/CMakeLists.txt b/src/coreclr/src/dlls/mscorrc/CMakeLists.txt index 366ace4631055..c6b3da5405ea6 100644 --- a/src/coreclr/src/dlls/mscorrc/CMakeLists.txt +++ b/src/coreclr/src/dlls/mscorrc/CMakeLists.txt @@ -1,5 +1,5 @@ include_directories("../../pal/prebuilt/corerror") -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NOENTRY") # remove /ltcg from resource-only libraries string(REPLACE "/LTCG" "" CMAKE_SHARED_LINKER_FLAGS_RELEASE ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}) @@ -7,12 +7,12 @@ if(WIN32) # remove /guard:cf from resource-only libraries string(REPLACE "/guard:cf" "" CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS}) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) add_subdirectory(full) # Only add the small version of the resources if the platform is Windows. -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_subdirectory(small) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) diff --git a/src/coreclr/src/dlls/mscorrc/full/CMakeLists.txt b/src/coreclr/src/dlls/mscorrc/full/CMakeLists.txt index b23311dd9ec48..5414e790146b5 100644 --- a/src/coreclr/src/dlls/mscorrc/full/CMakeLists.txt +++ b/src/coreclr/src/dlls/mscorrc/full/CMakeLists.txt @@ -1,6 +1,6 @@ add_definitions(-DFX_VER_INTERNALNAME_STR=mscorrc.debug.dll) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_library_clr(mscorrc.debug SHARED ../include.rc @@ -16,5 +16,5 @@ else() ${TARGET_CPP_FILE} ) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) diff --git a/src/coreclr/src/gc/CMakeLists.txt b/src/coreclr/src/gc/CMakeLists.txt index 9735808084c0e..8836339cc217e 100644 --- a/src/coreclr/src/gc/CMakeLists.txt +++ b/src/coreclr/src/gc/CMakeLists.txt @@ -39,7 +39,7 @@ else() windows/gcenv.windows.cpp) endif(CLR_CMAKE_HOST_UNIX) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) set(GC_HEADERS env/common.h env/etmdummy.h @@ -75,9 +75,9 @@ if (WIN32) handletablepriv.h objecthandle.h softwarewritewatch.h) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) set (GC_LINK_LIBRARIES ${STATIC_MT_CRT_LIB} ${STATIC_MT_VCRT_LIB} @@ -85,7 +85,7 @@ if(WIN32) advapi32.lib) else() set (GC_LINK_LIBRARIES) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) list(APPEND GC_SOURCES ${GC_HEADERS}) diff --git a/src/coreclr/src/gc/sample/CMakeLists.txt b/src/coreclr/src/gc/sample/CMakeLists.txt index 7dbb0540d1af9..059c5e768b2bb 100644 --- a/src/coreclr/src/gc/sample/CMakeLists.txt +++ b/src/coreclr/src/gc/sample/CMakeLists.txt @@ -24,15 +24,15 @@ set(SOURCES ../softwarewritewatch.cpp ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) set (GC_LINK_LIBRARIES ${STATIC_MT_CRT_LIB} ${STATIC_MT_VCRT_LIB} kernel32.lib advapi32.lib) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES ../windows/gcenv.windows.cpp) add_definitions(-DUNICODE) @@ -45,6 +45,6 @@ _add_executable(gcsample ${SOURCES} ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) target_link_libraries(gcsample ${GC_LINK_LIBRARIES}) endif() diff --git a/src/coreclr/src/gcinfo/CMakeLists.txt b/src/coreclr/src/gcinfo/CMakeLists.txt index e206558121b2b..b0b6746256246 100644 --- a/src/coreclr/src/gcinfo/CMakeLists.txt +++ b/src/coreclr/src/gcinfo/CMakeLists.txt @@ -34,7 +34,7 @@ if (CLR_CMAKE_HOST_ARCH_I386) add_subdirectory(gcinfo_arm) endif () -if (CLR_CMAKE_HOST_ARCH_I386 AND WIN32) +if (CLR_CMAKE_HOST_ARCH_I386 AND CLR_CMAKE_TARGET_WIN32) # On x86, build Linux x86 cross-compiling altjit. add_subdirectory(gcinfo_linuxx86) endif () diff --git a/src/coreclr/src/hosts/CMakeLists.txt b/src/coreclr/src/hosts/CMakeLists.txt index 0788469fe5ddd..fed5a0f81c0a5 100644 --- a/src/coreclr/src/hosts/CMakeLists.txt +++ b/src/coreclr/src/hosts/CMakeLists.txt @@ -1,14 +1,14 @@ include_directories(inc) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_subdirectory(corerun) add_subdirectory(coreconsole) add_subdirectory(coreshim) -else(WIN32) +else(CLR_CMAKE_TARGET_WIN32) add_subdirectory(unixcoreruncommon) add_subdirectory(unixcorerun) add_subdirectory(unixcoreconsole) if(CLR_CMAKE_HOST_DARWIN) add_subdirectory(osxbundlerun) endif(CLR_CMAKE_HOST_DARWIN) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) diff --git a/src/coreclr/src/hosts/unixcoreconsole/CMakeLists.txt b/src/coreclr/src/hosts/unixcoreconsole/CMakeLists.txt index d2f2c2ebb509c..e62ea0a1f49a6 100644 --- a/src/coreclr/src/hosts/unixcoreconsole/CMakeLists.txt +++ b/src/coreclr/src/hosts/unixcoreconsole/CMakeLists.txt @@ -11,11 +11,11 @@ _add_executable(coreconsole ) # FreeBSD and NetBSD implement dlopen(3) in libc -if(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) +if(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) target_link_libraries(coreconsole dl ) -endif(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) +endif(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) # Libc turns locks into no-ops if pthread was not loaded into process yet. Loading # pthread by the process executable ensures that all locks are initialized properly. @@ -23,7 +23,7 @@ target_link_libraries(coreconsole unixcoreruncommon ) -if(NOT CLR_CMAKE_HOST_ANDROID) +if(NOT CLR_CMAKE_TARGET_ANDROID) target_link_libraries(coreconsole pthread ) diff --git a/src/coreclr/src/hosts/unixcorerun/CMakeLists.txt b/src/coreclr/src/hosts/unixcorerun/CMakeLists.txt index ed253da29bafc..53d9e526f3d82 100644 --- a/src/coreclr/src/hosts/unixcorerun/CMakeLists.txt +++ b/src/coreclr/src/hosts/unixcorerun/CMakeLists.txt @@ -11,11 +11,11 @@ _add_executable(corerun ) # FreeBSD and NetBSD implement dlopen(3) in libc -if(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) +if(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) target_link_libraries(corerun dl ) -endif(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) +endif(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) # Libc turns locks into no-ops if pthread was not loaded into process yet. Loading # pthread by the process executable ensures that all locks are initialized properly. @@ -24,7 +24,7 @@ target_link_libraries(corerun ) # Android implements pthread natively -if(NOT CLR_CMAKE_HOST_ANDROID) +if(NOT CLR_CMAKE_TARGET_ANDROID) target_link_libraries(corerun pthread ) diff --git a/src/coreclr/src/ilasm/CMakeLists.txt b/src/coreclr/src/ilasm/CMakeLists.txt index 7122988f06e82..12a087d0fbb24 100644 --- a/src/coreclr/src/ilasm/CMakeLists.txt +++ b/src/coreclr/src/ilasm/CMakeLists.txt @@ -34,12 +34,12 @@ set(ILASM_HEADERS typar.hpp ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND ILASM_SOURCES ${ILASM_HEADERS}) set(ILASM_RESOURCES Native.rc) add_definitions(-DFX_VER_INTERNALNAME_STR=ilasm.exe) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_HOST_UNIX) @@ -83,7 +83,7 @@ set(ILASM_LINK_LIBRARIES corguids ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND ILASM_LINK_LIBRARIES ${STATIC_MT_CRT_LIB} ${STATIC_MT_VCRT_LIB} @@ -105,7 +105,7 @@ else() mscorrc_debug palrt ) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_HOST_UNIX) @@ -118,11 +118,11 @@ if(CLR_CMAKE_HOST_UNIX) ) # FreeBSD and NetBSD implement dlopen(3) in libc - if(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) + if(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) target_link_libraries(ilasm dl ) - endif(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) + endif(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) else() target_link_libraries(ilasm ${ILASM_LINK_LIBRARIES} diff --git a/src/coreclr/src/ildasm/exe/CMakeLists.txt b/src/coreclr/src/ildasm/exe/CMakeLists.txt index c69e970975f33..572b07abedd18 100644 --- a/src/coreclr/src/ildasm/exe/CMakeLists.txt +++ b/src/coreclr/src/ildasm/exe/CMakeLists.txt @@ -43,9 +43,9 @@ set(ILDASM_HEADERS ../util.hpp ) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND ILDASM_SOURCES ${ILDASM_HEADERS}) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD) # This option is necessary to ensure that the overloaded delete operator defined inside @@ -75,7 +75,7 @@ set(ILDASM_LINK_LIBRARIES corguids ) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) list(APPEND ILDASM_LINK_LIBRARIES ${STATIC_MT_CRT_LIB} ${STATIC_MT_VCRT_LIB} @@ -97,7 +97,7 @@ else() mscorrc_debug palrt ) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) if(CLR_CMAKE_HOST_UNIX) target_link_libraries(ildasm @@ -108,11 +108,11 @@ if(CLR_CMAKE_HOST_UNIX) ) # FreeBSD and NetBSD implement dlopen(3) in libc - if(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) + if(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) target_link_libraries(ildasm dl ) - endif(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) + endif(NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) else() target_link_libraries(ildasm ${ILDASM_LINK_LIBRARIES} diff --git a/src/coreclr/src/inc/CMakeLists.txt b/src/coreclr/src/inc/CMakeLists.txt index cedbef34be1a7..60fad88e77dd2 100644 --- a/src/coreclr/src/inc/CMakeLists.txt +++ b/src/coreclr/src/inc/CMakeLists.txt @@ -12,46 +12,46 @@ set( CORGUIDS_IDL_SOURCES sospriv.idl ) -if(WIN32) -#Build for corguids is done in two steps: -#1. compile .idl to *_i.c : This is done using custom midl command -#2. compile *_i.c to .lib +if(CLR_CMAKE_HOST_WIN32) + #Build for corguids is done in two steps: + #1. compile .idl to *_i.c : This is done using custom midl command + #2. compile *_i.c to .lib -# Get the current list of definitions to pass to midl -get_compile_definitions(MIDL_DEFINITIONS) -get_include_directories(MIDL_INCLUDE_DIRECTORIES) + # Get the current list of definitions to pass to midl + get_compile_definitions(MIDL_DEFINITIONS) + get_include_directories(MIDL_INCLUDE_DIRECTORIES) -# Run custom midl command over each idl file -FIND_PROGRAM( MIDL midl.exe ) -foreach(GENERATE_IDL IN LISTS CORGUIDS_IDL_SOURCES) - get_filename_component(IDLNAME ${GENERATE_IDL} NAME_WE) - set(OUT_NAME ${CMAKE_CURRENT_BINARY_DIR}/idls_out/${IDLNAME}_i.c) - list(APPEND CORGUIDS_SOURCES ${OUT_NAME}) - add_custom_command(OUTPUT ${OUT_NAME} + # Run custom midl command over each idl file + FIND_PROGRAM( MIDL midl.exe ) + foreach(GENERATE_IDL IN LISTS CORGUIDS_IDL_SOURCES) + get_filename_component(IDLNAME ${GENERATE_IDL} NAME_WE) + set(OUT_NAME ${CMAKE_CURRENT_BINARY_DIR}/idls_out/${IDLNAME}_i.c) + list(APPEND CORGUIDS_SOURCES ${OUT_NAME}) + add_custom_command(OUTPUT ${OUT_NAME} COMMAND ${MIDL} ${MIDL_INCLUDE_DIRECTORIES} /h ${CMAKE_CURRENT_BINARY_DIR}/idls_out/${IDLNAME}.h ${MIDL_DEFINITIONS} /out ${CMAKE_CURRENT_BINARY_DIR}/idls_out ${CMAKE_CURRENT_SOURCE_DIR}/${GENERATE_IDL} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${GENERATE_IDL} COMMENT "Compiling ${GENERATE_IDL}") -endforeach(GENERATE_IDL) + endforeach(GENERATE_IDL) -set_source_files_properties(${CORGUIDS_SOURCES} + set_source_files_properties(${CORGUIDS_SOURCES} PROPERTIES GENERATED TRUE) -# Compile *_i.c as C files -add_compile_options(/TC) + # Compile *_i.c as C files + add_compile_options(/TC) -else() +else(CLR_CMAKE_HOST_WIN32) -#The MIDL tool exists for Windows only, so for other systems, we have the prebuilt xxx_i.cpp files checked in + #The MIDL tool exists for Windows only, so for other systems, we have the prebuilt xxx_i.cpp files checked in -add_compile_options(-D_MIDL_USE_GUIDDEF_) -foreach(IDL_SOURCE IN LISTS CORGUIDS_IDL_SOURCES) - get_filename_component(IDLNAME ${IDL_SOURCE} NAME_WE) - set(C_SOURCE ../pal/prebuilt/idl/${IDLNAME}_i.cpp) - list(APPEND CORGUIDS_SOURCES ${C_SOURCE}) -endforeach(IDL_SOURCE) + add_compile_options(-D_MIDL_USE_GUIDDEF_) + foreach(IDL_SOURCE IN LISTS CORGUIDS_IDL_SOURCES) + get_filename_component(IDLNAME ${IDL_SOURCE} NAME_WE) + set(C_SOURCE ../pal/prebuilt/idl/${IDLNAME}_i.cpp) + list(APPEND CORGUIDS_SOURCES ${C_SOURCE}) + endforeach(IDL_SOURCE) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) if(FEATURE_JIT_PITCHING) add_definitions(-DFEATURE_JIT_PITCHING) diff --git a/src/coreclr/src/jit/CMakeLists.txt b/src/coreclr/src/jit/CMakeLists.txt index 326851d7f2402..bc91b7b568322 100644 --- a/src/coreclr/src/jit/CMakeLists.txt +++ b/src/coreclr/src/jit/CMakeLists.txt @@ -18,9 +18,9 @@ endif () # JIT_BUILD disables certain PAL_TRY debugging features add_definitions(-DJIT_BUILD) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) set(JIT_RESOURCES Native.rc) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) set( JIT_SOURCES alloc.cpp @@ -89,7 +89,7 @@ set( JIT_SOURCES # Add header files to Visual Studio vcxproj, not required for unixes # change has effect on editor experience and has no impact on build -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) set( JIT_HEADERS ../inc/corinfo.h ../inc/corjit.h @@ -210,7 +210,7 @@ if (WIN32) hwintrinsic.h instrsxarch.h) endif () -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) # Define all the architecture-specific source files @@ -297,7 +297,7 @@ convert_to_absolute_path(JIT_I386_SOURCES ${JIT_I386_SOURCES}) convert_to_absolute_path(JIT_ARM64_SOURCES ${JIT_ARM64_SOURCES}) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) set(CLRJIT_EXPORTS ${CMAKE_CURRENT_LIST_DIR}/ClrJit.exports) set(JIT_EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/ClrJit.exports.def) preprocess_file (${CLRJIT_EXPORTS} ${JIT_EXPORTS_FILE}) @@ -309,12 +309,12 @@ else() set(JIT_EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/clrjit.exports) generate_exports_file(${CLRJIT_EXPORTS} ${JIT_EXPORTS_FILE}) - if(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL NetBSD) + if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD) # This is required to force using our own PAL, not one that we are loaded with. set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic -Bsymbolic-functions") set(JIT_EXPORTS_LINKER_OPTION -Wl,--version-script=${JIT_EXPORTS_FILE}) - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) + elseif(CLR_CMAKE_TARGET_DARWIN) set(JIT_EXPORTS_LINKER_OPTION -Wl,-exported_symbols_list,${JIT_EXPORTS_FILE}) endif() @@ -357,9 +357,9 @@ endif(CLR_CMAKE_HOST_UNIX) # Shared function for generating JIT function(add_jit jitName) - if(WIN32) + if(CLR_CMAKE_TARGET_WIN32) add_definitions(-DFX_VER_INTERNALNAME_STR=${jitName}.dll) - endif(WIN32) + endif(CLR_CMAKE_TARGET_WIN32) set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE) @@ -406,7 +406,7 @@ if (CLR_CMAKE_HOST_ARCH_I386) add_subdirectory(armelnonjit) endif () -if ((CLR_CMAKE_HOST_ARCH_I386 OR CLR_CMAKE_HOST_ARCH_AMD64) AND WIN32) +if ((CLR_CMAKE_HOST_ARCH_I386 OR CLR_CMAKE_HOST_ARCH_AMD64) AND CLR_CMAKE_TARGET_WIN32) # On Windows, build altjit that targets the Linux ABI: # On x86, build Linux/x86 altjit. This enables UNIX_X86_ABI. # On amd64, build Linux/AMD64 altjit. This enables UNIX_AMD64_ABI. diff --git a/src/coreclr/src/jit/armelnonjit/CMakeLists.txt b/src/coreclr/src/jit/armelnonjit/CMakeLists.txt index cc690b6840a79..9a9995a7af724 100644 --- a/src/coreclr/src/jit/armelnonjit/CMakeLists.txt +++ b/src/coreclr/src/jit/armelnonjit/CMakeLists.txt @@ -28,7 +28,7 @@ else() clr_unknown_arch() endif() -if (NOT WIN32) +if (NOT CLR_CMAKE_HOST_WIN32) if (CLR_CMAKE_HOST_ARCH_I386) remove_definitions(-DUNIX_X86_ABI) elseif(CLR_CMAKE_HOST_ARCH_AMD64) @@ -36,6 +36,6 @@ if (NOT WIN32) else() clr_unknown_arch() endif() -endif(NOT WIN32) +endif(NOT CLR_CMAKE_HOST_WIN32) add_jit(armelnonjit) diff --git a/src/coreclr/src/jit/protononjit/CMakeLists.txt b/src/coreclr/src/jit/protononjit/CMakeLists.txt index 82492ed6a0edf..45c9a5999b70a 100644 --- a/src/coreclr/src/jit/protononjit/CMakeLists.txt +++ b/src/coreclr/src/jit/protononjit/CMakeLists.txt @@ -26,7 +26,7 @@ else() clr_unknown_arch() endif() -if (NOT WIN32) +if (NOT CLR_CMAKE_HOST_WIN32) if (CLR_CMAKE_HOST_ARCH_I386) remove_definitions(-DUNIX_X86_ABI) elseif(CLR_CMAKE_HOST_ARCH_AMD64) @@ -34,6 +34,6 @@ if (NOT WIN32) else() clr_unknown_arch() endif() -endif(NOT WIN32) +endif(NOT CLR_CMAKE_HOST_WIN32) add_jit(protononjit) diff --git a/src/coreclr/src/md/CMakeLists.txt b/src/coreclr/src/md/CMakeLists.txt index 7899de11eb7ba..bfc4efa10d526 100644 --- a/src/coreclr/src/md/CMakeLists.txt +++ b/src/coreclr/src/md/CMakeLists.txt @@ -1,4 +1,3 @@ - add_compile_definitions(FEATURE_METADATA_EMIT) add_compile_definitions(FEATURE_METADATA_INTERNAL_APIS) add_compile_definitions($<$>,$>>:FEATURE_METADATA_EMIT_IN_DEBUGGER>) @@ -8,7 +7,7 @@ add_compile_definitions($<$>:FEATURE_METAD add_compile_definitions($<$>:FEATURE_METADATA_LOAD_TRUSTED_IMAGES>) add_compile_definitions($<$>:FEATURE_METADATA_RELEASE_MEMORY_ON_REOPEN>) -if (WIN32) +if (CLR_CMAKE_HOST_WIN32) add_compile_options($<$>,$>:-MTd>) add_compile_options($<$>,$>>:-MT>) add_compile_definitions($<$>,$>>>:FEATURE_METADATA_VERIFY_LAYOUTS>) @@ -21,6 +20,6 @@ add_subdirectory(hotdata) add_subdirectory(ceefilegen) add_subdirectory(datasource) add_subdirectory(staticmd) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_subdirectory(winmd) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) diff --git a/src/coreclr/src/md/ceefilegen/CMakeLists.txt b/src/coreclr/src/md/ceefilegen/CMakeLists.txt index 75faa168cc159..90749c806b232 100644 --- a/src/coreclr/src/md/ceefilegen/CMakeLists.txt +++ b/src/coreclr/src/md/ceefilegen/CMakeLists.txt @@ -21,9 +21,9 @@ set(CEEFILEGEN_HEADERS ../../inc/utilcode.h ) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND CEEFILEGEN_SOURCES ${CEEFILEGEN_HEADERS}) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) add_library_clr(ceefgen STATIC diff --git a/src/coreclr/src/md/compiler/CMakeLists.txt b/src/coreclr/src/md/compiler/CMakeLists.txt index ed70ed884a68a..3b916cdc9fe80 100644 --- a/src/coreclr/src/md/compiler/CMakeLists.txt +++ b/src/coreclr/src/md/compiler/CMakeLists.txt @@ -50,7 +50,7 @@ set(MDCOMPILER_HEADERS convert_to_absolute_path(MDCOMPILER_SOURCES ${MDCOMPILER_SOURCES}) convert_to_absolute_path(MDCOMPILER_HEADERS ${MDCOMPILER_HEADERS}) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND MDCOMPILER_SOURCES ${MDCOMPILER_HEADERS}) endif() diff --git a/src/coreclr/src/md/datasource/CMakeLists.txt b/src/coreclr/src/md/datasource/CMakeLists.txt index 0a842fca36b76..9216108a9727d 100644 --- a/src/coreclr/src/md/datasource/CMakeLists.txt +++ b/src/coreclr/src/md/datasource/CMakeLists.txt @@ -16,9 +16,9 @@ set(MDDATASOURCE_HEADERS convert_to_absolute_path(MDDATASOURCE_SOURCES ${MDDATASOURCE_SOURCES}) convert_to_absolute_path(MDDATASOURCE_HEADERS ${MDDATASOURCE_HEADERS}) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND MDDATASOURCE_SOURCES ${MDDATASOURCE_HEADERS}) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) add_library_clr(mddatasource_dbi STATIC ${MDDATASOURCE_SOURCES}) set_target_properties(mddatasource_dbi PROPERTIES DBI_COMPONENT TRUE) diff --git a/src/coreclr/src/md/enc/CMakeLists.txt b/src/coreclr/src/md/enc/CMakeLists.txt index e6773e9cebf47..7220736b9ca3c 100644 --- a/src/coreclr/src/md/enc/CMakeLists.txt +++ b/src/coreclr/src/md/enc/CMakeLists.txt @@ -37,9 +37,9 @@ set(MDRUNTIMERW_HEADERS ../runtime/mdinternalro.h ) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND MDRUNTIMERW_SOURCES ${MDRUNTIMERW_HEADERS}) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) convert_to_absolute_path(MDRUNTIMERW_HEADERS ${MDRUNTIMERW_HEADERS}) convert_to_absolute_path(MDRUNTIMERW_SOURCES ${MDRUNTIMERW_SOURCES}) diff --git a/src/coreclr/src/md/hotdata/CMakeLists.txt b/src/coreclr/src/md/hotdata/CMakeLists.txt index 37a2545cfa5d8..fdcf90aabc2ac 100644 --- a/src/coreclr/src/md/hotdata/CMakeLists.txt +++ b/src/coreclr/src/md/hotdata/CMakeLists.txt @@ -25,9 +25,9 @@ set(MDHOTDATA_HEADERS convert_to_absolute_path(MDHOTDATA_HEADERS ${MDHOTDATA_HEADERS}) convert_to_absolute_path(MDHOTDATA_SOURCES ${MDHOTDATA_SOURCES}) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND MDHOTDATA_SOURCES ${MDHOTDATA_HEADERS}) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) add_library_clr(mdhotdata_dac ${MDHOTDATA_SOURCES}) set_target_properties(mdhotdata_dac PROPERTIES DAC_COMPONENT TRUE) @@ -40,7 +40,7 @@ add_library_clr(mdhotdata_crossgen ${MDHOTDATA_SOURCES}) set_target_properties(mdhotdata_crossgen PROPERTIES CROSSGEN_COMPONENT TRUE) target_precompile_header(TARGET mdhotdata_crossgen HEADER external.h) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_library_clr(mdhotdata-staticcrt ${MDHOTDATA_SOURCES}) target_precompile_header(TARGET mdhotdata-staticcrt HEADER external.h) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) diff --git a/src/coreclr/src/md/runtime/CMakeLists.txt b/src/coreclr/src/md/runtime/CMakeLists.txt index ec0be8b1d61c3..6dc193e14a7dd 100644 --- a/src/coreclr/src/md/runtime/CMakeLists.txt +++ b/src/coreclr/src/md/runtime/CMakeLists.txt @@ -39,9 +39,9 @@ set(MDRUNTIME_HEADERS convert_to_absolute_path(MDRUNTIME_HEADERS ${MDRUNTIME_HEADERS}) convert_to_absolute_path(MDRUNTIME_SOURCES ${MDRUNTIME_SOURCES}) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND MDRUNTIME_SOURCES ${MDRUNTIME_HEADERS}) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) add_library_clr(mdruntime_dac ${MDRUNTIME_SOURCES}) set_target_properties(mdruntime_dac PROPERTIES DAC_COMPONENT TRUE) diff --git a/src/coreclr/src/md/winmd/CMakeLists.txt b/src/coreclr/src/md/winmd/CMakeLists.txt index 6cee65a18eab1..3b52f312efc3e 100644 --- a/src/coreclr/src/md/winmd/CMakeLists.txt +++ b/src/coreclr/src/md/winmd/CMakeLists.txt @@ -20,9 +20,9 @@ set(MDWINMD_HEADERS convert_to_absolute_path(MDWINMD_HEADERS ${MDWINMD_HEADERS}) convert_to_absolute_path(MDWINMD_SOURCES ${MDWINMD_SOURCES}) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND MDWINMD_SOURCES ${MDWINMD_HEADERS}) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) add_library_clr(mdwinmd_dac ${MDWINMD_SOURCES}) @@ -33,7 +33,7 @@ add_library_clr(mdwinmd_wks ${MDWINMD_SOURCES}) target_compile_definitions(mdwinmd_wks PRIVATE FEATURE_METADATA_EMIT_ALL) target_precompile_header(TARGET mdwinmd_wks HEADER stdafx.h) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_library_clr(mdwinmd_dbi ${MDWINMD_SOURCES}) set_target_properties(mdwinmd_dbi PROPERTIES DBI_COMPONENT TRUE) target_precompile_header(TARGET mdwinmd_dbi HEADER stdafx.h) @@ -41,4 +41,4 @@ if(WIN32) add_library_clr(mdwinmd_crossgen ${MDWINMD_SOURCES}) set_target_properties(mdwinmd_crossgen PROPERTIES CROSSGEN_COMPONENT TRUE) target_precompile_header(TARGET mdwinmd_crossgen HEADER stdafx.h) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) diff --git a/src/coreclr/src/pal/src/CMakeLists.txt b/src/coreclr/src/pal/src/CMakeLists.txt index 2e2685213287d..c8fda496e5fe6 100644 --- a/src/coreclr/src/pal/src/CMakeLists.txt +++ b/src/coreclr/src/pal/src/CMakeLists.txt @@ -1,7 +1,7 @@ -if(CMAKE_SYSTEM_NAME STREQUAL Darwin OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD) +if(CLR_CMAKE_TARGET_DARWIN OR CLR_CMAKE_TARGET_FREEBSD) # On OSX and *BSD, we use the libunwind that's part of the OS set(CLR_CMAKE_USE_SYSTEM_LIBUNWIND 1) -endif(CMAKE_SYSTEM_NAME STREQUAL Darwin OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD) +endif(CLR_CMAKE_TARGET_DARWIN OR CLR_CMAKE_TARGET_FREEBSD) if(NOT DEFINED ENV{ROOTFS_DIR}) include_directories(SYSTEM /usr/local/include) @@ -14,7 +14,7 @@ if(NOT CLR_CMAKE_USE_SYSTEM_LIBUNWIND) include_directories(${CMAKE_CURRENT_BINARY_DIR}/libunwind/include/tdep) add_subdirectory(libunwind) -elseif(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin) +elseif(NOT CLR_CMAKE_TARGET_DARWIN) if(CLR_CMAKE_HOST_ARCH_ARM) find_library(UNWIND_ARCH NAMES unwind-arm) endif() @@ -64,7 +64,7 @@ include_directories(include) # Compile options -if(CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(CLR_CMAKE_TARGET_DARWIN) add_definitions(-DTARGET_OSX) add_definitions(-DXSTATE_SUPPORTED) set(PLATFORM_SOURCES @@ -74,7 +74,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL Darwin) exception/machexception.cpp exception/machmessage.cpp ) -endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) +endif(CLR_CMAKE_TARGET_DARWIN) if (FEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION) add_definitions(-DFEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION) @@ -93,10 +93,10 @@ elseif(CLR_CMAKE_HOST_ARCH_I386) set(PAL_ARCH_SOURCES_DIR i386) endif() -if(CLR_CMAKE_HOST_ARCH_AMD64 AND CMAKE_SYSTEM_NAME STREQUAL Linux AND NOT CLR_CMAKE_HOST_ALPINE_LINUX) +if(CLR_CMAKE_HOST_ARCH_AMD64 AND CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_HOST_ALPINE_LINUX) # Currently the _xstate is not available on Alpine Linux add_definitions(-DXSTATE_SUPPORTED) -endif(CLR_CMAKE_HOST_ARCH_AMD64 AND CMAKE_SYSTEM_NAME STREQUAL Linux AND NOT CLR_CMAKE_HOST_ALPINE_LINUX) +endif(CLR_CMAKE_HOST_ARCH_AMD64 AND CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_HOST_ALPINE_LINUX) if(CLR_CMAKE_HOST_ALPINE_LINUX) # Setting RLIMIT_NOFILE breaks debugging of coreclr on Alpine Linux for some reason @@ -116,12 +116,12 @@ set(ARCH_SOURCES arch/${PAL_ARCH_SOURCES_DIR}/processor.cpp ) -if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(NOT CLR_CMAKE_TARGET_DARWIN) list(APPEND PLATFORM_SOURCES arch/${PAL_ARCH_SOURCES_DIR}/callsignalhandlerwrapper.S arch/${PAL_ARCH_SOURCES_DIR}/signalhandlerhelper.cpp ) -endif(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin) +endif(NOT CLR_CMAKE_TARGET_DARWIN) if(CLR_CMAKE_HOST_ARCH_ARM) if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") @@ -250,14 +250,14 @@ add_library(coreclrpal # > warning: /Applications/Xcode-9.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: # > warning for library: libtracepointprovider.a the table of contents is empty (no object file members in the library define global symbols) # -if(CMAKE_SYSTEM_NAME STREQUAL Linux) +if(CLR_CMAKE_TARGET_LINUX) add_library(tracepointprovider STATIC misc/tracepointprovider.cpp ) -endif(CMAKE_SYSTEM_NAME STREQUAL Linux) +endif(CLR_CMAKE_TARGET_LINUX) -if(CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(CLR_CMAKE_TARGET_DARWIN) find_library(COREFOUNDATION CoreFoundation) find_library(CORESERVICES CoreServices) find_library(SECURITY Security) @@ -268,19 +268,19 @@ if(CMAKE_SYSTEM_NAME STREQUAL Darwin) ${SECURITY} ${SYSTEM} ) -endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) +endif(CLR_CMAKE_TARGET_DARWIN) -if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) +if(CLR_CMAKE_TARGET_FREEBSD) target_link_libraries(coreclrpal pthread rt ${UNWIND_LIBS} ) -endif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) +endif(CLR_CMAKE_TARGET_FREEBSD) -if(CMAKE_SYSTEM_NAME STREQUAL Linux) +if(CLR_CMAKE_TARGET_LINUX) # On Android, we don't need to link with gcc_s, pthread and rt - if(NOT CLR_CMAKE_HOST_ANDROID) + if(NOT CLR_CMAKE_TARGET_ANDROID) target_link_libraries(coreclrpal gcc_s pthread @@ -288,7 +288,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux) ) endif() - if(CLR_CMAKE_HOST_ANDROID) + if(CLR_CMAKE_TARGET_ANDROID) find_library(LZMA NAMES lzma) if(LZMA STREQUAL LZMA-NOTFOUND) @@ -302,7 +302,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux) ${LZMA}) endif() - if(CLR_MAKE_PLATFORM_ANDROID) + if(CLR_MAKE_TARGET_ANDROID) find_library(ANDROID_SUPPORT NAMES android-support) find_library(ANDROID_GLOB NAMES android-glob) @@ -323,9 +323,9 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux) target_link_libraries(coreclrpal ${UNWIND_LIBS}) endif(CLR_CMAKE_USE_SYSTEM_LIBUNWIND) -endif(CMAKE_SYSTEM_NAME STREQUAL Linux) +endif(CLR_CMAKE_TARGET_LINUX) -if(CMAKE_SYSTEM_NAME STREQUAL NetBSD) +if(CLR_CMAKE_TARGET_NETBSD) if (CLR_CMAKE_USE_SYSTEM_LIBUNWIND) find_library(UNWIND unwind) endif() @@ -337,7 +337,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL NetBSD) ${UNWIND} ${KVM} ) -endif(CMAKE_SYSTEM_NAME STREQUAL NetBSD) +endif(CLR_CMAKE_TARGET_NETBSD) if(FEATURE_EVENT_TRACE) add_subdirectory(eventprovider) diff --git a/src/coreclr/src/pal/src/configure.cmake b/src/coreclr/src/pal/src/configure.cmake index 11d9c263ae371..f426d0764118e 100644 --- a/src/coreclr/src/pal/src/configure.cmake +++ b/src/coreclr/src/pal/src/configure.cmake @@ -7,18 +7,18 @@ include(CheckStructHasMember) include(CheckTypeSize) include(CheckLibraryExists) -if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) +if(CLR_CMAKE_TARGET_FREEBSD) set(CMAKE_REQUIRED_INCLUDES /usr/local/include) -elseif(CMAKE_SYSTEM_NAME STREQUAL SunOS) +elseif(CLR_CMAKE_TARGET_SUNOS) set(CMAKE_REQUIRED_INCLUDES /opt/local/include) endif() -if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin AND NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) +if(NOT CLR_CMAKE_TARGET_DARWIN AND NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD) set(CMAKE_REQUIRED_DEFINITIONS "-D_BSD_SOURCE -D_SVID_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809L") endif() -if(CMAKE_SYSTEM_NAME STREQUAL Linux AND NOT CLR_CMAKE_HOST_ANDROID) +if(CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ANDROID) set(CMAKE_RT_LIBS rt) -elseif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL NetBSD) +elseif(CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD) set(CMAKE_RT_LIBS rt) else() set(CMAKE_RT_LIBS "") @@ -1336,7 +1336,7 @@ if(NOT CLR_CMAKE_HOST_ARCH_ARM AND NOT CLR_CMAKE_HOST_ARCH_ARM64) set(CMAKE_REQUIRED_LIBRARIES) endif() -if(CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(CLR_CMAKE_TARGET_DARWIN) set(HAVE__NSGETENVIRON 1) set(DEADLOCK_WHEN_THREAD_IS_SUSPENDED_WHILE_BLOCKED_ON_MUTEX 1) set(PAL_PTRACE "ptrace((cmd), (pid), (caddr_t)(addr), (data))") @@ -1347,7 +1347,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL Darwin) set(HAS_FTRUNCATE_LENGTH_ISSUE 1) set(HAVE_SCHED_OTHER_ASSIGNABLE 1) -elseif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) +elseif(CLR_CMAKE_TARGET_FREEBSD) set(DEADLOCK_WHEN_THREAD_IS_SUSPENDED_WHILE_BLOCKED_ON_MUTEX 0) set(PAL_PTRACE "ptrace((cmd), (pid), (caddr_t)(addr), (data))") set(PAL_PT_ATTACH PT_ATTACH) @@ -1357,7 +1357,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) set(HAS_FTRUNCATE_LENGTH_ISSUE 0) set(BSD_REGS_STYLE "((reg).r_##rr)") set(HAVE_SCHED_OTHER_ASSIGNABLE 1) -elseif(CMAKE_SYSTEM_NAME STREQUAL NetBSD) +elseif(CLR_CMAKE_TARGET_NETBSD) set(DEADLOCK_WHEN_THREAD_IS_SUSPENDED_WHILE_BLOCKED_ON_MUTEX 0) set(PAL_PTRACE "ptrace((cmd), (pid), (void*)(addr), (data))") set(PAL_PT_ATTACH PT_ATTACH) @@ -1368,7 +1368,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL NetBSD) set(BSD_REGS_STYLE "((reg).regs[_REG_##RR])") set(HAVE_SCHED_OTHER_ASSIGNABLE 0) -elseif(CMAKE_SYSTEM_NAME STREQUAL SunOS) +elseif(CLR_CMAKE_TARGET_SUNOS) set(DEADLOCK_WHEN_THREAD_IS_SUSPENDED_WHILE_BLOCKED_ON_MUTEX 0) set(PAL_PTRACE "ptrace((cmd), (pid), (caddr_t)(addr), (data))") set(PAL_PT_ATTACH PT_ATTACH) @@ -1389,6 +1389,6 @@ else() # Anything else is Linux set(PAL_PT_WRITE_D PTRACE_POKEDATA) set(HAS_FTRUNCATE_LENGTH_ISSUE 0) set(HAVE_SCHED_OTHER_ASSIGNABLE 1) -endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) +endif(CLR_CMAKE_TARGET_DARWIN) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) diff --git a/src/coreclr/src/pal/tests/palsuite/CMakeLists.txt b/src/coreclr/src/pal/tests/palsuite/CMakeLists.txt index 11510332803bd..902f125412b12 100644 --- a/src/coreclr/src/pal/tests/palsuite/CMakeLists.txt +++ b/src/coreclr/src/pal/tests/palsuite/CMakeLists.txt @@ -7,7 +7,7 @@ include_directories(${PALTESTSUITE_SOURCE_DIR}/common) # All test will link against these libraries: # pthread and m are part of the Android C library (bionic), # so we don't need to link them seperately -if(NOT CLR_CMAKE_HOST_ANDROID) +if(NOT CLR_CMAKE_TARGET_ANDROID) list(APPEND COMMON_TEST_LIBRARIES pthread) list(APPEND COMMON_TEST_LIBRARIES m) endif() diff --git a/src/coreclr/src/pal/tests/palsuite/README.txt b/src/coreclr/src/pal/tests/palsuite/README.txt index 61dab7ce13e7a..eb180b328f158 100644 --- a/src/coreclr/src/pal/tests/palsuite/README.txt +++ b/src/coreclr/src/pal/tests/palsuite/README.txt @@ -44,17 +44,6 @@ The results are logged to %ROTOR_DIR%\tests\pvtResults.log. 3. ENVIRONMENT VARIABLES AND AUTOMATED TESTING SPECIFICS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -3.1 PAL_DISABLE_MESSAGEBOX - -For automated testing on the WIN32 PAL, the following environment -variable is useful to prevent pop-up message boxes from interupting the -execution of the MessageBoxW test cases: - -set PAL_DISABLE_MESSAGEBOX=1 - - -3.2 Other Notes See notes in section 4 on the following test cases if running automated tests: @@ -72,7 +61,7 @@ this will determine how the function will be tested. _fdopen takes a parameter of a c run-time file handle, to open a stream to the file. This file handle can only be returned from the _open_osfhandle function. -The Rotor documentation states that _open_osfhandle will only return a +The Rotor documentation states that _open_osfhandle will only return a READ-ONLY file handle, from an operating-system file handle returned from CreatePipe(). @@ -84,7 +73,7 @@ CreatePipe(). The modes that will not be tested are as follows: - "w" - Opens an empty file for writing. + "w" - Opens an empty file for writing. "a" - Opens for writing at the end of the file (appending). "r+" - Opens for both reading and writing. "w+" - Opens an empty file for both reading and writing. @@ -94,14 +83,14 @@ The modes that will not be tested are as follows: File_IO: getfilesize/test1, getfilesizeex/test1 setfilepointer/test(5,6,7) -These tests cases create a large number of temporary files which require -ample disk space. On systems with less than 6Gb free disk space expect +These tests cases create a large number of temporary files which require +ample disk space. On systems with less than 6Gb free disk space expect these test cases to fail. File_IO: gettempfilename(a,w)/test2 -These test cases take longer than 60 seconds to run. Currently, the Test +These test cases take longer than 60 seconds to run. Currently, the Test Harness will timeout any test case that exceeds 60 seconds. @@ -109,15 +98,15 @@ Miscellaneous: messageboxw/test(1,2) Setting PAL_MESSAGEBOX_DISABLE=1 for these test cases prevents message box pop ups that occur during the tests' execution on Windows. For automated testing -where user interaction is not desired/possible, setting this environment +where user interaction is not desired/possible, setting this environment variable will prevent a pause in the automated test run. ic: pal_get_stdin/test1, pal_get_stdout/test1, pal_get_stderr/test1 These test cases should be manually inspected to ensure the information being returned -is correct. The pal_get_stdin test case requires user input. The pal_get_stdout and -pal_get_stderr test cases do not require user input, but their output should be inspected +is correct. The pal_get_stdin test case requires user input. The pal_get_stdout and +pal_get_stderr test cases do not require user input, but their output should be inspected to verify that correct messages are being displayed. diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt b/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt index 5d07fe3ba9a49..a515268668c99 100644 --- a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt +++ b/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt @@ -18,13 +18,13 @@ convert_to_absolute_path(DEF_SOURCES1 ${DEF_SOURCES1}) set(EXPORTS_FILE1 ${CMAKE_CURRENT_BINARY_DIR}/dlltest1.exports) generate_exports_file(${DEF_SOURCES1} ${EXPORTS_FILE1}) -if(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL NetBSD) +if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD) set(EXPORTS_LINKER_OPTION1 -Wl,--version-script=${EXPORTS_FILE1}) -endif(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL NetBSD) +endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD) -if(CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(CLR_CMAKE_TARGET_DARWIN) set(EXPORTS_LINKER_OPTION1 -Wl,-exported_symbols_list,${EXPORTS_FILE1}) -endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) +endif(CLR_CMAKE_TARGET_DARWIN) set(DLL1SOURCES dlltest1.cpp) add_library(paltest_pal_sxs_test1_dll1 SHARED ${DLL1SOURCES}) @@ -50,13 +50,13 @@ convert_to_absolute_path(DEF_SOURCES2 ${DEF_SOURCES2}) set(EXPORTS_FILE2 ${CMAKE_CURRENT_BINARY_DIR}/dlltest2.exports) generate_exports_file(${DEF_SOURCES2} ${EXPORTS_FILE2}) -if(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL NetBSD) +if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD) set(EXPORTS_LINKER_OPTION2 -Wl,--version-script=${EXPORTS_FILE2}) -endif(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL NetBSD) +endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD) -if(CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(CLR_CMAKE_TARGET_DARWIN) set(EXPORTS_LINKER_OPTION2 -Wl,-exported_symbols_list,${EXPORTS_FILE2}) -endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) +endif(CLR_CMAKE_TARGET_DARWIN) set(DLL2SOURCES dlltest2.cpp) add_library(paltest_pal_sxs_test1_dll2 SHARED ${DLL2SOURCES}) diff --git a/src/coreclr/src/tools/CMakeLists.txt b/src/coreclr/src/tools/CMakeLists.txt index 6fce0a95fbee9..350a100df159e 100644 --- a/src/coreclr/src/tools/CMakeLists.txt +++ b/src/coreclr/src/tools/CMakeLists.txt @@ -1,5 +1,5 @@ add_subdirectory(crossgen) -if (WIN32 AND NOT CLR_CMAKE_CROSS_ARCH) +if (CLR_CMAKE_TARGET_WIN32 AND NOT CLR_CMAKE_CROSS_ARCH) add_subdirectory(GenClrDebugResource) add_subdirectory(InjectResource) diff --git a/src/coreclr/src/tools/crossgen/CMakeLists.txt b/src/coreclr/src/tools/crossgen/CMakeLists.txt index 053490a6c0378..5e1a662f621d2 100644 --- a/src/coreclr/src/tools/crossgen/CMakeLists.txt +++ b/src/coreclr/src/tools/crossgen/CMakeLists.txt @@ -5,9 +5,12 @@ include_directories(../util) include_directories(../../pal/prebuilt/corerror) set(crossgen_SOURCES crossgen.cpp ../util/consoleargs.cpp) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND crossgen_SOURCES ../util/consoleargs.h) set(crossgen_RESOURCES Native.rc) +endif() + +if(CLR_CMAKE_HOST_WIN32) add_definitions(-D_CRT_NON_CONFORMING_WCSTOK) endif() diff --git a/src/coreclr/src/utilcode/CMakeLists.txt b/src/coreclr/src/utilcode/CMakeLists.txt index c82617bddb011..3a56c6de6d08b 100644 --- a/src/coreclr/src/utilcode/CMakeLists.txt +++ b/src/coreclr/src/utilcode/CMakeLists.txt @@ -1,4 +1,3 @@ - set(CMAKE_INCLUDE_CURRENT_DIR ON) set(UTILCODE_COMMON_SOURCES @@ -116,9 +115,9 @@ if(CLR_CMAKE_HOST_UNIX) endif(CLR_CMAKE_HOST_UNIX) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) target_compile_definitions(utilcodestaticnohost PRIVATE _CRTIMP=) # use static version of crt -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) set_target_properties(utilcode_dac PROPERTIES DAC_COMPONENT TRUE) set_target_properties(utilcode_crossgen PROPERTIES CROSSGEN_COMPONENT TRUE) diff --git a/src/coreclr/src/vm/CMakeLists.txt b/src/coreclr/src/vm/CMakeLists.txt index 5e8978b3aeb67..f53baee7842f5 100644 --- a/src/coreclr/src/vm/CMakeLists.txt +++ b/src/coreclr/src/vm/CMakeLists.txt @@ -645,7 +645,7 @@ list(APPEND VM_HEADERS_DAC endif(CLR_CMAKE_TARGET_WIN32) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_TARGET_ARCH_AMD64) set(VM_SOURCES_WKS_ARCH_ASM @@ -709,7 +709,7 @@ elseif(CLR_CMAKE_TARGET_ARCH_ARM64) ) endif() -else(WIN32) +else(CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_TARGET_ARCH_AMD64) set(VM_SOURCES_WKS_ARCH_ASM @@ -754,7 +754,7 @@ else(WIN32) ) endif() -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_TARGET_ARCH_AMD64) @@ -911,11 +911,11 @@ list(APPEND VM_HEADERS_DAC ${GC_HEADERS_DAC} ) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND VM_SOURCES_WKS ${VM_HEADERS_WKS}) list(APPEND VM_SOURCES_WKS_ARCH_ASM ${VM_HEADERS_WKS_ARCH_ASM}) list(APPEND VM_SOURCES_DAC ${VM_HEADERS_DAC}) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) convert_to_absolute_path(VM_SOURCES_WKS ${VM_SOURCES_WKS}) convert_to_absolute_path(VM_SOURCES_WKS_ARCH_ASM ${VM_SOURCES_WKS_ARCH_ASM}) diff --git a/src/coreclr/src/vm/crossgen/CMakeLists.txt b/src/coreclr/src/vm/crossgen/CMakeLists.txt index cea51f51b4490..dcf43e853eda1 100644 --- a/src/coreclr/src/vm/crossgen/CMakeLists.txt +++ b/src/coreclr/src/vm/crossgen/CMakeLists.txt @@ -224,7 +224,7 @@ else() clr_unknown_arch() endif() -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND VM_CROSSGEN_SOURCES ../classcompat.cpp ../clrprivbinderwinrt.cpp @@ -251,7 +251,7 @@ if (WIN32) ) list(APPEND VM_CROSSGEN_SOURCES ${VM_CROSSGEN_HEADERS}) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) if (CLR_CMAKE_HOST_LINUX) list(APPEND VM_CROSSGEN_SOURCES diff --git a/src/coreclr/src/vm/eventing/CMakeLists.txt b/src/coreclr/src/vm/eventing/CMakeLists.txt index bb90721a63f2c..92d9bd1f60773 100644 --- a/src/coreclr/src/vm/eventing/CMakeLists.txt +++ b/src/coreclr/src/vm/eventing/CMakeLists.txt @@ -1,7 +1,7 @@ set(EVENT_MANIFEST ${VM_DIR}/ClrEtwAll.man) set(EVENT_EXCLUSIONS ${VM_DIR}/ClrEtwAllMeta.lst) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) set(NONEXTERN_ARG "--nonextern") set(NOXPLATHEADER_ARG "--noxplatheader") else() @@ -35,6 +35,6 @@ add_dependencies(eventing_headers eventprovider) add_subdirectory(eventpipe) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_subdirectory(EtwProvider) endif() diff --git a/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt b/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt index 3e75643e3f7af..00b3f6f386f24 100644 --- a/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt +++ b/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt @@ -32,6 +32,6 @@ add_library_clr(eventpipe STATIC ${EVENTPIPE_SOURCES}) set_target_properties(eventpipe PROPERTIES LINKER_LANGUAGE CXX) add_dependencies(eventpipe eventing_headers) -if (NOT WIN32) +if (NOT CLR_CMAKE_TARGET_WIN32) _install(TARGETS eventpipe DESTINATION lib) endif() diff --git a/src/coreclr/src/vm/wks/CMakeLists.txt b/src/coreclr/src/vm/wks/CMakeLists.txt index 6a5ea030de6f1..1e94b575fd640 100644 --- a/src/coreclr/src/vm/wks/CMakeLists.txt +++ b/src/coreclr/src/vm/wks/CMakeLists.txt @@ -1,11 +1,11 @@ -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) if(CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64) preprocess_compile_asm(ASM_FILES ${VM_SOURCES_WKS_ARCH_ASM} OUTPUT_OBJECTS VM_WKS_ARCH_ASM_OBJECTS) list(APPEND VM_SOURCES_WKS_ARCH_ASM ${VM_WKS_ARCH_ASM_OBJECTS}) endif() -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) add_library_clr(cee_wks ${VM_SOURCES_WKS} ${VM_SOURCES_WKS_ARCH_ASM}) target_precompile_header(TARGET cee_wks HEADER common.h) @@ -15,7 +15,7 @@ if (MSVC) endif() add_dependencies(cee_wks eventing_headers) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) if(NOT CLR_CMAKE_HOST_ARCH_ARM AND NOT CLR_CMAKE_HOST_ARCH_ARM64) @@ -49,4 +49,4 @@ if (WIN32) endif(NOT CLR_CMAKE_HOST_ARCH_ARM AND NOT CLR_CMAKE_HOST_ARCH_ARM64) -endif (WIN32) +endif (CLR_CMAKE_TARGET_WIN32) diff --git a/src/coreclr/src/zap/CMakeLists.txt b/src/coreclr/src/zap/CMakeLists.txt index 1c23048d128d6..adb07615129a9 100644 --- a/src/coreclr/src/zap/CMakeLists.txt +++ b/src/coreclr/src/zap/CMakeLists.txt @@ -43,9 +43,9 @@ if (FEATURE_READYTORUN) ) endif (FEATURE_READYTORUN) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND ZAP_SOURCES ${ZAP_HEADERS}) -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) add_library_clr(corzap_crossgen STATIC ${ZAP_SOURCES}) set_target_properties(corzap_crossgen PROPERTIES CROSSGEN_COMPONENT TRUE) diff --git a/src/coreclr/tests/CMakeLists.txt b/src/coreclr/tests/CMakeLists.txt index 88c08149481d3..47ee1e3a9a4de 100644 --- a/src/coreclr/tests/CMakeLists.txt +++ b/src/coreclr/tests/CMakeLists.txt @@ -3,8 +3,10 @@ cmake_minimum_required(VERSION 3.14.2) cmake_policy(SET CMP0042 NEW) project(Tests) +include(${CLR_ENG_NATIVE_DIR}/configureplatform.cmake) + set(INC_PLATFORM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/Common/Platform) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) add_definitions(-DWINDOWS) endif() @@ -13,7 +15,7 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/../configurecompiler.cmake) include(${CLR_ENG_NATIVE_DIR}/configuretools.cmake) # Compile options -if (WIN32) +if (CLR_CMAKE_HOST_WIN32) # 4100 - unreferenced formal parameter # 4514 - unreferenced inline function has been removed # 4625 - copy constructor was implicitly defined as deleted because a base class copy constructor is inaccessible or deleted diff --git a/src/coreclr/tests/src/Exceptions/ForeignThread/CMakeLists.txt b/src/coreclr/tests/src/Exceptions/ForeignThread/CMakeLists.txt index f5e8b3a87699a..c04c629275708 100644 --- a/src/coreclr/tests/src/Exceptions/ForeignThread/CMakeLists.txt +++ b/src/coreclr/tests/src/Exceptions/ForeignThread/CMakeLists.txt @@ -9,8 +9,8 @@ endif(CLR_CMAKE_HOST_DARWIN) set(SOURCES ForeignThreadExceptionsNative.cpp) -if(NOT WIN32) -add_compile_options(-pthread) +if(NOT CLR_CMAKE_HOST_WIN32) + add_compile_options(-pthread) endif() # add the executable diff --git a/src/coreclr/tests/src/Interop/CMakeLists.txt b/src/coreclr/tests/src/Interop/CMakeLists.txt index a111f46da68f7..9de657750644b 100644 --- a/src/coreclr/tests/src/Interop/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/CMakeLists.txt @@ -1,10 +1,10 @@ -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) list(APPEND LINK_LIBRARIES_ADDITIONAL ole32.lib advapi32.lib OleAut32.lib ) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) list(APPEND LINK_LIBRARIES_ADDITIONAL platformdefines) @@ -66,7 +66,7 @@ add_subdirectory(ExecInDefAppDom) add_subdirectory(ICustomMarshaler/ConflictingNames) add_subdirectory(LayoutClass) add_subdirectory(PInvoke/DateTime) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_subdirectory(PInvoke/Attributes/LCID) add_subdirectory(PInvoke/Variant) add_subdirectory(PInvoke/Varargs) @@ -89,4 +89,4 @@ if(WIN32) add_subdirectory(IJW/CopyConstructorMarshaler) add_subdirectory(IJW/NativeVarargs) endif() -endif(WIN32) +endif(CLR_CMAKE_TARGET_WIN32) diff --git a/src/coreclr/tests/src/Interop/COM/NativeServer/CMakeLists.txt b/src/coreclr/tests/src/Interop/COM/NativeServer/CMakeLists.txt index 4874baf456baa..9f661bfb9e622 100644 --- a/src/coreclr/tests/src/Interop/COM/NativeServer/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/COM/NativeServer/CMakeLists.txt @@ -3,7 +3,7 @@ include_directories( ${INC_PLATFORM_DIR} ) include_directories( "../ServerContracts" ) set(SOURCES Servers.cpp stdafx.cpp Exports.def COMNativeServer.X.manifest) -if (WIN32) +if (CLR_CMAKE_HOST_WIN32) # 4365 - signed/unsigned mismatch add_compile_options(-wd4365) endif() diff --git a/src/coreclr/tests/src/Interop/IJW/IJW.cmake b/src/coreclr/tests/src/Interop/IJW/IJW.cmake index 3bb61d04386f4..549e951b83eb8 100644 --- a/src/coreclr/tests/src/Interop/IJW/IJW.cmake +++ b/src/coreclr/tests/src/Interop/IJW/IJW.cmake @@ -1,4 +1,4 @@ -if (WIN32) +if (CLR_CMAKE_HOST_WIN32) # 4365 - signed/unsigned mismatch add_compile_options(/wd4365) diff --git a/src/coreclr/tests/src/Interop/PInvoke/ArrayWithOffset/CMakeLists.txt b/src/coreclr/tests/src/Interop/PInvoke/ArrayWithOffset/CMakeLists.txt index fd79648bfa182..5b8bf6ccb9777 100644 --- a/src/coreclr/tests/src/Interop/PInvoke/ArrayWithOffset/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/PInvoke/ArrayWithOffset/CMakeLists.txt @@ -1,15 +1,15 @@ -project (ArrayWithOffsetNative) -include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") -set(SOURCES - ArrayWithOffsetNative.cpp -) -if(WIN32) +project (ArrayWithOffsetNative) +include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") +set(SOURCES + ArrayWithOffsetNative.cpp +) +if(CLR_CMAKE_HOST_WIN32) list(APPEND LINK_LIBRARIES_ADDITIONAL OleAut32.lib ) -endif(WIN32) -# add the executable -add_library (ArrayWithOffsetNative SHARED ${SOURCES}) -target_link_libraries(ArrayWithOffsetNative ${LINK_LIBRARIES_ADDITIONAL}) -# add the install targets -install (TARGETS ArrayWithOffsetNative DESTINATION bin) +endif(CLR_CMAKE_HOST_WIN32) +# add the executable +add_library (ArrayWithOffsetNative SHARED ${SOURCES}) +target_link_libraries(ArrayWithOffsetNative ${LINK_LIBRARIES_ADDITIONAL}) +# add the install targets +install (TARGETS ArrayWithOffsetNative DESTINATION bin) diff --git a/src/coreclr/tests/src/Interop/PInvoke/AsAny/CMakeLists.txt b/src/coreclr/tests/src/Interop/PInvoke/AsAny/CMakeLists.txt index f136f92ba0066..0a284e2af11bd 100644 --- a/src/coreclr/tests/src/Interop/PInvoke/AsAny/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/PInvoke/AsAny/CMakeLists.txt @@ -1,15 +1,15 @@ -project (AsAnyNative) -include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") -set(SOURCES - AsAnyNative.cpp -) -if(WIN32) +project (AsAnyNative) +include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") +set(SOURCES + AsAnyNative.cpp +) +if(CLR_CMAKE_HOST_WIN32) list(APPEND LINK_LIBRARIES_ADDITIONAL OleAut32.lib ) -endif(WIN32) -# add the executable -add_library (AsAnyNative SHARED ${SOURCES}) -target_link_libraries(AsAnyNative ${LINK_LIBRARIES_ADDITIONAL}) -# add the install targets -install (TARGETS AsAnyNative DESTINATION bin) +endif(CLR_CMAKE_HOST_WIN32) +# add the executable +add_library (AsAnyNative SHARED ${SOURCES}) +target_link_libraries(AsAnyNative ${LINK_LIBRARIES_ADDITIONAL}) +# add the install targets +install (TARGETS AsAnyNative DESTINATION bin) diff --git a/src/coreclr/tests/src/Interop/PInvoke/Delegate/CMakeLists.txt b/src/coreclr/tests/src/Interop/PInvoke/Delegate/CMakeLists.txt index cdc107d700eb6..a1d69cbceb22f 100644 --- a/src/coreclr/tests/src/Interop/PInvoke/Delegate/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/PInvoke/Delegate/CMakeLists.txt @@ -1,13 +1,13 @@ - -include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") -set(SOURCES + +include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") +set(SOURCES DelegateTestNative.cpp -) +) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES DelegateAsInterfaceTestNative.cpp) endif() -# add the executable +# add the executable add_library (DelegateTestNative SHARED ${SOURCES}) -target_link_libraries(DelegateTestNative ${LINK_LIBRARIES_ADDITIONAL}) +target_link_libraries(DelegateTestNative ${LINK_LIBRARIES_ADDITIONAL}) diff --git a/src/coreclr/tests/src/Interop/PInvoke/Variant/CMakeLists.txt b/src/coreclr/tests/src/Interop/PInvoke/Variant/CMakeLists.txt index 9eaff11b99458..69752ad4e8ddf 100644 --- a/src/coreclr/tests/src/Interop/PInvoke/Variant/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/PInvoke/Variant/CMakeLists.txt @@ -1,17 +1,17 @@ project (VariantNative) -include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") +include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") set(SOURCES VariantNative.cpp) # add the executable add_library (VariantNative SHARED ${SOURCES}) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) list(APPEND LINK_LIBRARIES_ADDITIONAL OleAut32.lib ) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) -target_link_libraries(VariantNative ${LINK_LIBRARIES_ADDITIONAL}) +target_link_libraries(VariantNative ${LINK_LIBRARIES_ADDITIONAL}) # add the install targets install (TARGETS VariantNative DESTINATION bin) diff --git a/src/coreclr/tests/src/Interop/StringMarshalling/AnsiBSTR/CMakeLists.txt b/src/coreclr/tests/src/Interop/StringMarshalling/AnsiBSTR/CMakeLists.txt index a85e22110ef37..6a92f9a5a2751 100644 --- a/src/coreclr/tests/src/Interop/StringMarshalling/AnsiBSTR/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/StringMarshalling/AnsiBSTR/CMakeLists.txt @@ -1,17 +1,17 @@ project (AnsiBStrTestNative) -include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") +include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") set(SOURCES AnsiBStrTestNative.cpp) # add the executable add_library (AnsiBStrTestNative SHARED ${SOURCES}) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) list(APPEND LINK_LIBRARIES_ADDITIONAL OleAut32.lib ) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) -target_link_libraries(AnsiBStrTestNative ${LINK_LIBRARIES_ADDITIONAL}) +target_link_libraries(AnsiBStrTestNative ${LINK_LIBRARIES_ADDITIONAL}) # add the install targets install (TARGETS AnsiBStrTestNative DESTINATION bin) diff --git a/src/coreclr/tests/src/Interop/StringMarshalling/BSTR/CMakeLists.txt b/src/coreclr/tests/src/Interop/StringMarshalling/BSTR/CMakeLists.txt index 6b8ade5b88882..b36300acc5943 100644 --- a/src/coreclr/tests/src/Interop/StringMarshalling/BSTR/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/StringMarshalling/BSTR/CMakeLists.txt @@ -1,16 +1,16 @@ -include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") +include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") set(SOURCES BStrTestNative.cpp) # add the executable add_library (BStrTestNative SHARED ${SOURCES}) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) list(APPEND LINK_LIBRARIES_ADDITIONAL OleAut32.lib ) -endif(WIN32) +endif(CLR_CMAKE_HOST_WIN32) -target_link_libraries(BStrTestNative ${LINK_LIBRARIES_ADDITIONAL}) +target_link_libraries(BStrTestNative ${LINK_LIBRARIES_ADDITIONAL}) # add the install targets install (TARGETS BStrTestNative DESTINATION bin) diff --git a/src/coreclr/tests/src/Interop/WinRT/NativeComponent/CMakeLists.txt b/src/coreclr/tests/src/Interop/WinRT/NativeComponent/CMakeLists.txt index 4ed71ac8eb47d..89f528c1ebaf4 100644 --- a/src/coreclr/tests/src/Interop/WinRT/NativeComponent/CMakeLists.txt +++ b/src/coreclr/tests/src/Interop/WinRT/NativeComponent/CMakeLists.txt @@ -1,6 +1,6 @@ project (WinRTNativeComponent) include_directories( ${INC_PLATFORM_DIR} ) -include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") +include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake") include_directories("../Contracts") include_directories(${CMAKE_CURRENT_SOURCE_DIR}) @@ -52,10 +52,10 @@ set (MIDL_COMMAND_LINE_ARGS /winrt /metadata_dir ${METADATA_DIR_ARGUMENT} /W1 - /enum_class - /ns_prefix - /target "NT60" - /nomidl + /enum_class + /ns_prefix + /target "NT60" + /nomidl /h "nul" ${REFERENCE_WINMD_ARGS} ) @@ -95,7 +95,7 @@ set_source_files_properties(${CPP_WINRT_OUTPUT_FILES} PROPERTIES GENERATED TRUE) list(APPEND SOURCES ${CPP_WINRT_OUTPUT_FOLDER}/module.g.cpp) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES Exports.def) endif() @@ -104,7 +104,7 @@ add_library (WinRTNativeComponent SHARED ${SOURCES}) target_link_libraries(WinRTNativeComponent ${LINK_LIBRARIES_ADDITIONAL}) set_target_properties(WinRTNativeComponent PROPERTIES CXX_STANDARD 17) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) target_link_libraries(WinRTNativeComponent RuntimeObject.lib) endif() diff --git a/src/coreclr/tests/src/JIT/Directed/StructABI/CMakeLists.txt b/src/coreclr/tests/src/JIT/Directed/StructABI/CMakeLists.txt index a0de07860513a..1c7c8684995a5 100644 --- a/src/coreclr/tests/src/JIT/Directed/StructABI/CMakeLists.txt +++ b/src/coreclr/tests/src/JIT/Directed/StructABI/CMakeLists.txt @@ -1,7 +1,7 @@ project (StructABILib) include_directories(${INC_PLATFORM_DIR}) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) add_compile_options(/TC) # compile all files as C else() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") diff --git a/src/coreclr/tests/src/JIT/Directed/arglist/CMakeLists.txt b/src/coreclr/tests/src/JIT/Directed/arglist/CMakeLists.txt index ccecdb536df15..eaa75ccf09ab3 100644 --- a/src/coreclr/tests/src/JIT/Directed/arglist/CMakeLists.txt +++ b/src/coreclr/tests/src/JIT/Directed/arglist/CMakeLists.txt @@ -1,7 +1,7 @@ project (varargnative) include_directories(${INC_PLATFORM_DIR}) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) add_compile_options(/TC) # compile all files as C else() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") @@ -11,4 +11,4 @@ endif() add_library (varargnative SHARED varargnative.c) # add the install targets -install (TARGETS varargnative DESTINATION bin) \ No newline at end of file +install (TARGETS varargnative DESTINATION bin) diff --git a/src/coreclr/tests/src/baseservices/exceptions/regressions/Dev11/147911/CMakeLists.txt b/src/coreclr/tests/src/baseservices/exceptions/regressions/Dev11/147911/CMakeLists.txt index 432dd1cb64324..51ca76c8f9135 100644 --- a/src/coreclr/tests/src/baseservices/exceptions/regressions/Dev11/147911/CMakeLists.txt +++ b/src/coreclr/tests/src/baseservices/exceptions/regressions/Dev11/147911/CMakeLists.txt @@ -1,4 +1,4 @@ -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) project (fpcw) include_directories(${INC_PLATFORM_DIR}) diff --git a/src/coreclr/tests/src/baseservices/exceptions/regressions/V1/SEH/VJ/CMakeLists.txt b/src/coreclr/tests/src/baseservices/exceptions/regressions/V1/SEH/VJ/CMakeLists.txt index bfe25327916e8..059c9d6444d40 100644 --- a/src/coreclr/tests/src/baseservices/exceptions/regressions/V1/SEH/VJ/CMakeLists.txt +++ b/src/coreclr/tests/src/baseservices/exceptions/regressions/V1/SEH/VJ/CMakeLists.txt @@ -1,4 +1,4 @@ -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) project (Unmanaged) include_directories(${INC_PLATFORM_DIR}) diff --git a/src/installer/corehost/cli/CMakeLists.txt b/src/installer/corehost/cli/CMakeLists.txt index 0ed5b8ab321d6..06140f5125864 100644 --- a/src/installer/corehost/cli/CMakeLists.txt +++ b/src/installer/corehost/cli/CMakeLists.txt @@ -7,7 +7,7 @@ add_subdirectory(test_fx_ver) add_subdirectory(test) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) add_subdirectory(comhost) add_subdirectory(ijwhost) add_subdirectory(winrthost) diff --git a/src/installer/corehost/cli/apphost/CMakeLists.txt b/src/installer/corehost/cli/apphost/CMakeLists.txt index 10ac01f5c09ff..eba5c232b0c5e 100644 --- a/src/installer/corehost/cli/apphost/CMakeLists.txt +++ b/src/installer/corehost/cli/apphost/CMakeLists.txt @@ -10,7 +10,7 @@ set(DOTNET_PROJECT_NAME "apphost") # dependencies is not possible for some reason. # This cannot be enabled for MacOS (Darwin) since its RPATH works in a different way, # doesn't apply to libraries loaded via dlopen and most importantly, it is not transitive. -if (NOT CMAKE_SYSTEM_NAME STREQUAL Darwin) +if (NOT CLR_CMAKE_TARGET_DARWIN) set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) set(CMAKE_INSTALL_RPATH "\$ORIGIN/netcoredeps") endif() @@ -42,7 +42,7 @@ set(HEADERS ./bundle/dir_utils.h ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES apphost.windows.cpp) @@ -55,13 +55,13 @@ include(../exe.cmake) add_definitions(-DFEATURE_APPHOST=1) # Disable manifest generation into the file .exe on Windows -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) set_property(TARGET ${PROJECT_NAME} PROPERTY LINK_FLAGS "/MANIFEST:NO" ) endif() # Specify non-default Windows libs to be used for Arm/Arm64 builds -if (WIN32 AND (CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64)) +if (CLR_CMAKE_TARGET_WIN32 AND (CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ARCH_ARM64)) target_link_libraries(apphost Advapi32.lib shell32.lib) endif() diff --git a/src/installer/corehost/cli/comhost/CMakeLists.txt b/src/installer/corehost/cli/comhost/CMakeLists.txt index 576000ff4fce7..a769f7c8eb026 100644 --- a/src/installer/corehost/cli/comhost/CMakeLists.txt +++ b/src/installer/corehost/cli/comhost/CMakeLists.txt @@ -26,7 +26,7 @@ set(HEADERS ../json_parser.h ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES Exports.def) endif() @@ -35,11 +35,11 @@ include(../lib.cmake) add_definitions(-DFEATURE_LIBHOST=1) -if (WIN32) +if (CLR_CMAKE_TARGET_WIN32) set(WINLIBS wintrust.lib) # Specify non-default Windows libs to be used for Arm/Arm64 builds - if (CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64) + if (CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ARCH_ARM64) list(APPEND WINLIBS Advapi32.lib Ole32.lib OleAut32.lib) endif() diff --git a/src/installer/corehost/cli/common.cmake b/src/installer/corehost/cli/common.cmake index fef6fb88c7c31..865666ae074d9 100644 --- a/src/installer/corehost/cli/common.cmake +++ b/src/installer/corehost/cli/common.cmake @@ -4,7 +4,7 @@ project(${DOTNET_PROJECT_NAME}) -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) add_compile_options($<$:/MT>) add_compile_options($<$:/MT>) add_compile_options($<$:/MTd>) @@ -15,7 +15,7 @@ endif() include(${CMAKE_CURRENT_LIST_DIR}/setup.cmake) # Include directories -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) include_directories("${CLI_CMAKE_RESOURCE_DIR}/${DOTNET_PROJECT_NAME}") endif() include_directories(${CMAKE_CURRENT_SOURCE_DIR}/) @@ -33,8 +33,8 @@ list(APPEND HEADERS ${CMAKE_CURRENT_LIST_DIR}/../common/pal.h ${CMAKE_CURRENT_LIST_DIR}/../error_codes.h) -if(WIN32) - list(APPEND SOURCES +if(CLR_CMAKE_TARGET_WIN32) + list(APPEND SOURCES ${CMAKE_CURRENT_LIST_DIR}/../common/pal.windows.cpp ${CMAKE_CURRENT_LIST_DIR}/../common/longfile.windows.cpp) list(APPEND HEADERS @@ -46,11 +46,11 @@ else() endif() set(RESOURCES) -if(WIN32 AND NOT SKIP_VERSIONING) +if(CLR_CMAKE_TARGET_WIN32 AND NOT SKIP_VERSIONING) list(APPEND RESOURCES ${CMAKE_CURRENT_LIST_DIR}/native.rc) endif() -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES ${HEADERS}) endif() @@ -58,18 +58,18 @@ function(set_common_libs TargetType) # Libraries used for exe projects if (${TargetType} STREQUAL "exe") - if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD") + if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD) target_link_libraries (${DOTNET_PROJECT_NAME} "pthread") endif() - if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") + if(CLR_CMAKE_TARGET_LINUX) target_link_libraries (${DOTNET_PROJECT_NAME} "dl") endif() endif() # Specify the import library to link against for Arm32 build since the default set is minimal - if (CLR_CMAKE_HOST_ARCH_ARM) - if (WIN32) + if (CLR_CMAKE_TARGET_ARCH_ARM) + if (CLR_CMAKE_TARGET_WIN32) target_link_libraries(${DOTNET_PROJECT_NAME} shell32.lib) else() target_link_libraries(${DOTNET_PROJECT_NAME} atomic.a) diff --git a/src/installer/corehost/cli/dotnet/CMakeLists.txt b/src/installer/corehost/cli/dotnet/CMakeLists.txt index 9750bf61d7081..e88f40dab6a0d 100644 --- a/src/installer/corehost/cli/dotnet/CMakeLists.txt +++ b/src/installer/corehost/cli/dotnet/CMakeLists.txt @@ -5,7 +5,7 @@ project(dotnet) set(DOTNET_PROJECT_NAME "dotnet") -set(SOURCES +set(SOURCES ../fxr/fx_ver.cpp ) @@ -13,7 +13,7 @@ set(HEADERS ../fxr/fx_ver.h ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES dotnet.manifest) endif() diff --git a/src/installer/corehost/cli/exe.cmake b/src/installer/corehost/cli/exe.cmake index be39daa3dc1f1..f941cd7131523 100644 --- a/src/installer/corehost/cli/exe.cmake +++ b/src/installer/corehost/cli/exe.cmake @@ -21,7 +21,7 @@ list(APPEND SOURCES add_executable(${DOTNET_PROJECT_NAME} ${SOURCES} ${RESOURCES}) -if(NOT WIN32) +if(NOT CLR_CMAKE_TARGET_WIN32) disable_pax_mprotect(${DOTNET_PROJECT_NAME}) endif() diff --git a/src/installer/corehost/cli/ijwhost/CMakeLists.txt b/src/installer/corehost/cli/ijwhost/CMakeLists.txt index dee3347b977a6..a56d2e44208eb 100644 --- a/src/installer/corehost/cli/ijwhost/CMakeLists.txt +++ b/src/installer/corehost/cli/ijwhost/CMakeLists.txt @@ -23,7 +23,7 @@ set(SOURCES ${ARCH_SPECIFIC_FOLDER_NAME}/bootstrap_thunk.cpp ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES Exports.def) endif() @@ -36,12 +36,12 @@ add_definitions(-DFEATURE_LIBHOST=1) convert_to_absolute_path(SOURCES ${SOURCES}) convert_to_absolute_path(ASM_HELPERS_SOURCES ${ASM_HELPERS_SOURCES}) -if (WIN32 AND (CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64)) +if (CLR_CMAKE_TARGET_WIN32 AND (CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ARCH_ARM64)) preprocess_compile_asm(ASM_FILES ${ASM_HELPERS_SOURCES} OUTPUT_OBJECTS ASM_HELPERS_OBJECTS) list(APPEND ASM_HELPERS_SOURCES ${ASM_HELPERS_OBJECTS}) endif () -if (WIN32 AND CLR_CMAKE_HOST_ARCH_I386) +if (CLR_CMAKE_TARGET_WIN32 AND CLR_CMAKE_TARGET_ARCH_I386) set_source_files_properties(${ASM_HELPERS_SOURCES} PROPERTIES COMPILE_FLAGS "/safeseh") endif () @@ -50,7 +50,7 @@ list(APPEND SOURCES ${ASM_HELPERS_SOURCES}) include(../lib.cmake) # Specify non-default Windows libs to be used for Arm/Arm64 builds -if (WIN32 AND (CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64)) +if (CLR_CMAKE_TARGET_WIN32 AND (CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ARCH_ARM64)) target_link_libraries(ijwhost Advapi32.lib Ole32.lib) endif() diff --git a/src/installer/corehost/cli/nethost/CMakeLists.txt b/src/installer/corehost/cli/nethost/CMakeLists.txt index 8fff8ea49eb66..aad5d0d04e652 100644 --- a/src/installer/corehost/cli/nethost/CMakeLists.txt +++ b/src/installer/corehost/cli/nethost/CMakeLists.txt @@ -16,7 +16,7 @@ set(SOURCES ../fxr/fx_ver.cpp ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES Exports.def) endif() @@ -30,4 +30,4 @@ add_definitions(-DNETHOST_EXPORT) install(FILES nethost.h DESTINATION corehost) install(TARGETS nethost DESTINATION corehost) install(TARGETS libnethost DESTINATION corehost) -install_symbols(nethost corehost) \ No newline at end of file +install_symbols(nethost corehost) diff --git a/src/installer/corehost/cli/test/mockcoreclr/CMakeLists.txt b/src/installer/corehost/cli/test/mockcoreclr/CMakeLists.txt index 016cf8ce12362..9f279c0cd58ac 100644 --- a/src/installer/corehost/cli/test/mockcoreclr/CMakeLists.txt +++ b/src/installer/corehost/cli/test/mockcoreclr/CMakeLists.txt @@ -10,7 +10,7 @@ set(SOURCES ./mockcoreclr.cpp ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES mockcoreclr.def) endif() diff --git a/src/installer/corehost/cli/test/nativehost/CMakeLists.txt b/src/installer/corehost/cli/test/nativehost/CMakeLists.txt index 6d688b5eb6ecc..8b5444a556550 100644 --- a/src/installer/corehost/cli/test/nativehost/CMakeLists.txt +++ b/src/installer/corehost/cli/test/nativehost/CMakeLists.txt @@ -8,7 +8,7 @@ set(DOTNET_PROJECT_NAME "nativehost") set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) set(MACOSX_RPATH ON) -if (CMAKE_SYSTEM_NAME STREQUAL Darwin) +if (CLR_CMAKE_TARGET_DARWIN) set(CMAKE_INSTALL_RPATH "@loader_path") else() set(CMAKE_INSTALL_RPATH "\$ORIGIN") @@ -35,7 +35,7 @@ set(HEADERS ./resolve_component_dependencies_test.h ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES ./comhost_test.cpp) @@ -50,6 +50,6 @@ include(../testexe.cmake) target_link_libraries(${DOTNET_PROJECT_NAME} nethost) # Specify non-default Windows libs to be used for Arm/Arm64 builds -if (WIN32 AND (CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64)) +if (CLR_CMAKE_TARGET_WIN32 AND (CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ARCH_ARM64)) target_link_libraries(${DOTNET_PROJECT_NAME} Advapi32.lib Ole32.lib OleAut32.lib) endif() diff --git a/src/installer/corehost/cli/test_fx_ver/CMakeLists.txt b/src/installer/corehost/cli/test_fx_ver/CMakeLists.txt index 8590b9d3c30bc..72a4d576ba262 100644 --- a/src/installer/corehost/cli/test_fx_ver/CMakeLists.txt +++ b/src/installer/corehost/cli/test_fx_ver/CMakeLists.txt @@ -14,7 +14,7 @@ set(SOURCES ../../common/trace.cpp ../../common/utils.cpp) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES ../../common/pal.windows.cpp ../../common/longfile.windows.cpp) @@ -23,7 +23,7 @@ else() ../../common/pal.unix.cpp) endif() -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) add_compile_options($<$:/MT>) add_compile_options($<$:/MT>) add_compile_options($<$:/MTd>) @@ -35,10 +35,10 @@ add_executable(${EXE_NAME} ${SOURCES}) install(TARGETS ${EXE_NAME} DESTINATION corehost_test) -if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") +if(CLR_CMAKE_TARGET_LINUX) target_link_libraries (${EXE_NAME} "dl") endif() -if((${CMAKE_SYSTEM_NAME} MATCHES "Linux") AND CLR_CMAKE_HOST_ARCH_ARM) +if(CLR_CMAKE_TARGET_LINUX AND CLR_CMAKE_TARGET_ARCH_ARM) target_link_libraries (${EXE_NAME} "atomic") endif() diff --git a/src/installer/corehost/cli/winrthost/CMakeLists.txt b/src/installer/corehost/cli/winrthost/CMakeLists.txt index 2c93d6082cd56..e364f3a06ac10 100644 --- a/src/installer/corehost/cli/winrthost/CMakeLists.txt +++ b/src/installer/corehost/cli/winrthost/CMakeLists.txt @@ -19,7 +19,7 @@ set (SOURCES ../fxr/fx_ver.cpp ) -if(WIN32) +if(CLR_CMAKE_TARGET_WIN32) list(APPEND SOURCES Exports.def) endif() @@ -29,7 +29,7 @@ include(../lib.cmake) add_definitions(-DFEATURE_LIBHOST=1) # Specify non-default Windows libs to be used for Arm/Arm64 builds -if (WIN32 AND (CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64)) +if (CLR_CMAKE_TARGET_WIN32 AND (CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ARCH_ARM64)) target_link_libraries(winrthost Advapi32.lib Ole32.lib OleAut32.lib) endif() diff --git a/src/installer/functions.cmake b/src/installer/functions.cmake index 78aeea246e2d4..58a6c81413aa0 100644 --- a/src/installer/functions.cmake +++ b/src/installer/functions.cmake @@ -45,11 +45,11 @@ function(get_include_directories IncludeDirectories) get_directory_property(dirs INCLUDE_DIRECTORIES) foreach(dir IN LISTS dirs) - if (CLR_CMAKE_HOST_ARCH_ARM AND WIN32) + if (CLR_CMAKE_TARGET_ARCH_ARM AND CLR_CMAKE_TARGET_WIN32) list(APPEND INC_DIRECTORIES /I${dir}) else() list(APPEND INC_DIRECTORIES -I${dir}) - endif(CLR_CMAKE_HOST_ARCH_ARM AND WIN32) + endif(CLR_CMAKE_TARGET_ARCH_ARM AND CLR_CMAKE_TARGET_WIN32) endforeach() set(${IncludeDirectories} ${INC_DIRECTORIES} PARENT_SCOPE) @@ -85,7 +85,7 @@ function(preprocess_compile_asm) set(oneValueArgs OUTPUT_OBJECTS) set(multiValueArgs ASM_FILES) cmake_parse_arguments(PARSE_ARGV 0 COMPILE_ASM "${options}" "${oneValueArgs}" "${multiValueArgs}") - + get_include_directories_asm(ASM_INCLUDE_DIRECTORIES) set (ASSEMBLED_OBJECTS "") @@ -127,12 +127,12 @@ endfunction() function(get_include_directories_asm IncludeDirectories) get_directory_property(dirs INCLUDE_DIRECTORIES) - if (CLR_CMAKE_HOST_ARCH_ARM AND WIN32) + if (CLR_CMAKE_TARGET_ARCH_ARM AND CLR_CMAKE_TARGET_WIN32) list(APPEND INC_DIRECTORIES "-I ") endif() foreach(dir IN LISTS dirs) - if (CLR_CMAKE_HOST_ARCH_ARM AND WIN32) + if (CLR_CMAKE_TARGET_ARCH_ARM AND CLR_CMAKE_TARGET_WIN32) list(APPEND INC_DIRECTORIES ${dir};) else() list(APPEND INC_DIRECTORIES -I${dir}) diff --git a/src/installer/settings.cmake b/src/installer/settings.cmake index 3bfe8105509ed..e17e44ab4e28d 100644 --- a/src/installer/settings.cmake +++ b/src/installer/settings.cmake @@ -4,13 +4,13 @@ set (CMAKE_CXX_STANDARD 11) -if (NOT WIN32) +if (NOT CLR_CMAKE_HOST_WIN32) # Try to locate the paxctl tool. Failure to find it is not fatal, # but the generated executables won't work on a system where PAX is set # to prevent applications to create executable memory mappings. find_program(PAXCTL paxctl) - if (CMAKE_SYSTEM_NAME STREQUAL Darwin) + if (CLR_CMAKE_HOST_DARWIN) # Ensure that dsymutil and strip are present find_program(DSYMUTIL dsymutil) if (DSYMUTIL STREQUAL "DSYMUTIL-NOTFOUND") @@ -21,10 +21,10 @@ if (NOT WIN32) if (STRIP STREQUAL "STRIP-NOTFOUND") message(FATAL_ERROR "strip not found") endif() - else (CMAKE_SYSTEM_NAME STREQUAL Darwin) + else (CLR_CMAKE_HOST_DARWIN) # Ensure that objcopy is present if(DEFINED ENV{ROOTFS_DIR}) - if(CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l OR CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL i686) + if(CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ARCH_ARM64 OR CLR_CMAKE_TARGET_ARCH_I386) find_program(OBJCOPY ${TOOLCHAIN}-objcopy) else() message(FATAL_ERROR "Only AMD64, X86, ARM64 and ARM are supported") @@ -32,14 +32,14 @@ if (NOT WIN32) else() find_program(OBJCOPY objcopy) endif() - if (OBJCOPY STREQUAL "OBJCOPY-NOTFOUND" AND NOT CMAKE_SYSTEM_PROCESSOR STREQUAL i686) + if (OBJCOPY STREQUAL "OBJCOPY-NOTFOUND" AND NOT CLR_CMAKE_TARGET_ARCH_I386) message(FATAL_ERROR "objcopy not found") endif() - endif (CMAKE_SYSTEM_NAME STREQUAL Darwin) + endif (CLR_CMAKE_HOST_DARWIN) endif () function(strip_symbols targetName outputFilename) - if(CLR_CMAKE_HOST_UNIX) + if(CLR_CMAKE_TARGET_UNIX) if(STRIP_SYMBOLS) # On the older version of cmake (2.8.12) used on Ubuntu 14.04 the TARGET_FILE @@ -51,38 +51,38 @@ function(strip_symbols targetName outputFilename) get_property(strip_source_file TARGET ${targetName} PROPERTY LOCATION) endif() - if(CMAKE_SYSTEM_NAME STREQUAL Darwin) + if(CLR_CMAKE_TARGET_DARWIN) set(strip_destination_file ${strip_source_file}.dwarf) add_custom_command( TARGET ${targetName} POST_BUILD - VERBATIM + VERBATIM COMMAND ${DSYMUTIL} --flat --minimize ${strip_source_file} COMMAND ${STRIP} -u -r ${strip_source_file} COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file} ) - else(CMAKE_SYSTEM_NAME STREQUAL Darwin) + else(CLR_CMAKE_TARGET_DARWIN) set(strip_destination_file ${strip_source_file}.dbg) add_custom_command( TARGET ${targetName} POST_BUILD - VERBATIM + VERBATIM COMMAND ${OBJCOPY} --only-keep-debug ${strip_source_file} ${strip_destination_file} COMMAND ${OBJCOPY} --strip-unneeded ${strip_source_file} COMMAND ${OBJCOPY} --add-gnu-debuglink=${strip_destination_file} ${strip_source_file} COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file} ) - endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) + endif(CLR_CMAKE_TARGET_DARWIN) set(${outputFilename} ${strip_destination_file} PARENT_SCOPE) endif(STRIP_SYMBOLS) - endif(CLR_CMAKE_HOST_UNIX) + endif(CLR_CMAKE_TARGET_UNIX) endfunction() function(install_symbols targetName destination_path) - if(WIN32) + if(CLR_CMAKE_TARGET_WIN32) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/$/${targetName}.pdb DESTINATION ${destination_path}) else() strip_symbols(${targetName} strip_destination_file) @@ -108,7 +108,7 @@ function(disable_pax_mprotect targetName) endif() endfunction() -if(WIN32) +if(CLR_CMAKE_HOST_WIN32) add_definitions(-DWIN32) add_definitions(-D_WIN32=1) if(IS_64BIT_BUILD) @@ -118,7 +118,7 @@ if(WIN32) add_compile_options($<$:-DNDEBUG>) add_compile_options($<$:-DNDEBUG>) add_compile_options($<$:/Od>) - add_compile_options(/guard:cf) + add_compile_options(/guard:cf) add_compile_options(/d2Zi+) # make optimized builds debugging easier add_compile_options(/Oi) # enable intrinsics add_compile_options(/Oy-) # disable suppressing of the creation of frame pointers on the call stack for quicker function calls @@ -183,33 +183,33 @@ endif() # This is required to map a symbol reference to a matching definition local to the module (.so) # containing the reference instead of using definitions from other modules. -if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") +if(CLR_CMAKE_TARGET_LINUX) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic -Bsymbolic-functions") add_link_options(-Wl,--build-id=sha1 -Wl,-z,relro,-z,now) add_compile_options(-fstack-protector-strong) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +elseif(CLR_CMAKE_TARGET_DARWIN) add_compile_options(-fstack-protector) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") +elseif(CLR_CMAKE_TARGET_FREEBSD) add_link_options(-fuse-ld=lld -Wl,--build-id=sha1 -Wl,-z,relro,-z,now) add_compile_options(-fstack-protector) endif() add_definitions(-D_NO_ASYNCRTIMP) add_definitions(-D_NO_PPLXIMP) -if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") +if(CLR_CMAKE_TARGET_LINUX) add_definitions(-D__LINUX__) endif() -if(CLR_CMAKE_HOST_ARCH_I386) +if(CLR_CMAKE_TARGET_ARCH_I386) add_definitions(-D_TARGET_X86_=1) set(ARCH_SPECIFIC_FOLDER_NAME "i386") -elseif(CLR_CMAKE_HOST_ARCH_AMD64) +elseif(CLR_CMAKE_TARGET_ARCH_AMD64) add_definitions(-D_TARGET_AMD64_=1) set(ARCH_SPECIFIC_FOLDER_NAME "AMD64") -elseif(CLR_CMAKE_HOST_ARCH_ARM) +elseif(CLR_CMAKE_TARGET_ARCH_ARM) add_definitions(-D_TARGET_ARM_=1) set(ARCH_SPECIFIC_FOLDER_NAME "arm") -elseif(CLR_CMAKE_HOST_ARCH_ARM64) +elseif(CLR_CMAKE_TARGET_ARCH_ARM64) add_definitions(-D_TARGET_ARM64_=1) set(ARCH_SPECIFIC_FOLDER_NAME "arm64") else() @@ -217,7 +217,7 @@ else() endif() # Specify the Windows SDK to be used for Arm builds -if (WIN32 AND (CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64)) +if (CLR_CMAKE_TARGET_WIN32 AND (CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ARCH_ARM64)) if(NOT DEFINED CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION OR CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION STREQUAL "" ) message(FATAL_ERROR "Windows SDK is required for the Arm32 or Arm64 build.") else() @@ -225,7 +225,7 @@ if (WIN32 AND (CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64)) endif() endif () -if (WIN32) +if (CLR_CMAKE_HOST_WIN32) if(CLR_CMAKE_HOST_ARCH_ARM) # Explicitly specify the assembler to be used for Arm32 compile file(TO_CMAKE_PATH "$ENV{VCToolsInstallDir}\\bin\\HostX86\\arm\\armasm.exe" CMAKE_ASM_COMPILER) diff --git a/src/libraries/Native/Unix/CMakeLists.txt b/src/libraries/Native/Unix/CMakeLists.txt index b1a6b2746e02e..27283371942da 100644 --- a/src/libraries/Native/Unix/CMakeLists.txt +++ b/src/libraries/Native/Unix/CMakeLists.txt @@ -3,19 +3,11 @@ cmake_policy(SET CMP0042 NEW) project(CoreFX C) -if(NOT CMAKE_SYSTEM_NAME STREQUAL Emscripten) - cmake_policy(SET CMP0083 NEW) - - include(CheckPIESupported) +include(${CLR_ENG_NATIVE_DIR}/configureplatform.cmake) - # All code we build should be compiled as position independent - check_pie_supported(OUTPUT_VARIABLE PIE_SUPPORT_OUTPUT LANGUAGES C) - if(NOT MSVC AND NOT CMAKE_C_LINK_PIE_SUPPORTED) - message(WARNING "PIE is not supported at link time: ${PIE_SUPPORT_OUTPUT}.\n" - "PIE link options will not be passed to linker.") - endif() - set(CMAKE_POSITION_INDEPENDENT_CODE ON) -endif(NOT CMAKE_SYSTEM_NAME STREQUAL Emscripten) +if(NOT CLR_CMAKE_TARGET_ARCH_WASM) + cmake_policy(SET CMP0083 NEW) +endif(NOT CLR_CMAKE_TARGET_ARCH_WASM) set(CMAKE_MACOSX_RPATH ON) set(CMAKE_INSTALL_PREFIX $ENV{__CMakeBinDir}) @@ -43,8 +35,7 @@ if(CMAKE_C_COMPILER_ID STREQUAL Clang) endif() add_compile_options(-Werror) -if(CMAKE_SYSTEM_NAME STREQUAL Emscripten) - set(CLR_CMAKE_PLATFORM_WASM 1) +if(CLR_CMAKE_TARGET_ARCH_WASM) add_definitions(-D_WASM_) # The emscripten build has additional warnings so -Werror breaks add_compile_options(-Wno-unused-parameter) @@ -53,41 +44,41 @@ if(CMAKE_SYSTEM_NAME STREQUAL Emscripten) add_compile_options(-Wno-implicit-int-float-conversion) else() set(GEN_SHARED_LIB 1) -endif(CMAKE_SYSTEM_NAME STREQUAL Emscripten) +endif(CLR_CMAKE_TARGET_ARCH_WASM) -if (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL amd64) +if (CLR_CMAKE_TARGET_ARCH_AMD64) add_definitions(-DTARGET_64BIT=1) add_definitions(-DTARGET_AMD64) -elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL x86 OR CMAKE_SYSTEM_PROCESSOR STREQUAL i686) +elseif (CLR_CMAKE_TARGET_ARCH_I386) add_definitions(-DTARGET_32BIT=1) add_definitions(-DTARGET_X86) add_definitions(-D_FILE_OFFSET_BITS=64) -elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) +elseif (CLR_CMAKE_TARGET_ARCH_ARM64) add_definitions(-DTARGET_64BIT=1) add_definitions(-DTARGET_ARM64) -elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l) - add_definitions(-DTARGET_32BIT=1) - add_definitions(-DTARGET_ARM) - add_definitions(-D_FILE_OFFSET_BITS=64) - if(ARM_SOFTFP) - add_compile_options(-mfloat-abi=softfp) - endif () - add_compile_options(-mthumb) - if (NOT DEFINED CLR_ARM_FPU_TYPE) - set(CLR_ARM_FPU_TYPE vfpv3) - endif(NOT DEFINED CLR_ARM_FPU_TYPE) - - add_compile_options(-mfpu=${CLR_ARM_FPU_TYPE}) - if (NOT DEFINED CLR_ARM_FPU_CAPABILITY) - set(CLR_ARM_FPU_CAPABILITY 0x7) - endif(NOT DEFINED CLR_ARM_FPU_CAPABILITY) - add_definitions(-DCLR_ARM_FPU_CAPABILITY=${CLR_ARM_FPU_CAPABILITY}) - - add_compile_options(-march=armv7-a) -elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL arm) +elseif (CLR_CMAKE_TARGET_ARCH_ARM) add_definitions(-DTARGET_32BIT=1) add_definitions(-DTARGET_ARM) add_definitions(-D_FILE_OFFSET_BITS=64) + + if (CLR_CMAKE_TARGET_ARCH_ARMV7L) + if(ARM_SOFTFP) + add_compile_options(-mfloat-abi=softfp) + endif () + + add_compile_options(-mthumb) + if (NOT DEFINED CLR_ARM_FPU_TYPE) + set(CLR_ARM_FPU_TYPE vfpv3) + endif(NOT DEFINED CLR_ARM_FPU_TYPE) + + add_compile_options(-mfpu=${CLR_ARM_FPU_TYPE}) + if (NOT DEFINED CLR_ARM_FPU_CAPABILITY) + set(CLR_ARM_FPU_CAPABILITY 0x7) + endif(NOT DEFINED CLR_ARM_FPU_CAPABILITY) + + add_definitions(-DCLR_ARM_FPU_CAPABILITY=${CLR_ARM_FPU_CAPABILITY}) + add_compile_options(-march=armv7-a) + endif() endif () string(TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_CMAKE_BUILD_TYPE) @@ -117,7 +108,7 @@ if (UPPERCASE_CMAKE_BUILD_TYPE STREQUAL DEBUG) elseif (UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELEASE) # Use O1 option when the clang version is smaller than 3.9 # Otherwise use O3 option in release build - if (CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l AND DEFINED ENV{CROSSCOMPILE} AND CMAKE_C_COMPILER_VERSION VERSION_LESS 3.9) + if (CLR_CMAKE_TARGET_ARCH_ARMV7L AND DEFINED ENV{CROSSCOMPILE} AND CMAKE_C_COMPILER_VERSION VERSION_LESS 3.9) add_compile_options (-O1) else() add_compile_options (-O3) @@ -127,8 +118,8 @@ else () message(FATAL_ERROR "Unknown build type. Set CMAKE_BUILD_TYPE to DEBUG or RELEASE.") endif () -if(CMAKE_SYSTEM_NAME STREQUAL Emscripten) -elseif (APPLE) +if(CLR_CMAKE_TARGET_ARCH_WASM) +elseif (CLR_CMAKE_TARGET_DARWIN) add_definitions(-D__APPLE_USE_RFC_3542) # We cannot enable "stack-protector-strong" on OS X due to a bug in clang compiler (current version 7.0.2) @@ -137,35 +128,14 @@ else () add_compile_options(-fstack-protector-strong) endif () -if (CMAKE_SYSTEM_NAME STREQUAL Linux) +if (CLR_CMAKE_TARGET_LINUX) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE") endif () -if(CMAKE_SYSTEM_NAME STREQUAL Linux) - set(CLR_CMAKE_PLATFORM_UNIX 1) -endif(CMAKE_SYSTEM_NAME STREQUAL Linux) - -if(CMAKE_SYSTEM_NAME STREQUAL Darwin) - set(CLR_CMAKE_PLATFORM_UNIX 1) -endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - -if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) - set(CLR_CMAKE_PLATFORM_UNIX 1) +if(CLR_CMAKE_TARGET_FREEBSD) add_definitions(-D_BSD_SOURCE) # required for getline add_link_options(-fuse-ld=lld) -endif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) - -if(CMAKE_SYSTEM_NAME STREQUAL OpenBSD) - set(CLR_CMAKE_PLATFORM_UNIX 1) -endif(CMAKE_SYSTEM_NAME STREQUAL OpenBSD) - -if(CMAKE_SYSTEM_NAME STREQUAL NetBSD) - set(CLR_CMAKE_PLATFORM_UNIX 1) -endif(CMAKE_SYSTEM_NAME STREQUAL NetBSD) - -if(CMAKE_SYSTEM_NAME STREQUAL SunOS) - set(CLR_CMAKE_PLATFORM_UNIX 1) -endif(CMAKE_SYSTEM_NAME STREQUAL SunOS) +endif(CLR_CMAKE_TARGET_FREEBSD) # CLR_ADDITIONAL_LINKER_FLAGS - used for passing additional arguments to linker # CLR_ADDITIONAL_COMPILER_OPTIONS - used for passing additional arguments to compiler @@ -173,20 +143,10 @@ endif(CMAKE_SYSTEM_NAME STREQUAL SunOS) # For example: # ./build-native.sh cmakeargs -DCLR_ADDITIONAL_COMPILER_OPTIONS=<...> cmakeargs -DCLR_ADDITIONAL_LINKER_FLAGS=<...> # -if(CLR_CMAKE_PLATFORM_UNIX) - if (CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(CLR_CMAKE_TARGET_UNIX) + if (CLR_CMAKE_TARGET_DARWIN) add_link_options(-Wl,-bind_at_load) - else (CMAKE_SYSTEM_NAME STREQUAL Darwin) - add_compile_options($<$:-Wa,--noexecstack>) - add_link_options(-Wl,--build-id=sha1 -Wl,-z,relro,-z,now) - endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CLR_ADDITIONAL_LINKER_FLAGS}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CLR_ADDITIONAL_LINKER_FLAGS}" ) - add_compile_options(${CLR_ADDITIONAL_COMPILER_OPTIONS}) -endif(CLR_CMAKE_PLATFORM_UNIX) -if (NOT WIN32) - if (CMAKE_SYSTEM_NAME STREQUAL Darwin) # Ensure that dsymutil and strip are present find_program(DSYMUTIL dsymutil) if (DSYMUTIL STREQUAL "DSYMUTIL-NOTFOUND") @@ -197,12 +157,15 @@ if (NOT WIN32) if (STRIP STREQUAL "STRIP-NOTFOUND") message(FATAL_ERROR "strip not found") endif() - elseif (CLR_CMAKE_PLATFORM_WASM) + elseif (CLR_CMAKE_TARGET_ARCH_WASM) # No object stripping for WASM - else (CMAKE_SYSTEM_NAME STREQUAL Darwin) + else (CLR_CMAKE_TARGET_DARWIN) + add_compile_options($<$:-Wa,--noexecstack>) + add_link_options(-Wl,--build-id=sha1 -Wl,-z,relro,-z,now) + # Ensure that objcopy is present if(DEFINED ENV{CROSSCOMPILE}) - if(CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l OR CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL i686 OR CMAKE_SYSTEM_PROCESSOR STREQUAL arm) + if(CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ARCH_ARM64 OR CLR_CMAKE_TARGET_ARCH_I386) find_program(OBJCOPY ${TOOLCHAIN}-objcopy) else() message(FATAL_ERROR "Only AMD64, X86, ARM64 and ARM are supported") @@ -210,15 +173,18 @@ if (NOT WIN32) else() find_program(OBJCOPY objcopy) endif() - if (OBJCOPY STREQUAL "OBJCOPY-NOTFOUND" AND NOT CMAKE_SYSTEM_PROCESSOR STREQUAL i686) + if (OBJCOPY STREQUAL "OBJCOPY-NOTFOUND" AND NOT CLR_CMAKE_TARGET_ARCH_I386) message(FATAL_ERROR "objcopy not found") endif() - endif (CMAKE_SYSTEM_NAME STREQUAL Darwin) -endif () + endif(CLR_CMAKE_TARGET_DARWIN) + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CLR_ADDITIONAL_LINKER_FLAGS}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CLR_ADDITIONAL_LINKER_FLAGS}" ) + add_compile_options(${CLR_ADDITIONAL_COMPILER_OPTIONS}) +endif(CLR_CMAKE_TARGET_UNIX) function(strip_symbols targetName outputFilename) - if(CLR_CMAKE_PLATFORM_UNIX) + if(CLR_CMAKE_TARGET_UNIX) if(STRIP_SYMBOLS) # On the older version of cmake (2.8.12) used on Ubuntu 14.04 the TARGET_FILE @@ -230,7 +196,7 @@ function(strip_symbols targetName outputFilename) get_property(strip_source_file TARGET ${targetName} PROPERTY LOCATION) endif() - if(CMAKE_SYSTEM_NAME STREQUAL Darwin) + if(CLR_CMAKE_TARGET_DARWIN) set(strip_destination_file ${strip_source_file}.dwarf) add_custom_command( @@ -241,7 +207,7 @@ function(strip_symbols targetName outputFilename) COMMAND ${STRIP} -u -r ${strip_source_file} COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file} ) - else(CMAKE_SYSTEM_NAME STREQUAL Darwin) + else(CLR_CMAKE_TARGET_DARWIN) set(strip_destination_file ${strip_source_file}.dbg) add_custom_command( @@ -253,11 +219,11 @@ function(strip_symbols targetName outputFilename) COMMAND ${OBJCOPY} --add-gnu-debuglink=${strip_destination_file} ${strip_source_file} COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file} ) - endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) + endif(CLR_CMAKE_TARGET_DARWIN) set(${outputFilename} ${strip_destination_file} PARENT_SCOPE) endif(STRIP_SYMBOLS) - endif(CLR_CMAKE_PLATFORM_UNIX) + endif(CLR_CMAKE_TARGET_UNIX) endfunction() function(install_library_and_symbols targetName) @@ -273,7 +239,7 @@ function(install_library_and_symbols targetName) endif() install(PROGRAMS ${install_source_file} DESTINATION .) - if(WIN32) + if(CLR_CMAKE_TARGET_WIN32) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/$/${targetName}.pdb DESTINATION PDB) else() install(FILES ${strip_destination_file} DESTINATION .) @@ -285,8 +251,8 @@ include(${CLR_ENG_NATIVE_DIR}/configuretools.cmake) add_subdirectory(System.IO.Compression.Native) -if (NOT CLR_CMAKE_PLATFORM_WASM) - add_subdirectory(System.IO.Ports.Native) +if (NOT CLR_CMAKE_TARGET_ARCH_WASM) + add_subdirectory(System.IO.Ports.Native) endif() if(CMAKE_C_COMPILER_ID STREQUAL Clang) @@ -295,12 +261,12 @@ endif() add_subdirectory(System.Native) -if (NOT CLR_CMAKE_PLATFORM_WASM) +if (NOT CLR_CMAKE_TARGET_ARCH_WASM) add_subdirectory(System.Globalization.Native) add_subdirectory(System.Net.Security.Native) add_subdirectory(System.Security.Cryptography.Native) endif() -if(APPLE) +if(CLR_CMAKE_TARGET_DARWIN) add_subdirectory(System.Security.Cryptography.Native.Apple) endif() diff --git a/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt index f6380c0b03af1..f185743c88d14 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt @@ -20,7 +20,7 @@ if(UTYPES_H STREQUAL UTYPES_H-NOTFOUND) return() endif() -if(CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(CLR_CMAKE_TARGET_DARWIN) find_library(ICUCORE icucore) if(ICUCORE STREQUAL ICUCORE-NOTFOUND) message(FATAL_ERROR "Cannot find libicucore, skipping build for System.Globalization.Native. .NET globalization is not expected to function.") @@ -85,7 +85,7 @@ set_target_properties(System.Globalization.Native-Static PROPERTIES OUTPUT_NAME install (TARGETS System.Globalization.Native-Static DESTINATION .) -if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(NOT CLR_CMAKE_TARGET_DARWIN) if (GEN_SHARED_LIB) add_custom_command(TARGET System.Globalization.Native POST_BUILD COMMENT "Verifying System.Globalization.Native.so dependencies" diff --git a/src/libraries/Native/Unix/System.Globalization.Native/configure.cmake b/src/libraries/Native/Unix/System.Globalization.Native/configure.cmake index 28fc2dea1e67b..75388ab621136 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/configure.cmake +++ b/src/libraries/Native/Unix/System.Globalization.Native/configure.cmake @@ -8,7 +8,7 @@ CHECK_C_SOURCE_COMPILES(" int main(void) { enum UDateFormatSymbolType e = UDAT_STANDALONE_SHORTER_WEEKDAYS; } " HAVE_UDAT_STANDALONE_SHORTER_WEEKDAYS) -if(CMAKE_SYSTEM_NAME STREQUAL Darwin) +if(CLR_CMAKE_TARGET_DARWIN) set(CMAKE_REQUIRED_LIBRARIES ${ICUCORE}) else() set(CMAKE_REQUIRED_LIBRARIES ${ICUUC} ${ICUI18N}) diff --git a/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt index 2b04724e3be99..e064e6683f054 100644 --- a/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt @@ -1,6 +1,6 @@ project(System.IO.Compression.Native C) -if (CLR_CMAKE_PLATFORM_WASM) +if (CLR_CMAKE_TARGET_WASM) add_definitions(-s USE_ZLIB) else () find_package(ZLIB REQUIRED) diff --git a/src/libraries/Native/Unix/System.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Native/CMakeLists.txt index 82e4a84d9dc56..c56450c678dd2 100644 --- a/src/libraries/Native/Unix/System.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.Native/CMakeLists.txt @@ -23,13 +23,13 @@ set(NATIVE_SOURCES pal_sysctl.c ) -if (CMAKE_SYSTEM_NAME STREQUAL Linux) +if (CLR_CMAKE_TARGET_LINUX) set(NATIVE_SOURCES ${NATIVE_SOURCES} pal_networkchange.c) if (!HAVE_LINUX_RTNETLINK_H) message(FATAL_ERROR "Could not find linux/rtnetlink.h") endif () -elseif (CMAKE_SYSTEM_NAME STREQUAL FreeBSD) +elseif (CLR_CMAKE_TARGET_FREEBSD) set(NATIVE_SOURCES ${NATIVE_SOURCES} pal_networkchange.c) if (!HAVE_RT_MSGHDR) @@ -43,11 +43,11 @@ if (GEN_SHARED_LIB) ${NATIVE_SOURCES} ${VERSION_FILE_PATH} ) - if (CMAKE_SYSTEM_NAME STREQUAL Linux AND NOT CLR_CMAKE_PLATFORM_ANDROID) + if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ANDROID) target_link_libraries(System.Native rt) endif () - if (CMAKE_SYSTEM_NAME STREQUAL FreeBSD) + if (CLR_CMAKE_TARGET_FREEBSD) target_link_libraries(System.Native pthread) if (HAVE_INOTIFY) find_library(INOTIFY_LIBRARY inotify HINTS /usr/local/lib) diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Security.Cryptography.Native/CMakeLists.txt index cacf8a332cca4..8515b80810f3e 100644 --- a/src/libraries/Native/Unix/System.Security.Cryptography.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native/CMakeLists.txt @@ -52,7 +52,7 @@ set(NATIVECRYPTO_SOURCES # Always build portable on macOS because OpenSSL is not a system component # and our prebuilts should not assume a specific ABI version for the types # that use OpenSSL at runtime. -if (APPLE) +if (CLR_CMAKE_TARGET_DARWIN) set(FEATURE_DISTRO_AGNOSTIC_SSL True) endif() @@ -91,8 +91,8 @@ if (FEATURE_DISTRO_AGNOSTIC_SSL) if (NOT APPLE) add_custom_command(TARGET System.Security.Cryptography.Native.OpenSsl POST_BUILD COMMENT "Verifying System.Security.Cryptography.Native.OpenSsl.so dependencies" - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../verify-so.sh - $ + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../verify-so.sh + $ "Verification failed. System.Security.Cryptography.Native.OpenSsl.so has undefined dependencies. These are likely OpenSSL APIs that need to be added to opensslshim.h" VERBATIM ) diff --git a/src/libraries/Native/Unix/configure.cmake b/src/libraries/Native/Unix/configure.cmake index 139102ab852b3..e072d74a554c1 100644 --- a/src/libraries/Native/Unix/configure.cmake +++ b/src/libraries/Native/Unix/configure.cmake @@ -7,21 +7,21 @@ include(CheckStructHasMember) include(CheckSymbolExists) include(CheckTypeSize) -if (CMAKE_SYSTEM_NAME STREQUAL Linux) +if (CLR_CMAKE_TARGET_LINUX) set(PAL_UNIX_NAME \"LINUX\") -elseif (CMAKE_SYSTEM_NAME STREQUAL Darwin) +elseif (CLR_CMAKE_TARGET_DARWIN) set(PAL_UNIX_NAME \"OSX\") # Xcode's clang does not include /usr/local/include by default, but brew's does. # This ensures an even playing field. include_directories(SYSTEM /usr/local/include) -elseif (CMAKE_SYSTEM_NAME STREQUAL FreeBSD) +elseif (CLR_CMAKE_TARGET_FREEBSD) set(PAL_UNIX_NAME \"FREEBSD\") include_directories(SYSTEM /usr/local/include) set(CMAKE_REQUIRED_INCLUDES /usr/local/include) -elseif (CMAKE_SYSTEM_NAME STREQUAL NetBSD) +elseif (CLR_CMAKE_TARGET_NETBSD) set(PAL_UNIX_NAME \"NETBSD\") -elseif (CMAKE_SYSTEM_NAME STREQUAL Emscripten) +elseif (CLR_CMAKE_TARGET_ARCH_WASM) set(PAL_UNIX_NAME \"WEBASSEMBLY\") else () message(FATAL_ERROR "Unknown platform. Cannot define PAL_UNIX_NAME, used by RuntimeInformation.") @@ -431,13 +431,12 @@ set(CMAKE_REQUIRED_FLAGS ${PREVIOUS_CMAKE_REQUIRED_FLAGS}) set(HAVE_SUPPORT_FOR_DUAL_MODE_IPV4_PACKET_INFO 0) -if (CMAKE_SYSTEM_NAME STREQUAL Linux) - if (NOT CLR_CMAKE_PLATFORM_ANDROID) +if (CLR_CMAKE_TARGET_LINUX) + if (NOT CLR_CMAKE_TARGET_ANDROID) set(CMAKE_REQUIRED_LIBRARIES rt) endif () set(HAVE_SUPPORT_FOR_DUAL_MODE_IPV4_PACKET_INFO 1) - endif () check_c_source_runs( @@ -720,8 +719,8 @@ check_c_source_compiles( set (CMAKE_REQUIRED_FLAGS ${PREVIOUS_CMAKE_REQUIRED_FLAGS}) set (PREVIOUS_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) -if (HAVE_SYS_INOTIFY_H AND CMAKE_SYSTEM_NAME STREQUAL FreeBSD) -set (CMAKE_REQUIRED_LIBRARIES "-linotify -L/usr/local/lib") +if (HAVE_SYS_INOTIFY_H AND CLR_CMAKE_TARGET_FREEBSD) + set (CMAKE_REQUIRED_LIBRARIES "-linotify -L/usr/local/lib") endif() check_symbol_exists( @@ -743,7 +742,7 @@ set (CMAKE_REQUIRED_LIBRARIES ${PREVIOUS_CMAKE_REQUIRED_LIBRARIES}) set (HAVE_INOTIFY 0) if (HAVE_INOTIFY_INIT AND HAVE_INOTIFY_ADD_WATCH AND HAVE_INOTIFY_RM_WATCH) set (HAVE_INOTIFY 1) -elseif (CMAKE_SYSTEM_NAME STREQUAL Linux) +elseif (CLR_CMAKE_TARGET_LINUX) message(FATAL_ERROR "Cannot find inotify functions on a Linux platform.") endif()