https://github.com/dotnet/runtime/pull/33716 set TARGET_DARWIN for iOS too but most of the logic is really OSX-specific.
Unset TARGET_DARWIN for iOS and rename the rest of the occurrences to TARGET_OSX.
if (CLR_CMAKE_HOST_UNIX)
add_definitions(-DHOST_UNIX)
- if(CLR_CMAKE_HOST_DARWIN)
+ if(CLR_CMAKE_HOST_OSX)
message("Detected OSX x86_64")
- endif(CLR_CMAKE_HOST_DARWIN)
+ endif(CLR_CMAKE_HOST_OSX)
if(CLR_CMAKE_HOST_FREEBSD)
message("Detected FreeBSD amd64")
# using twos-complement representation (this is normally undefined according to the C++ spec).
add_compile_options(-fwrapv)
- if(CLR_CMAKE_HOST_DARWIN)
+ if(CLR_CMAKE_HOST_OSX)
# We cannot enable "stack-protector-strong" on OS X due to a bug in clang compiler (current version 7.0.2)
add_compile_options(-fstack-protector)
else()
if (COMPILER_SUPPORTS_F_STACK_PROTECTOR_STRONG)
add_compile_options(-fstack-protector-strong)
endif()
- endif(CLR_CMAKE_HOST_DARWIN)
+ endif(CLR_CMAKE_HOST_OSX)
# Suppress warnings-as-errors in release branches to reduce servicing churn
if (PRERELEASE)
add_compile_options(-fvisibility=hidden)
# Specify the minimum supported version of macOS
- if(CLR_CMAKE_HOST_DARWIN)
+ if(CLR_CMAKE_HOST_OSX)
set(MACOS_VERSION_MIN_FLAGS -mmacosx-version-min=10.12)
add_compile_options(${MACOS_VERSION_MIN_FLAGS})
add_link_options(${MACOS_VERSION_MIN_FLAGS})
- endif(CLR_CMAKE_HOST_DARWIN)
+ endif(CLR_CMAKE_HOST_OSX)
endif(CLR_CMAKE_HOST_UNIX)
if(CLR_CMAKE_TARGET_UNIX)
add_definitions(-DTARGET_UNIX)
# Contracts are disabled on UNIX.
add_definitions(-DDISABLE_CONTRACTS)
- if(CLR_CMAKE_TARGET_DARWIN)
- add_definitions(-DTARGET_DARWIN)
- endif(CLR_CMAKE_TARGET_DARWIN)
+ if(CLR_CMAKE_TARGET_OSX)
+ add_definitions(-DTARGET_OSX)
+ endif(CLR_CMAKE_TARGET_OSX)
if(CLR_CMAKE_TARGET_FREEBSD)
add_definitions(-DTARGET_FREEBSD)
endif(CLR_CMAKE_TARGET_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(CLR_CMAKE_HOST_OSX 1)
set(CMAKE_ASM_COMPILE_OBJECT "${CMAKE_C_COMPILER} <FLAGS> <DEFINES> <INCLUDES> -o <OBJECT> -c <SOURCE>")
endif(CLR_CMAKE_HOST_OS STREQUAL Darwin)
if(CLR_CMAKE_HOST_OS STREQUAL iOS)
set(CLR_CMAKE_HOST_UNIX 1)
set(CLR_CMAKE_HOST_IOS 1)
- set(CLR_CMAKE_HOST_DARWIN 1)
if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
set(CLR_CMAKE_HOST_UNIX_AMD64 1)
elseif(CMAKE_OSX_ARCHITECTURES MATCHES "armv7")
if(CLR_CMAKE_TARGET_OS STREQUAL Darwin)
set(CLR_CMAKE_TARGET_UNIX 1)
- set(CLR_CMAKE_TARGET_DARWIN 1)
+ set(CLR_CMAKE_TARGET_OSX 1)
endif(CLR_CMAKE_TARGET_OS STREQUAL Darwin)
if(CLR_CMAKE_TARGET_OS STREQUAL iOS)
set(CLR_CMAKE_TARGET_UNIX 1)
set(CLR_CMAKE_TARGET_IOS 1)
- set(CLR_CMAKE_TARGET_DARWIN 1)
endif(CLR_CMAKE_TARGET_OS STREQUAL iOS)
if(CLR_CMAKE_TARGET_OS STREQUAL FreeBSD)
locate_toolchain_exec(ranlib CMAKE_RANLIB)
endif()
- if(NOT CLR_CMAKE_TARGET_DARWIN)
+ if(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_IOS)
locate_toolchain_exec(objdump CMAKE_OBJDUMP)
if(CMAKE_SYSTEM_NAME STREQUAL Android)
endif()
locate_toolchain_exec(objcopy CMAKE_OBJCOPY)
- endif(NOT CLR_CMAKE_TARGET_DARWIN)
+ endif(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_IOS)
endif()
if (CLR_CMAKE_HOST_UNIX)
set(strip_source_file $<TARGET_FILE:${targetName}>)
- if (CLR_CMAKE_TARGET_DARWIN)
+ if (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
set(strip_destination_file ${strip_source_file}.dwarf)
# Ensure that dsymutil and strip are present
COMMAND ${STRIP} -S ${strip_source_file}
COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file}
)
- else (CLR_CMAKE_TARGET_DARWIN)
+ else (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
set(strip_destination_file ${strip_source_file}.dbg)
add_custom_command(
COMMAND ${CMAKE_OBJCOPY} --add-gnu-debuglink=${strip_destination_file} ${strip_source_file}
COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file}
)
- endif (CLR_CMAKE_TARGET_DARWIN)
+ endif (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
set(${outputFilename} ${strip_destination_file} PARENT_SCOPE)
endif(CLR_CMAKE_HOST_UNIX)
if (CLR_CMAKE_TARGET_UNIX)
- if(CLR_CMAKE_TARGET_DARWIN)
+ if(CLR_CMAKE_TARGET_OSX)
add_definitions(-D_XOPEN_SOURCE)
add_definitions(-DFEATURE_DATATARGET4)
- endif(CLR_CMAKE_TARGET_DARWIN)
+ endif(CLR_CMAKE_TARGET_OSX)
if (CLR_CMAKE_TARGET_ARCH_AMD64)
add_definitions(-DUNIX_AMD64_ABI)
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_REJIT>)
-if (CLR_CMAKE_HOST_UNIX AND CLR_CMAKE_TARGET_UNIX AND NOT CLR_CMAKE_TARGET_DARWIN)
+if (CLR_CMAKE_HOST_UNIX AND CLR_CMAKE_TARGET_UNIX AND NOT CLR_CMAKE_TARGET_OSX)
add_definitions(-DFEATURE_REMOTE_PROC_MEM)
-endif (CLR_CMAKE_HOST_UNIX AND CLR_CMAKE_TARGET_UNIX AND NOT CLR_CMAKE_TARGET_DARWIN)
+endif (CLR_CMAKE_HOST_UNIX AND CLR_CMAKE_TARGET_UNIX AND NOT CLR_CMAKE_TARGET_OSX)
if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_ARCH_ARM64)
add_definitions(-DFEATURE_STUBS_AS_IL)
endif(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386)
endif(CLR_CMAKE_TARGET_WIN32)
-if(CLR_CMAKE_TARGET_DARWIN)
+if(CLR_CMAKE_TARGET_OSX)
add_definitions(-DFEATURE_WRITEBARRIER_COPY)
-endif(CLR_CMAKE_TARGET_DARWIN)
+endif(CLR_CMAKE_TARGET_OSX)
if (NOT CLR_CMAKE_TARGET_ARCH_I386 OR NOT CLR_CMAKE_TARGET_WIN32)
add_definitions(-DFEATURE_EH_FUNCLETS)
# For more information: http://www.cmake.org/Wiki/CMake_RPATH_handling.
if (CORECLR_SET_RPATH)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
- if(CLR_CMAKE_HOST_DARWIN)
+ if(CLR_CMAKE_HOST_OSX)
set(CMAKE_INSTALL_RPATH "@loader_path")
else()
set(CMAKE_INSTALL_RPATH "\$ORIGIN")
- endif(CLR_CMAKE_HOST_DARWIN)
+ endif(CLR_CMAKE_HOST_OSX)
endif (CORECLR_SET_RPATH)
remove_definitions(-DUNICODE)
add_dependencies(daccess eventing_headers)
-if(CLR_CMAKE_HOST_DARWIN OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
+if(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
add_definitions(-DUSE_DAC_TABLE_RVA)
add_custom_command(
)
add_dependencies(daccess dactablerva_header)
-endif(CLR_CMAKE_HOST_DARWIN OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
+endif(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
set(EXPORTS_LINKER_OPTION -Wl,--version-script=${EXPORTS_FILE})
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
-if(CLR_CMAKE_HOST_DARWIN)
+if(CLR_CMAKE_HOST_OSX)
# Add linker exports file option
set(EXPORTS_LINKER_OPTION -Wl,-exported_symbols_list,${EXPORTS_FILE})
-endif(CLR_CMAKE_HOST_DARWIN)
+endif(CLR_CMAKE_HOST_OSX)
add_library_clr(dbgshim SHARED ${DBGSHIM_SOURCES})
# Add dependency on export file
add_custom_target(mscordaccore_exports DEPENDS ${EXPORTS_FILE})
- if(CLR_CMAKE_HOST_DARWIN OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
+ if(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
generate_exports_file(${DEF_SOURCES} ${EXPORTS_FILE})
- endif(CLR_CMAKE_HOST_DARWIN OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
+ endif(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
if(CLR_CMAKE_HOST_LINUX)
set(EXPORTS_LINKER_OPTION -Wl,--version-script=${EXPORTS_FILE})
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
-if(CLR_CMAKE_HOST_DARWIN)
+if(CLR_CMAKE_HOST_OSX)
# Add linker exports file option
set(EXPORTS_LINKER_OPTION -Wl,-exported_symbols_list,${EXPORTS_FILE})
-endif(CLR_CMAKE_HOST_DARWIN)
+endif(CLR_CMAKE_HOST_OSX)
# Create object library to enable creation of proper dependency of mscordaccore.exp on mscordac.obj and
# mscordaccore on both the mscordaccore.exp and mscordac.obj.
# For more information: http://www.cmake.org/Wiki/CMake_RPATH_handling.
if(CORECLR_SET_RPATH)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
- if(CLR_CMAKE_HOST_DARWIN)
+ if(CLR_CMAKE_HOST_OSX)
set(CMAKE_INSTALL_RPATH "@loader_path")
else()
set(CMAKE_INSTALL_RPATH "\$ORIGIN")
- endif(CLR_CMAKE_HOST_DARWIN)
+ endif(CLR_CMAKE_HOST_OSX)
endif(CORECLR_SET_RPATH)
set(MSCORDBI_SOURCES
set(EXPORTS_LINKER_OPTION -Wl,--version-script=${EXPORTS_FILE})
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD)
-if(CLR_CMAKE_HOST_DARWIN)
+if(CLR_CMAKE_HOST_OSX)
# Add linker exports file option
set(EXPORTS_LINKER_OPTION -Wl,-exported_symbols_list,${EXPORTS_FILE})
-endif(CLR_CMAKE_HOST_DARWIN)
+endif(CLR_CMAKE_HOST_OSX)
add_library_clr(mscordbi SHARED ${MSCORDBI_SOURCES})
target_precompile_header(TARGET mscordbi HEADER stdafx.h)
set(EXPORTS_LINKER_OPTION -Wl,--version-script=${EXPORTS_FILE})
endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD)
- if(CLR_CMAKE_TARGET_DARWIN)
+ if(CLR_CMAKE_TARGET_OSX)
# 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(CLR_CMAKE_TARGET_DARWIN)
+ endif(CLR_CMAKE_TARGET_OSX)
if(CLR_CMAKE_TARGET_ANDROID AND CLR_CMAKE_HOST_ARCH_ARM)
set(EXPORTS_LINKER_OPTION "${EXPORTS_LINKER_OPTION} -Wl,--no-warn-shared-textrel")
endif(CLR_CMAKE_HOST_UNIX)
add_definitions(-DBUILD_AS_STANDALONE)
-if(CLR_CMAKE_HOST_DARWIN)
+if(CLR_CMAKE_HOST_OSX)
# The implementation of GCToOSInterface on MacOS makes use of non-POSIX
# pthreads APIs, which by default are not included in the pthreads header
# unless we define this macro.
add_definitions(-D_DARWIN_C_SOURCE)
-endif(CLR_CMAKE_HOST_DARWIN)
+endif(CLR_CMAKE_HOST_OSX)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/env)
add_subdirectory(unixcoreruncommon)
add_subdirectory(unixcorerun)
add_subdirectory(unixcoreconsole)
- if(CLR_CMAKE_HOST_DARWIN)
+ if(CLR_CMAKE_HOST_OSX)
add_subdirectory(osxbundlerun)
- endif(CLR_CMAKE_HOST_DARWIN)
+ endif(CLR_CMAKE_HOST_OSX)
endif(CLR_CMAKE_HOST_WIN32)
#define MAKE_TARGET_DLLNAME_W(name) name W(".dll")
#define MAKE_TARGET_DLLNAME_A(name) name ".dll"
#else // TARGET_WINDOWS
-#ifdef TARGET_DARWIN
+#ifdef TARGET_OSX
#define MAKE_TARGET_DLLNAME_W(name) W("lib") name W(".dylib")
#define MAKE_TARGET_DLLNAME_A(name) "lib" name ".dylib"
#else
#define T_CRITICAL_SECTION_VALIDATION_MESSAGE "T_CRITICAL_SECTION validation failed. It is not in sync with CRITICAL_SECTION"
-#if defined(TARGET_DARWIN) && defined(TARGET_X86)
+#if defined(TARGET_OSX) && defined(TARGET_X86)
#define DAC_CS_NATIVE_DATA_SIZE 76
-#elif defined(TARGET_DARWIN) && defined(TARGET_AMD64)
+#elif defined(TARGET_OSX) && defined(TARGET_AMD64)
#define DAC_CS_NATIVE_DATA_SIZE 120
#elif defined(TARGET_FREEBSD) && defined(TARGET_X86)
#define DAC_CS_NATIVE_DATA_SIZE 12
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(CLR_CMAKE_TARGET_DARWIN)
+ elseif(CLR_CMAKE_TARGET_OSX)
set(JIT_EXPORTS_LINKER_OPTION -Wl,-exported_symbols_list,${JIT_EXPORTS_FILE})
endif()
// includes are not included, so we need to define them.
#ifndef PAL_IMPLEMENTATION
-// OS X already defines these types in 64 bit
-#if !defined(TARGET_OSX)
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
typedef __int32 int32_t;
typedef unsigned __int16 uint16_t;
typedef __int8 int8_t;
typedef unsigned __int8 uint8_t;
-#endif
#endif // PAL_IMPLEMENTATION
-if(CLR_CMAKE_TARGET_DARWIN OR CLR_CMAKE_TARGET_FREEBSD)
+if(CLR_CMAKE_TARGET_OSX 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(CLR_CMAKE_TARGET_DARWIN OR CLR_CMAKE_TARGET_FREEBSD)
+endif(CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_FREEBSD)
if(NOT DEFINED ENV{ROOTFS_DIR})
include_directories(SYSTEM /usr/local/include)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/libunwind/include/tdep)
add_subdirectory(libunwind)
-elseif(NOT CLR_CMAKE_TARGET_DARWIN)
+elseif(NOT CLR_CMAKE_TARGET_OSX)
if(CLR_CMAKE_HOST_ARCH_ARM)
find_library(UNWIND_ARCH NAMES unwind-arm)
endif()
# Compile options
-if(CLR_CMAKE_TARGET_DARWIN)
+if(CLR_CMAKE_TARGET_OSX)
add_definitions(-DTARGET_OSX)
add_definitions(-DXSTATE_SUPPORTED)
set(PLATFORM_SOURCES
exception/machexception.cpp
exception/machmessage.cpp
)
-endif(CLR_CMAKE_TARGET_DARWIN)
+endif(CLR_CMAKE_TARGET_OSX)
if (FEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION)
add_definitions(-DFEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION)
arch/${PAL_ARCH_SOURCES_DIR}/processor.cpp
)
-if(NOT CLR_CMAKE_TARGET_DARWIN)
+if(NOT CLR_CMAKE_TARGET_OSX)
list(APPEND PLATFORM_SOURCES
arch/${PAL_ARCH_SOURCES_DIR}/callsignalhandlerwrapper.S
arch/${PAL_ARCH_SOURCES_DIR}/signalhandlerhelper.cpp
)
-endif(NOT CLR_CMAKE_TARGET_DARWIN)
+endif(NOT CLR_CMAKE_TARGET_OSX)
if(CLR_CMAKE_HOST_ARCH_ARM)
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
)
endif(CLR_CMAKE_TARGET_LINUX)
-if(CLR_CMAKE_TARGET_DARWIN)
+if(CLR_CMAKE_TARGET_OSX)
find_library(COREFOUNDATION CoreFoundation)
find_library(CORESERVICES CoreServices)
find_library(SECURITY Security)
${SECURITY}
${SYSTEM}
)
-endif(CLR_CMAKE_TARGET_DARWIN)
+endif(CLR_CMAKE_TARGET_OSX)
if(CLR_CMAKE_TARGET_FREEBSD)
target_link_libraries(coreclrpal
elseif(CLR_CMAKE_TARGET_SUNOS)
set(CMAKE_REQUIRED_INCLUDES /opt/local/include)
endif()
-if(NOT CLR_CMAKE_TARGET_DARWIN AND NOT CLR_CMAKE_TARGET_FREEBSD AND NOT CLR_CMAKE_TARGET_NETBSD)
+if(NOT CLR_CMAKE_TARGET_OSX 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()
set(CMAKE_REQUIRED_LIBRARIES)
endif()
-if(CLR_CMAKE_TARGET_DARWIN)
+if(CLR_CMAKE_TARGET_OSX)
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))")
set(PAL_PT_WRITE_D PTRACE_POKEDATA)
set(HAS_FTRUNCATE_LENGTH_ISSUE 0)
set(HAVE_SCHED_OTHER_ASSIGNABLE 1)
-endif(CLR_CMAKE_TARGET_DARWIN)
+endif(CLR_CMAKE_TARGET_OSX)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
set(EXPORTS_LINKER_OPTION1 -Wl,--version-script=${EXPORTS_FILE1})
endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD)
-if(CLR_CMAKE_TARGET_DARWIN)
+if(CLR_CMAKE_TARGET_OSX)
set(EXPORTS_LINKER_OPTION1 -Wl,-exported_symbols_list,${EXPORTS_FILE1})
-endif(CLR_CMAKE_TARGET_DARWIN)
+endif(CLR_CMAKE_TARGET_OSX)
set(DLL1SOURCES dlltest1.cpp)
add_library(paltest_pal_sxs_test1_dll1 SHARED ${DLL1SOURCES})
set(EXPORTS_LINKER_OPTION2 -Wl,--version-script=${EXPORTS_FILE2})
endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD)
-if(CLR_CMAKE_TARGET_DARWIN)
+if(CLR_CMAKE_TARGET_OSX)
set(EXPORTS_LINKER_OPTION2 -Wl,-exported_symbols_list,${EXPORTS_FILE2})
-endif(CLR_CMAKE_TARGET_DARWIN)
+endif(CLR_CMAKE_TARGET_OSX)
set(DLL2SOURCES dlltest2.cpp)
add_library(paltest_pal_sxs_test1_dll2 SHARED ${DLL2SOURCES})
include_directories(${INC_PLATFORM_DIR})
-if(CLR_CMAKE_HOST_DARWIN)
+if(CLR_CMAKE_HOST_OSX)
# Enable non-POSIX pthreads APIs, which by default are not included in the pthreads header
add_definitions(-D_DARWIN_C_SOURCE)
-endif(CLR_CMAKE_HOST_DARWIN)
+endif(CLR_CMAKE_HOST_OSX)
set(SOURCES ForeignThreadExceptionsNative.cpp)
# 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 CLR_CMAKE_TARGET_DARWIN)
+if (NOT CLR_CMAKE_TARGET_OSX)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "\$ORIGIN/netcoredeps")
endif()
#define LIB_PREFIX
#define MAKE_LIBNAME(NAME) (_X(NAME) _X(".dll"))
#define FALLBACK_HOST_RID _X("win10")
-#elif defined(TARGET_DARWIN)
+#elif defined(TARGET_OSX)
#define LIB_PREFIX _X("lib")
#define MAKE_LIBNAME(NAME) (LIB_PREFIX _X(NAME) _X(".dylib"))
#define FALLBACK_HOST_RID _X("osx.10.12")
#include <ctime>
#include <pwd.h>
-#if defined(TARGET_DARWIN)
+#if defined(TARGET_OSX)
#include <mach-o/dyld.h>
#include <sys/param.h>
#include <sys/sysctl.h>
#if defined(TARGET_LINUX)
#define symlinkEntrypointExecutable "/proc/self/exe"
-#elif !defined(TARGET_DARWIN)
+#elif !defined(TARGET_OSX)
#define symlinkEntrypointExecutable "/proc/curproc/exe"
#endif
/*out*/ pal::string_t *path)
{
pal::string_t library_name_local;
-#if defined(TARGET_DARWIN)
+#if defined(TARGET_OSX)
if (!pal::is_path_rooted(library_name))
library_name_local.append("@rpath/");
#endif
}
// ***************************
-#if defined(TARGET_DARWIN)
+#if defined(TARGET_OSX)
recv->assign(_X("/usr/local/share/dotnet"));
#else
recv->assign(_X("/usr/share/dotnet"));
return stringToCleanup;
}
-#if defined(TARGET_DARWIN)
+#if defined(TARGET_OSX)
pal::string_t pal::get_current_os_rid_platform()
{
pal::string_t ridOS;
}
#endif
-#if defined(TARGET_DARWIN)
+#if defined(TARGET_OSX)
bool pal::get_own_executable_path(pal::string_t* recv)
{
uint32_t path_length = 0;
bool pal::are_paths_equal_with_normalized_casing(const string_t& path1, const string_t& path2)
{
-#if defined(TARGET_DARWIN)
+#if defined(TARGET_OSX)
// On Mac, paths are case-insensitive
return (strcasecmp(path1.c_str(), path2.c_str()) == 0);
#else
#define _STRINGIFY(s) _X(s)
#if defined(_WIN32)
#define DOTNET_CORE_INSTALL_PREREQUISITES_URL _X("https://go.microsoft.com/fwlink/?linkid=798306")
-#elif defined(TARGET_DARWIN)
+#elif defined(TARGET_OSX)
#define DOTNET_CORE_INSTALL_PREREQUISITES_URL _X("https://go.microsoft.com/fwlink/?linkid=2063366")
#else
#define DOTNET_CORE_INSTALL_PREREQUISITES_URL _X("https://go.microsoft.com/fwlink/?linkid=2063370")
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(MACOSX_RPATH ON)
-if (CLR_CMAKE_TARGET_DARWIN)
+if (CLR_CMAKE_TARGET_OSX)
set(CMAKE_INSTALL_RPATH "@loader_path")
else()
set(CMAKE_INSTALL_RPATH "\$ORIGIN")
include(${CLR_ENG_NATIVE_DIR}/configuretools.cmake)
+if(CLR_CMAKE_TARGET_IOS)
+ # CMake 3.14.5 contains bug fixes for iOS
+ cmake_minimum_required(VERSION 3.14.5)
+endif()
+
if(NOT CLR_CMAKE_TARGET_ARCH_WASM)
cmake_policy(SET CMP0083 NEW)
endif(NOT CLR_CMAKE_TARGET_ARCH_WASM)
endif ()
if(CLR_CMAKE_TARGET_ARCH_WASM)
-elseif (CLR_CMAKE_TARGET_DARWIN)
+elseif (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
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)
# ./build-native.sh cmakeargs -DCLR_ADDITIONAL_COMPILER_OPTIONS=<...> cmakeargs -DCLR_ADDITIONAL_LINKER_FLAGS=<...>
#
if(CLR_CMAKE_TARGET_UNIX)
- if (CLR_CMAKE_TARGET_DARWIN)
- add_definitions(-DTARGET_DARWIN)
- add_link_options(-Wl,-bind_at_load)
- elseif (CLR_CMAKE_TARGET_ARCH_WASM)
- # No object stripping for WASM
- else (CLR_CMAKE_TARGET_DARWIN)
- add_compile_options($<$<COMPILE_LANGUAGE:ASM>:-Wa,--noexecstack>)
- add_link_options(-Wl,--build-id=sha1 -Wl,-z,relro,-z,now)
- endif(CLR_CMAKE_TARGET_DARWIN)
+ if(NOT CLR_CMAKE_TARGET_ARCH_WASM AND NOT CLR_CMAKE_TARGET_IOS)
+ if(CLR_CMAKE_TARGET_OSX)
+ add_definitions(-DTARGET_OSX)
+ add_link_options(-Wl,-bind_at_load)
+ else()
+ add_compile_options($<$<COMPILE_LANGUAGE:ASM>:-Wa,--noexecstack>)
+ add_link_options(-Wl,--build-id=sha1 -Wl,-z,relro,-z,now)
+ endif()
+ endif()
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_subdirectory(System.Security.Cryptography.Native)
endif()
-if(CLR_CMAKE_TARGET_DARWIN)
+if(CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
add_subdirectory(System.Security.Cryptography.Native.Apple)
endif()
return()
endif()
- if(CLR_CMAKE_TARGET_DARWIN)
+ if(CLR_CMAKE_TARGET_OSX)
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.")
install (TARGETS System.Globalization.Native-Static DESTINATION .)
-if(NOT CLR_CMAKE_TARGET_DARWIN)
+if(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_IOS)
if (GEN_SHARED_LIB)
add_custom_command(TARGET System.Globalization.Native POST_BUILD
COMMENT "Verifying System.Globalization.Native.so dependencies"
int main(void) { enum UDateFormatSymbolType e = UDAT_STANDALONE_SHORTER_WEEKDAYS; }
" HAVE_UDAT_STANDALONE_SHORTER_WEEKDAYS)
- if(CLR_CMAKE_TARGET_DARWIN)
+ if(CLR_CMAKE_TARGET_OSX)
set(CMAKE_REQUIRED_LIBRARIES ${ICUCORE})
else()
set(CMAKE_REQUIRED_LIBRARIES ${ICUUC} ${ICUI18N})
return TRUE;
}
-#elif defined(TARGET_DARWIN)
+#elif defined(TARGET_OSX)
static int FindICULibs()
{
return TRUE;
}
-#else // !TARGET_WINDOWS && !TARGET_DARWIN
+#else // !TARGET_WINDOWS && !TARGET_OSX
#define VERSION_PREFIX_NONE ""
#define VERSION_PREFIX_SUSE "suse"
fn##_ptr = (__typeof(fn)*)GetProcAddress((HMODULE)lib, #fn); \
if (fn##_ptr == NULL) { fprintf(stderr, "Cannot get symbol %s from " #lib "\nError: %u\n", #fn, GetLastError()); abort(); }
-#elif defined(TARGET_DARWIN)
+#elif defined(TARGET_OSX)
if (!FindICULibs())
{
fn##_ptr = (__typeof(fn)*)dlsym(lib, #fn); \
if (fn##_ptr == NULL) { fprintf(stderr, "Cannot get symbol %s from " #lib "\nError: %s\n", #fn, dlerror()); abort(); }
-#else // !TARGET_WINDOWS && !TARGET_DARWIN
+#else // !TARGET_WINDOWS && !TARGET_OSX
char symbolName[128];
char symbolVersion[MaxICUVersionStringLength + 1] = "";
# 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 (CLR_CMAKE_TARGET_DARWIN)
+if (CLR_CMAKE_TARGET_OSX)
set(FEATURE_DISTRO_AGNOSTIC_SSL True)
endif()
if (CLR_CMAKE_TARGET_LINUX)
set(PAL_UNIX_NAME \"LINUX\")
-elseif (CLR_CMAKE_TARGET_DARWIN)
+elseif (CLR_CMAKE_TARGET_OSX)
set(PAL_UNIX_NAME \"OSX\")
# Xcode's clang does not include /usr/local/include by default, but brew's does.