Objective-C 규칙

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 문제 신고 소스 보기 1박 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

규칙

objc_import

규칙 소스 보기
objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, includes, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

이 규칙은 이미 컴파일된 정적 라이브러리를 .a 파일 형식으로 캡슐화합니다. 또한 동일한 명령어를 사용하여 헤더와 리소스를 objc_library에서 지원하는 속성입니다.

인수

속성
name

이름 필수

이 대상의 고유한 이름입니다.

deps

라벨 목록 기본값은 []입니다.

이 타겟이 종속되는 타겟 목록입니다.
hdrs

라벨 목록 기본값은 []입니다.

게시된 C, C++, Objective-C, Objective-C++ 헤더 파일 목록 종속 규칙의 소스에 의해 포함됩니다.

이러한 헤더는 라이브러리의 공개 인터페이스를 설명하며 이 규칙에 의해 또는 독립된 출처에 의해 포함될 수 있도록 제공 있습니다. 이 라이브러리의 클라이언트에서 포함하지 않아야 하는 헤더는 대신 srcs 속성에 나열해야 합니다.

모듈이 사용 설정된 경우 소스와 별도로 컴파일됩니다.

불리언. 기본값은 False입니다.

1이면 이 라이브러리에 직접 또는 간접적으로 종속되는 모든 번들 또는 바이너리는 srcsnon_arc_srcs에 나열된 파일의 모든 객체 파일을 링크합니다. 일부 파일에 바이너리에서 참조하는 기호가 포함되어 있지 않더라도 마찬가지입니다. 이는 코드가 바이너리의 코드에 의해 명시적으로 호출되지 않는 경우에 유용합니다. 예를 들어 코드가 서비스에서 제공하는 콜백을 수신하도록 등록하는 경우입니다.
archives

라벨 목록(필수)

Objective-C 타겟에 제공된 .a 파일 목록은 이 타겟에 종속됩니다.
includes

문자열 목록입니다. 기본값은 []입니다.

이 타겟 및 모든 종속 타겟에 추가할 #include/#import 검색 경로의 목록입니다. 이는 SDK를 지원하지 않는 서드 파티 및 오픈소스 라이브러리를 지원하기 위한 것입니다. 전체 작업공간 경로를 #import/#include

경로는 패키지 디렉터리를 기준으로 해석됩니다. 생성형 파일 및 빈 루트 (예: blaze-genfiles/pkg/includedir) 및 blaze-out/pkg/includedir)가 클라이언트 루트로 이동합니다.

COPTS와 달리 이러한 플래그는 이 규칙과 이 규칙에 종속된 모든 규칙에 추가됩니다. (참고: 적용 대상 규칙이 아님) 광범위한 영향을 미칠 수 있으므로 매우 주의해야 합니다. 확실하지 않은 경우 다음을 추가하세요. '-iquote' 대신 플래그를 COPTS로 변경합니다.

sdk_dylibs

문자열 목록 기본값은 []입니다.

연결할 SDK .dylib 라이브러리의 이름입니다. 예: 'libz' 또는 'libarchive'. &quot;libc++&quot; 바이너리에 C++ 또는 Objective-C++ 소스 바이너리를 연결할 때 해당 바이너리의 전이 종속 항목 그래프에 이름이 지정된 모든 라이브러리가 사용됩니다.
sdk_frameworks

문자열 목록 기본값은 []입니다.

연결할 SDK 프레임워크의 이름입니다(예: 'AddressBook', 'QuartzCore').

최상위 Apple 바이너리를 연결하면 해당 바이너리의 전이 종속 항목 그래프에 나열된 모든 SDK 프레임워크가 연결됩니다.

sdk_includes

문자열 목록 기본값은 []입니다.

이 대상 및 모든 종속 대상에 추가할 #include/#import 검색 경로 목록으로, 각 경로는 $(SDKROOT)/usr/include를 기준으로 합니다.
textual_hdrs

라벨 목록입니다. 기본값은 []입니다.

Objective-C 및 Objective-C++ 파일 목록에 포함된 이 규칙에 있는 소스 파일 또는 이 규칙의 사용자가 헤더로 포함합니다. 있습니다. hdr과 달리 소스와 별도로 컴파일되지 않습니다.
weak_sdk_frameworks

문자열 목록입니다. 기본값은 []입니다.

약하게 연결할 SDK 프레임워크의 이름입니다. 예를 들면 다음과 같습니다. 'MediaAccessibility' 정기적으로 연결된 SDK 프레임워크와 달리 약하게 연결된 프레임워크의 기호는 런타임에 없더라도 오류가 발생하지 않습니다.

