[CMake] Apply sandbox profile to target not directory

When LLVM_DEPENDENCY_DEBUGGING=On we should apply the sandbox only on the target, not the directory. This is important for directories that create more than one target, or for nested directories.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287415 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Bieneman 2016-11-19 01:32:09 +00:00
parent 420f51b6ae
commit e208042f07

View File

@ -377,8 +377,6 @@ function(llvm_add_library name)
endif()
endif()
setup_dependency_debugging(${name} ${LLVM_COMMON_DEPENDS})
# Generate objlib
if((ARG_SHARED AND ARG_STATIC) OR ARG_OBJECT)
# Generate an obj library for both targets.
@ -424,6 +422,8 @@ function(llvm_add_library name)
add_library(${name} STATIC ${ALL_FILES})
endif()
setup_dependency_debugging(${name} ${LLVM_COMMON_DEPENDS})
if(DEFINED windows_resource_file)
set_windows_version_resource_properties(${name} ${windows_resource_file})
set(windows_resource_file ${windows_resource_file} PARENT_SCOPE)
@ -672,8 +672,6 @@ macro(add_llvm_executable name)
# it forces Xcode to properly link the static library.
list(APPEND ALL_FILES "${LLVM_MAIN_SRC_DIR}/cmake/dummy.cpp")
endif()
setup_dependency_debugging(${name} ${LLVM_COMMON_DEPENDS})
if( EXCLUDE_FROM_ALL )
add_executable(${name} EXCLUDE_FROM_ALL ${ALL_FILES})
@ -681,6 +679,8 @@ macro(add_llvm_executable name)
add_executable(${name} ${ALL_FILES})
endif()
setup_dependency_debugging(${name} ${LLVM_COMMON_DEPENDS})
if(NOT ARG_NO_INSTALL_RPATH)
llvm_setup_rpath(${name})
endif()
@ -1397,5 +1397,5 @@ function(setup_dependency_debugging name)
set(deny_intrinsics_gen "(deny file* (literal \"${LLVM_BINARY_DIR}/include/llvm/IR/Intrinsics.gen\"))")
set(sandbox_command "sandbox-exec -p '(version 1) (allow default) ${deny_attributes_gen} ${deny_intrinsics_gen}'")
set_property(DIRECTORY PROPERTY RULE_LAUNCH_COMPILE ${sandbox_command})
set_target_properties(${name} PROPERTIES RULE_LAUNCH_COMPILE ${sandbox_command})
endfunction()