Reference to a file for the PBX format of a project file

TODO create subclasses for different file types, this is currently for

compilable source files only.

Introduced properties

private var _build_uuid: String

nitc :: PbxFile :: _build_uuid

UUID for build elements
private var _cflags: String

nitc :: PbxFile :: _cflags

Compiler flags for this source file
private var _path: String

nitc :: PbxFile :: _path

Path to self
private var _ref_uuid: String

nitc :: PbxFile :: _ref_uuid

File reference UUID
private fun build_uuid: String

nitc :: PbxFile :: build_uuid

UUID for build elements
private fun build_uuid=(build_uuid: String)

nitc :: PbxFile :: build_uuid=

UUID for build elements
fun cflags: String

nitc :: PbxFile :: cflags

Compiler flags for this source file
fun cflags=(cflags: String)

nitc :: PbxFile :: cflags=

Compiler flags for this source file
private fun description: Writable

nitc :: PbxFile :: description

PBX description of this file
private fun doc: String

nitc :: PbxFile :: doc

Documentation to add besides this file in the template
fun file_type: String

nitc :: PbxFile :: file_type

PBX file type for self
fun path: String

nitc :: PbxFile :: path

Path to self
protected fun path=(path: String)

nitc :: PbxFile :: path=

Path to self
private fun ref_uuid: String

nitc :: PbxFile :: ref_uuid

File reference UUID
private fun ref_uuid=(ref_uuid: String)

nitc :: PbxFile :: ref_uuid=

File reference UUID

Redefined properties

redef type SELF: PbxFile

nitc $ PbxFile :: SELF

Type of this instance, automatically specialized in every class

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
private var _build_uuid: String

nitc :: PbxFile :: _build_uuid

UUID for build elements
private var _cflags: String

nitc :: PbxFile :: _cflags

Compiler flags for this source file
private var _path: String

nitc :: PbxFile :: _path

Path to self
private var _ref_uuid: String

nitc :: PbxFile :: _ref_uuid

File reference UUID
private fun build_uuid: String

nitc :: PbxFile :: build_uuid

UUID for build elements
private fun build_uuid=(build_uuid: String)

nitc :: PbxFile :: build_uuid=

UUID for build elements
fun cflags: String

nitc :: PbxFile :: cflags

Compiler flags for this source file
fun cflags=(cflags: String)

nitc :: PbxFile :: cflags=

Compiler flags for this source file
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
private fun description: Writable

nitc :: PbxFile :: description

PBX description of this file
private fun doc: String

nitc :: PbxFile :: doc

Documentation to add besides this file in the template
fun file_type: String

nitc :: PbxFile :: file_type

PBX file type for self
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
private intern fun native_class_name: CString

core :: Object :: native_class_name

The class name of the object in CString format.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun path: String

nitc :: PbxFile :: path

Path to self
protected fun path=(path: String)

nitc :: PbxFile :: path=

Path to self
private fun ref_uuid: String

nitc :: PbxFile :: ref_uuid

File reference UUID
private fun ref_uuid=(ref_uuid: String)

nitc :: PbxFile :: ref_uuid=

File reference UUID
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
package_diagram nitc::PbxFile PbxFile core::Object Object nitc::PbxFile->core::Object

Parents

interface Object

core :: Object

The root of the class hierarchy.

Class definitions

nitc $ PbxFile
# Reference to a file for the PBX format of a project file
#
# TODO create subclasses for different file types, this is currently for
# compilable source files only.
class PbxFile

	# Path to `self`
	var path: String

	# Compiler flags for this source file
	var cflags: String = "" is writable

	# UUID for build elements
	private var build_uuid: String = sys.pbx_uuid_generator.next_uuid is lazy

	# File reference UUID
	private var ref_uuid: String = sys.pbx_uuid_generator.next_uuid is lazy

	# Documentation to add besides this file in the template
	private fun doc: String do return path

	# PBX file type for `self`
	fun file_type: String
	do
		var map = sys.pbx_file_types
		var ext = path.file_extension
		if ext != null and map.keys.has(ext) then return map[ext]
		return "unknown"
	end

	# PBX description of this file
	private fun description: Writable
	do
		var extra = ""
		var cflags = cflags
		if not cflags.is_empty then extra = "\nsettings = \{COMPILER_FLAGS = \"{cflags}\"; \};"

		return """
		{{{ref_uuid}}} /* {{{doc}}} */ = {
			isa = PBXFileReference;
			fileEncoding = 4;
			lastKnownFileType = {{{file_type}}};
			path = '{{{path}}}';
			sourceTree = "<group>";{{{extra}}}
			};
"""
	end

	private fun add_to_project(project: PbxprojectTemplate)
	do
		project.source_files.add self
		project.files.add self
	end
end
src/platform/xcode_templates.nit:79,1--132,3