objc_library

<ph type="x-smartling-placeholder"></ph> 규칙 소스 보기
objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, implementation_deps, includes, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, stamp, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

이 규칙은 지정된 Objective-C 소스 파일에서 정적 라이브러리를 생성합니다.

인수

속성
name

이름 필수

이 대상의 고유한 이름입니다.

deps

라벨 목록입니다. 기본값은 []입니다.

이 타겟이 종속되는 타겟 목록입니다.
srcs

라벨 목록 기본값은 []입니다.

라이브러리 타겟을 만들기 위해 처리되는 C, C++, Objective-C, Objective-C++ 소스 및 헤더 파일 또는 (`.s`, `.S`, `.asm`) 어셈블리 소스 파일의 목록입니다. 체크인한 파일 및 생성된 파일이 여기에 해당합니다. 소스 파일은 Clang을 사용하여 .o 파일로 컴파일됩니다. 헤더 파일은 이 타겟의 srcs 속성의 소스 또는 헤더에 의해 포함/가져올 수 있지만 hdrs의 헤더 또는 이 규칙에 종속된 타겟에 의해 포함/가져올 수는 없습니다. 또한 사전 컴파일된 .o 파일을 src로 제공할 수 있습니다. 제공된 .o 파일의 아키텍처와 빌드의 아키텍처가 일관되도록 주의하여 기호 링커 오류가 발생하지 않도록 하세요.
hdrs

라벨 목록 기본값은 []입니다.

게시된 C, C++, Objective-C, Objective-C++ 헤더 파일 목록 종속 규칙의 소스에 의해 포함됩니다.

이러한 헤더는 라이브러리의 공개 인터페이스를 설명하며 이 규칙에 의해 또는 독립된 출처에 의해 포함될 수 있도록 제공 있습니다. 이 라이브러리의 클라이언트에서 포함하지 않아야 하는 헤더는 대신 srcs 속성에 나열해야 합니다.

모듈이 사용 설정된 경우 소스와 별도로 컴파일됩니다.

불리언. 기본값은 False입니다.

