규칙
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 변환 플래그는 명령줄에서 빌드 플래그 --j2objc_translation_flags
를 사용하여 지정할 수 있습니다.
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와 달리 이러한 플래그는 이 규칙과 이 규칙에 종속되는 모든 규칙에 추가됩니다. (참고: 종속되는 규칙이 아닙니다.) 이는 광범위한 영향을 미칠 수 있으므로 주의하세요. 확실하지 않은 경우에는 대신 '-iquote' 플래그를 COPTS에 추가하세요. |
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 프로젝트의 경우 copt에서 '-I' 플래그를 사용하여 지정된 디렉터리 경로가 파싱되고 상대 경로인 경우 앞에 '$(WORKSPACE_ROOT)/'가 추가되고 연결된 Xcode 대상의 헤더 검색 경로에 추가됩니다. |
defines
|
문자열 목록. 기본값은 -D 플래그입니다. KEY=VALUE 형식 또는 KEY 형식이어야 하며 이 타겟의 컴파일러(copts 와 마찬가지로)뿐만 아니라 이 타겟의 모든 objc_ 종속 항목에도 전달됩니다.
'Make 변수' 대체 및 Bourne 셸 토큰화가 적용됩니다.
|
enable_modules
|
부울. 기본값은 |
implementation_deps
|
라벨 목록. 기본값은 deps 와 달리 이러한 라이브러리의 헤더 및 포함 경로(및 모든 전이 종속 항목)는 이 라이브러리의 컴파일에만 사용되며 이 라이브러리에 종속되는 라이브러리에는 사용되지 않습니다. implementation_deps 로 지정된 라이브러리는 이 라이브러리에 종속된 바이너리 타겟에서 계속 연결됩니다.
|
includes
|
문자열 목록입니다. 기본값은 #include/#import 검색 경로 목록입니다.
이는 #import/#include 문에 전체 워크스페이스 경로를 지정하지 않는 서드 파티 및 오픈소스 라이브러리를 지원하기 위한 것입니다.
경로는 패키지 디렉터리를 기준으로 해석되며, 실제 클라이언트 루트 외에도 genfile과 bin 루트 (예: COPTS와 달리 이러한 플래그는 이 규칙과 이 규칙에 종속되는 모든 규칙에 추가됩니다. (참고: 종속되는 규칙이 아닙니다.) 광범위한 영향을 미칠 수 있으므로 매우 주의해야 합니다. 확실하지 않은 경우에는 대신 '-iquote' 플래그를 COPTS에 추가하세요. |
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 버전을 선택할 수 있습니다.
인수
속성 | |
---|---|
name |
이름: 필수사항 이 타겟의 고유한 이름입니다. |
default
|
이 플랫폼의 기본 xcode 버전입니다. |
versions
|
이 플랫폼에서 사용할 수 있는 Xcode 버전입니다. |
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 버전의 공식 버전 번호입니다. |