if ((CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") AND (MACOS_FLAG MATCHES 1))
set(SRC_LIST
"Exception.cpp"
"EhTable.cpp"
"ExceptionCApi.cpp"
"${CMAKE_SOURCE_DIR}/src/arch/x86_64_macos/RestoreContextForEH.S"
)
elseif ((CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") AND (WINDOWS_FLAG MATCHES 0) AND (IOS_FLAG MATCHES 0) AND (IOS_SIMULATOR_FLAG MATCHES 0))
set(SRC_LIST
"Exception.cpp"
"EhTable.cpp"
"ExceptionCApi.cpp"
"${CMAKE_SOURCE_DIR}/src/arch/x86_64_linux/RestoreContextForEH.S"
)
elseif ((CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" AND IOS_FLAG MATCHES 1) OR IOS_SIMULATOR_FLAG MATCHES 2)
set(SRC_LIST
"Exception.cpp"
"EhTable.cpp"
"ExceptionCApi.cpp"
"CFException.cpp"
"${CMAKE_SOURCE_DIR}/src/arch/x86_64_ios/RestoreContextForEH.S"
)
elseif ((CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") AND (MACOS_FLAG MATCHES 1))
set(SRC_LIST
"Exception.cpp"
"EhTable.cpp"
"ExceptionCApi.cpp"
"${CMAKE_SOURCE_DIR}/src/arch/aarch64_macos/RestoreContextForEH.S"
)
elseif ((IOS_FLAG MATCHES 1 OR IOS_SIMULATOR_FLAG MATCHES 1) AND (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64"))
set(SRC_LIST
"Exception.cpp"
"EhTable.cpp"
"ExceptionCApi.cpp"
"CFException.cpp"
"${CMAKE_SOURCE_DIR}/src/arch/aarch64_ios/RestoreContextForEH.S"
)
elseif ((CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") AND (WINDOWS_FLAG MATCHES 0))
set(SRC_LIST
"Exception.cpp"
"EhTable.cpp"
"ExceptionCApi.cpp"
"${CMAKE_SOURCE_DIR}/src/arch/aarch64_linux/RestoreContextForEH.S"
)
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
set(SRC_LIST
"Exception.cpp"
"EhTable.cpp"
"ExceptionCApi.cpp"
"${CMAKE_SOURCE_DIR}/src/arch/arm_linux/RestoreContextForEH.S"
)
elseif (WINDOWS_FLAG MATCHES 1)
set(SRC_LIST
"Exception.cpp"
"EhTable.cpp"
"ExceptionCApi.cpp"
"${CMAKE_SOURCE_DIR}/src/arch/x86_64_windows/RestoreContextForEH.S"
)
endif()
add_library(Exception STATIC ${SRC_LIST})
if (((IOS_FLAG MATCHES 1 OR IOS_SIMULATOR_FLAG MATCHES 1) AND (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")) OR
((CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" AND IOS_FLAG MATCHES 1) OR IOS_SIMULATOR_FLAG MATCHES 2))
target_compile_options(Exception PRIVATE -Wno-elaborated-enum-base)
target_compile_options(Exception PRIVATE -Wno-availability)
find_library(COREFOUNDATION_FRAMEWORK CoreFoundation)
if (COREFOUNDATION_FRAMEWORK)
target_link_libraries(Exception ${COREFOUNDATION_FRAMEWORK}/CoreFoundation.tbd)
endif()
endif()