diff --git a/cmake/scripts/darwin/Macros.cmake b/cmake/scripts/darwin/Macros.cmake new file mode 100644 index 0000000000000..9a805c468c026 --- /dev/null +++ b/cmake/scripts/darwin/Macros.cmake @@ -0,0 +1,8 @@ +macro(enable_arc) + if(CMAKE_GENERATOR STREQUAL Xcode) + set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES) + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fobjc-arc") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc") + endif() +endmacro() diff --git a/cmake/scripts/darwin_embedded/ArchSetup.cmake b/cmake/scripts/darwin_embedded/ArchSetup.cmake index 35607142db190..2e8b056f7a887 100644 --- a/cmake/scripts/darwin_embedded/ArchSetup.cmake +++ b/cmake/scripts/darwin_embedded/ArchSetup.cmake @@ -47,12 +47,8 @@ set(CMAKE_XCODE_ATTRIBUTE_INLINES_ARE_PRIVATE_EXTERN OFF) set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN OFF) set(CMAKE_XCODE_ATTRIBUTE_COPY_PHASE_STRIP OFF) -if(CMAKE_GENERATOR STREQUAL Xcode) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES) -else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fobjc-arc") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc") -endif() +include(cmake/scripts/darwin/Macros.cmake) +enable_arc() # Xcode strips dead code by default which breaks wrapping set(CMAKE_XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING OFF) diff --git a/cmake/scripts/osx/ArchSetup.cmake b/cmake/scripts/osx/ArchSetup.cmake index 6d4b3d08938ba..f7ab9196bf3ca 100644 --- a/cmake/scripts/osx/ArchSetup.cmake +++ b/cmake/scripts/osx/ArchSetup.cmake @@ -38,9 +38,5 @@ list(APPEND DEPLIBS "-framework DiskArbitration" "-framework IOKit" set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9) set(CMAKE_XCODE_ATTRIBUTE_CLANG_LINK_OBJC_RUNTIME OFF) -if(CMAKE_GENERATOR STREQUAL Xcode) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES) -else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fobjc-arc") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc") -endif() +include(cmake/scripts/darwin/Macros.cmake) +enable_arc()