규칙
j2objc_library
규칙 소스 보기j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
이 규칙은 J2ObjC를 사용하여 Java 소스 파일을 Objective-C로 변환하며, 이는 objc_library 및 objc_binary 규칙의 종속 항목으로 사용할 수 있습니다. J2ObjC 자체에 관한 자세한 내용은 J2ObjC 사이트에서 확인할 수 있습니다.
명령줄에서 빌드 플래그 --j2objc_translation_flags
를 사용하여 맞춤 J2ObjC 트랜스파일 플래그를 지정할 수 있습니다.
j2objc_library 타겟에 포함된 번역된 파일은 기본 컴파일 구성을 사용하여 컴파일됩니다. 이는 속성에 컴파일 옵션이 지정되지 않은 objc_library 규칙의 소스와 동일한 구성입니다.
또한 생성된 코드는 소스 수준이 아닌 타겟 수준에서 중복이 제거됩니다. 동일한 Java 소스 파일을 포함하는 Java 타겟이 두 개 있는 경우 링크 시간에 중복 기호 오류가 표시될 수 있습니다. 이 문제를 해결하는 올바른 방법은 공유 Java 소스 파일을 종속될 수 있는 별도의 공통 타겟으로 이동하는 것입니다.
인수
속성 | |
---|---|
name |
이름: 필수 이 타겟의 고유한 이름입니다. |
deps
|
라벨 목록입니다. 기본값은 j2objc_library , java_library , java_import , java_proto_library 타겟 목록입니다.
J2ObjC 변환은 전이적 폐쇄에 포함된 소스 Java 소스 파일의 유형에 따라 다르게 작동합니다. 사용자는 코드에서 J2ObjC 생성 헤더 파일을 가져올 수 있습니다. 이러한 파일의 가져오기 경로는 원래 Java 아티팩트의 루트 상대 경로입니다. 예를 들어
proto_library 규칙이 이 규칙의 전이적 폐쇄에 있는 경우 J2ObjC 프로토콜도 바이너리 수준에서 생성, 컴파일, 링크됩니다. proto |
entry_classes
|
문자열 목록입니다. 기본값은 --j2objc_dead_code_removal
플래그가 사용 설정된 경우 이 속성은 필수입니다. Java 클래스는 Java 언어 사양에 정의된 표준 이름으로 지정해야 합니다.
--j2objc_dead_code_removal 플래그가 지정되면 항목 클래스 목록이 트랜지티브로 수집되고 데드 코드 분석을 실행하는 진입점으로 사용됩니다.
그러면 사용하지 않는 클래스가 최종 ObjC 앱 번들에서 삭제됩니다.
|
jre_deps
|
라벨 목록입니다. 기본값은 j2objc_library 규칙에 의해 변환된 모든 Java 코드에 필요한 추가 JRE 에뮬레이션 라이브러리 목록입니다. 기본적으로 핵심 JRE 기능만 연결됩니다.
|
objc_import
규칙 소스 보기objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, features, includes, licenses, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, visibility, weak_sdk_frameworks)
이 규칙은 이미 컴파일된 정적 라이브러리를 .a
파일 형식으로 캡슐화합니다. 또한 objc_library
에서 지원하는 동일한 속성을 사용하여 헤더와 리소스를 내보낼 수 있습니다.
인수
속성 | |
---|---|
name |
이름: 필수 이 타겟의 고유한 이름입니다. |
deps
|
라벨 목록입니다. 기본값은 |
hdrs
|
라벨 목록입니다. 기본값은 이러한 헤더는 라이브러리의 공개 인터페이스를 설명하며 이 규칙 또는 종속 규칙의 소스에서 포함할 수 있습니다. 이 라이브러리의 클라이언트에 포함되지 않아야 하는 헤더는 srcs 속성에 대신 나열해야 합니다. 모듈이 사용 설정된 경우 소스와 별도로 컴파일됩니다. |
alwayslink
|
불리언, 기본값은 srcs 및 non_arc_srcs 에 나열된 파일의 모든 객체 파일을 연결합니다. 일부에는 바이너리에서 참조하는 심볼이 포함되지 않더라도 마찬가지입니다.
이는 바이너리의 코드에서 코드를 명시적으로 호출하지 않는 경우에 유용합니다. 예를 들어 코드가 일부 서비스에서 제공하는 콜백을 수신하도록 등록하는 경우입니다.
|
archives
|
라벨 목록입니다. 필수입니다. 이 타겟에 종속된 Objective-C 타겟에 제공된.a 파일 목록입니다.
|
includes
|
문자열 목록입니다. 기본값은 #include/#import 검색 경로 목록입니다.
이는 #import/#include 문에서 전체 작업공간 경로를 지정하지 않는 서드 파티 및 오픈소스 라이브러리를 지원하기 위한 것입니다.
경로는 패키지 디렉터리를 기준으로 해석되며 실제 클라이언트 루트 외에도 genfiles 및 bin 루트 (예: COPTS와 달리 이러한 플래그는 이 규칙과 이 규칙에 종속된 모든 규칙에 추가됩니다. (참고: 종속된 규칙이 아님) 이 경우 광범위한 영향을 미칠 수 있으므로 매우 신중해야 합니다. 확실하지 않은 경우 COPTS에 '-iquote' 플래그를 대신 추가하세요. |
sdk_dylibs
|
문자열 목록입니다. 기본값은 |
sdk_frameworks
|
문자열 목록입니다. 기본값은 최상위 Apple 바이너리를 연결하면 해당 바이너리의 전이 종속 항목 그래프에 나열된 모든 SDK 프레임워크가 연결됩니다. |
sdk_includes
|
문자열 목록입니다. 기본값은 #include/#import 검색 경로 목록입니다. 각 경로는 $(SDKROOT)/usr/include 를 기준으로 합니다.
|
textual_hdrs
|
라벨 목록입니다. 기본값은 |
weak_sdk_frameworks
|
문자열 목록입니다. 기본값은 |
objc_library
규칙 소스 보기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, licenses, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
이 규칙은 지정된 Objective-C 소스 파일에서 정적 라이브러리를 생성합니다.
인수
속성 | |
---|---|
name |
이름: 필수 이 타겟의 고유한 이름입니다. |
deps
|
라벨 목록입니다. 기본값은 |
srcs
|
라벨 목록입니다. 기본값은 |
hdrs
|
라벨 목록입니다. 기본값은 이러한 헤더는 라이브러리의 공개 인터페이스를 설명하며 이 규칙 또는 종속 규칙의 소스에서 포함할 수 있습니다. 이 라이브러리의 클라이언트에 포함되지 않아야 하는 헤더는 srcs 속성에 대신 나열해야 합니다. 모듈이 사용 설정된 경우 소스와 별도로 컴파일됩니다. |
alwayslink
|
불리언, 기본값은 srcs 및 non_arc_srcs 에 나열된 파일의 모든 객체 파일을 연결합니다. 일부에는 바이너리에서 참조하는 심볼이 포함되지 않더라도 마찬가지입니다.
이는 바이너리의 코드에서 코드를 명시적으로 호출하지 않는 경우에 유용합니다. 예를 들어 코드가 일부 서비스에서 제공하는 콜백을 수신하도록 등록하는 경우입니다.
|
copts
|
문자열 목록입니다. 기본값은 생성된 Xcode 프로젝트의 경우 copts에서 '-I' 플래그를 사용하여 지정된 디렉터리 경로는 파싱되고, 상대 경로인 경우 '$(WORKSPACE_ROOT)/'가 앞에 추가되며, 연결된 Xcode 타겟의 헤더 검색 경로에 추가됩니다. |
defines
|
문자열 목록입니다. 기본값은 -D 플래그입니다. KEY=VALUE 형식 또는 간단히 KEY 형식이어야 하며 이 타겟의 컴파일러 (copts 와 같이)뿐만 아니라 이 타겟의 모든 objc_ 종속 항목에도 전달됩니다.
'변수 만들기' 대체 및 Bourne 셸 토큰화가 적용됩니다.
|
enable_modules
|
불리언, 기본값은 |
implementation_deps
|
라벨 목록입니다. 기본값은 deps 와 달리 이러한 라이브러리 (및 모든 전이 종속 항목)의 헤더와 포함 경로는 이 라이브러리의 컴파일에만 사용되며, 이 라이브러리에 종속된 라이브러리에는 사용되지 않습니다. implementation_deps 로 지정된 라이브러리는 이 라이브러리에 종속된 바이너리 타겟에서 계속 연결됩니다.
|
includes
|
문자열 목록입니다. 기본값은 #include/#import 검색 경로 목록입니다.
이는 #import/#include 문에서 전체 작업공간 경로를 지정하지 않는 서드 파티 및 오픈소스 라이브러리를 지원하기 위한 것입니다.
경로는 패키지 디렉터리를 기준으로 해석되며 실제 클라이언트 루트 외에도 genfiles 및 bin 루트 (예: COPTS와 달리 이러한 플래그는 이 규칙과 이 규칙에 종속된 모든 규칙에 추가됩니다. (참고: 종속된 규칙이 아님) 이 경우 광범위한 영향을 미칠 수 있으므로 매우 신중해야 합니다. 확실하지 않은 경우 COPTS에 '-iquote' 플래그를 대신 추가하세요. |
linkopts
|
문자열 목록입니다. 기본값은 |
module_map
|
라벨: 기본값은 |
module_name
|
문자열, 기본값은 |
non_arc_srcs
|
라벨 목록입니다. 기본값은 |
pch
|
라벨: 기본값은 |
sdk_dylibs
|
문자열 목록입니다. 기본값은 |
sdk_frameworks
|
문자열 목록입니다. 기본값은 최상위 Apple 바이너리를 연결하면 해당 바이너리의 전이 종속 항목 그래프에 나열된 모든 SDK 프레임워크가 연결됩니다. |
sdk_includes
|
문자열 목록입니다. 기본값은 #include/#import 검색 경로 목록입니다. 각 경로는 $(SDKROOT)/usr/include 를 기준으로 합니다.
|
textual_hdrs
|
라벨 목록입니다. 기본값은 |
weak_sdk_frameworks
|
문자열 목록입니다. 기본값은 |
available_xcodes
규칙 소스 보기available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
이 규칙의 두 타겟은 xcode_config
규칙 인스턴스에서 원격으로 사용 가능한 xcode 버전과 로컬로 사용 가능한 xcode 버전을 나타내는 데 사용할 수 있습니다.
이렇게 하면 전체적으로 사용 가능한 xcode에서 공식 xcode 버전을 선택할 수 있습니다.
인수
속성 | |
---|---|
name |
이름: 필수 이 타겟의 고유한 이름입니다. |
default
|
이 플랫폼의 기본 Xcode 버전입니다. |
versions
|
라벨 목록입니다. 구성할 수 없습니다. 기본값은 |
xcode_config
규칙 소스 보기xcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
이 규칙의 단일 타겟은 --xcode_version_config
빌드 플래그에서 참조하여 --xcode_version
플래그를 허용된 공식 xcode 버전으로 변환할 수 있습니다.
이를 통해 등록된 여러 별칭에서 공식 xcode 버전을 선택할 수 있습니다.
인수
속성 | |
---|---|
name |
이름: 필수 이 타겟의 고유한 이름입니다. |
default
|
사용할 xcode의 기본 공식 버전입니다.
제공된 xcode_version 타겟으로 지정된 버전은 xcode_version 빌드 플래그가 지정되지 않은 경우에 사용됩니다. versions 가 설정된 경우에 필요합니다. remote_versions 또는 local_versions 이 설정된 경우 설정할 수 없습니다.
|
local_versions
|
로컬에서 사용할 수 있는 xcode_version 타겟입니다.
이러한 값은 local_versions 와 함께 사용하여 상호 사용 가능한 버전을 선택합니다. versions 가 설정된 경우 설정하면 안 됩니다.
|
remote_versions
|
원격으로 사용할 수 있는 xcode_version 타겟입니다.
이러한 값은 remote_versions 와 함께 사용하여 상호 사용 가능한 버전을 선택합니다. versions 가 설정된 경우 설정하면 안 됩니다.
|
versions
|
라벨 목록입니다. 구성할 수 없습니다. 기본값은 xcode_version 타겟입니다.
xcode_version 빌드 플래그의 값이 지정된 xcode_version 타겟의 별칭 또는 버전 번호 중 하나와 일치하면 일치하는 타겟이 사용됩니다. remote_versions 또는 local_versions 이 설정된 경우 설정할 수 없습니다.
|
xcode_version
규칙 소스 보기xcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_sdk_version, default_visionos_sdk_version, default_watchos_sdk_version, deprecation, distribs, features, licenses, tags, testonly, version, visibility)
해당 Xcode 버전의 허용되는 별칭이 있는 단일 공식 Xcode 버전을 나타냅니다.
xcode_config
규칙을 참고하세요.
인수
속성 | |
---|---|
name |
이름: 필수 이 타겟의 고유한 이름입니다. |
default_ios_sdk_version
|
문자열, 구성 불가, 기본값은 ios_sdk_version 빌드 플래그가 여기에 지정된 값을 재정의합니다.
|
default_macos_sdk_version
|
문자열, 구성 불가, 기본값은 macos_sdk_version 빌드 플래그가 여기에 지정된 값을 재정의합니다.
|
default_tvos_sdk_version
|
문자열, 구성 불가, 기본값은 tvos_sdk_version 빌드 플래그가 여기에 지정된 값을 재정의합니다.
|
default_visionos_sdk_version
|
문자열, 구성 불가, 기본값은 visionos_sdk_version 빌드 플래그가 여기에 지정된 값을 재정의합니다.
|
default_watchos_sdk_version
|
문자열, 구성 불가, 기본값은 watchos_sdk_version 빌드 플래그가 여기에 지정된 값을 재정의합니다.
|
version
|
문자열, 구성 불가능, 필수 Xcode 버전의 공식 버전 번호입니다. |