1인 경우 이 서비스에 (직접 또는 간접적으로) 종속되는 모든 번들 또는 바이너리가 라이브러리는 목록에 있는 파일에 대한 모든 객체 파일에서 srcsnon_arc_srcs(일부에 바이너리에서 참조한 기호입니다. 이는 코드가 바이너리의 코드에 의해 명시적으로 호출되지 않는 경우에 유용합니다. 예를 들어 코드가 서비스에서 제공하는 콜백을 수신하도록 등록하는 경우입니다.
copts

문자열 목록입니다. 기본값은 []입니다.

컴파일러에 전달할 추가 플래그입니다. 'Make 변수' 대체 적용 Bourne 셸 토큰화. 이러한 플래그는 이 타겟에만 적용되며 타겟에는 적용되지 않습니다. 그것에 종속된 것들에 종속된 것을 볼 수 있습니다.

생성된 Xcode 프로젝트의 경우 copts에서 '-I' 플래그를 사용하여 지정된 디렉터리 경로가 파싱되고, 상대 경로인 경우 '$(WORKSPACE_ROOT)/'이 앞에 추가되며, 연결된 Xcode 타겟의 헤더 검색 경로에 추가됩니다.

defines

문자열 목록입니다. 기본값은 []입니다.

컴파일러에 전달할 추가 -D 플래그입니다. KEY=VALUE 또는 KEY 형식이어야 하며 이 대상의 컴파일러뿐만 아니라(copts와 마찬가지로) 이 대상의 모든 objc_ 종속 항목에도 전달됩니다. 'Make 변수' 대체 적용 Bourne 셸 토큰화.
enable_modules

불리언. 기본값은 False입니다.

-fmodules를 통해 clang 모듈 지원을 사용 설정합니다. 이 값을 1로 설정하면 시스템 헤더와 다른 타겟을 @import할 수 있습니다. @import UIKit; @import path_to_package_target;
implementation_deps

라벨 목록 기본값은 []입니다.

라이브러리 타겟이 종속되는 다른 라이브러리의 목록입니다. deps와 달리 이러한 라이브러리의 헤더 및 포함 경로(및 모든 전이 종속 항목)는 이 라이브러리에 종속된 라이브러리가 아닌 이 라이브러리의 컴파일에만 사용됩니다. implementation_deps로 지정된 라이브러리가 계속 연결되어 있음 바이너리 타겟에 사용합니다.
includes

문자열 목록 기본값은 []입니다.

이 타겟 및 모든 종속 타겟에 추가할 #include/#import 검색 경로의 목록입니다. 이는 SDK를 지원하지 않는 서드 파티 및 오픈소스 라이브러리를 지원하기 위한 것입니다. 전체 작업공간 경로를 #import/#include

경로는 패키지 디렉터리를 기준으로 해석되며 실제 클라이언트 루트 외에 genfiles 및 bin 루트(예: blaze-genfiles/pkg/includedirblaze-out/pkg/includedir)가 포함됩니다.

COPTS와 달리 이러한 플래그는 이 규칙에 추가됩니다. 그것에 의존하는 모든 규칙이 있습니다. (참고: 종속되는 규칙이 아닙니다.) CANNOT TRANSLATE 매우 신중해야 합니다. 왜냐하면 광범위한 영향을 미칠 수 있기 때문입니다. 확실하지 않다면 COPTS에 '-iquote' 플래그를 추가하세요.

linkopts

문자열 목록 기본값은 []입니다.

링커에 전달할 추가 플래그입니다.
module_map

라벨 기본값은 None입니다.

이 타겟의 커스텀 Clang 모듈 맵입니다. 맞춤 모듈 맵은 사용하지 않는 것이 좋습니다. 대부분의 사용자는 Bazel에서 생성한 모듈 맵을 사용해야 합니다. 지정된 경우 Bazel은 이 대상에 대해 모듈 맵을 생성하지 않지만 모듈 맵을 컴파일러에 제공합니다.
module_name

String; 기본값은 ""입니다.

이 타겟의 모듈 이름을 설정합니다. 기본적으로 모듈 이름은 모든 특수 기호는 _로 대체됩니다. 예: //foo/baz:bar는 foo_baz_bar로 가져올 수 있습니다.
non_arc_srcs

라벨 목록입니다. 기본값은 []입니다.

라이브러리를 타겟팅해야 합니다. 이 속성의 파일은 srcs 속성의 파일과 매우 유사하게 처리되지만 ARC가 사용 설정되지 않은 상태로 컴파일됩니다.
pch

라벨 기본값은 None입니다.

컴파일되는 모든 소스 파일(arc 및 비 arc 모두) 앞에 추가할 헤더 파일입니다. BUILD 파일에서는 pch 파일 사용을 적극적으로 권장하지 않으며 지원 중단된 것으로 간주해야 합니다. pch 파일은 실제로 사전 컴파일되지 않으므로 빌드 속도 향상이 아니라 전역 종속 항목일 뿐입니다. 빌드 효율성 관점에서 보면 필요한 소스에 필요한 항목을 직접 포함하는 것이 좋습니다.
sdk_dylibs

문자열 목록입니다. 기본값은 []입니다.

연결할 SDK .dylib 라이브러리의 이름입니다. 예: 'libz' 또는 'libarchive'. &quot;libc++&quot; 바이너리에 C++ 또는 Objective-C++ 소스 바이너리를 연결할 때 해당 바이너리의 전이 종속 항목 그래프에 이름이 지정된 모든 라이브러리가 사용됩니다.
sdk_frameworks

문자열 목록 기본값은 []입니다.

연결할 SDK 프레임워크의 이름입니다(예: 'AddressBook', 'QuartzCore').

최상위 Apple 바이너리를 연결하면 해당 바이너리의 전이 종속 항목 그래프에 나열된 모든 SDK 프레임워크가 연결됩니다.

sdk_includes

문자열 목록 기본값은 []입니다.

이 타겟에 추가할 검색 경로 #include/#import개 목록 모든 종속된 타겟이 있으며, 여기서 각 경로는 $(SDKROOT)/usr/include
stamp

불리언. 기본값은 False입니다.

textual_hdrs

라벨 목록입니다. 기본값은 []입니다.

이 규칙의 소스 파일 또는 이 라이브러리의 사용자가 헤더로 포함한 C, C++, Objective-C, Objective-C++ 파일 목록입니다. hdr과 달리 소스와 별도로 컴파일되지 않습니다.
weak_sdk_frameworks

문자열 목록입니다. 기본값은 []입니다.

약하게 연결할 SDK 프레임워크의 이름입니다. 예를 들면 다음과 같습니다. 'MediaAccessibility' 정기적으로 연결된 SDK 프레임워크와 달리 약하게 연결된 프레임워크의 기호는 런타임에 없더라도 오류가 발생하지 않습니다.