Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
3ca54bc8
Kaydet (Commit)
3ca54bc8
authored
May 31, 2000
tarafından
Greg Ward
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Provides the Extension class, a nicer way to describe C/C++ extensions than
the old (ext_name, build_info) tuple.
üst
6c160191
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
115 additions
and
0 deletions
+115
-0
extension.py
Lib/distutils/extension.py
+115
-0
No files found.
Lib/distutils/extension.py
0 → 100644
Dosyayı görüntüle @
3ca54bc8
"""distutils.extension
Provides the Extension class, used to describe C/C++ extension
modules in setup scripts."""
# created 2000/05/30, Greg Ward
__revision__
=
"$Id$"
from
types
import
*
# This class is really only used by the "build_ext" command, so it might
# make sense to put it in distutils.command.build_ext. However, that
# module is already big enough, and I want to make this class a bit more
# complex to simplify some common cases ("foo" module in "foo.c") and do
# better error-checking ("foo.c" actually exists).
#
# Also, putting this in build_ext.py means every setup script would have to
# import that large-ish module (indirectly, through distutils.core) in
# order to do anything.
class
Extension
:
"""Just a collection of attributes that describes an extension
module and everything needed to build it (hopefully in a portable
way, but there are hooks that let you can be as unportable as you
need).
Instance attributes:
name : string
the full name of the extension, including any packages -- ie.
*not* a filename or pathname, but Python dotted name
sources : [string]
list of C/C++ source filenames, relative to the distribution
root (where the setup script lives), in Unix form
(slash-separated) for portability
include_dirs : [string]
list of directories to search for C/C++ header files (in Unix
form for portability)
define_macros : [(name : string, value : string|None)]
list of macros to define; each macro is defined using a 2-tuple,
where 'value' is either the string to define it to or None to
define it without a particular value (equivalent of "#define
FOO" in source or -DFOO on Unix C compiler command line)
undef_macros : [string]
list of macros to undefine explicitly
library_dirs : [string]
list of directories to search for C/C++ libraries at link time
libraries : [string]
list of library names (not filenames or paths) to link against
runtime_library_dirs : [string]
list of directories to search for C/C++ libraries at run time
(for shared extensions, this is when the extension is loaded)
extra_objects : [string]
list of extra files to link with (eg. object files not implied
by 'sources', static library that must be explicitly specified,
binary resource files, etc.)
extra_compile_args : [string]
any extra platform- and compiler-specific information to use
when compiling the source files in 'sources'. For platforms and
compilers where "command line" makes sense, this is typically a
list of command-line arguments, but for other platforms it could
be anything.
extra_link_args : [string]
any extra platform- and compiler-specific information to use
when linking object files together to create the extension (or
to create a new static Python interpreter). Similar
interpretation as for 'extra_compile_args'.
export_symbols : [string]
list of symbols to be exported from a shared extension. Not
used on all platforms, and not generally necessary for Python
extensions, which typically export exactly one symbol: "init" +
extension_name.
export_symbol_file : string
name of file that lists symbols to export; the format of this
file is platform- and compiler-specific. This is even more
gratuitous and unnecessary than 'export_symbols'; I'll be happy
when it goes away forever.
"""
def
__init__
(
self
,
name
,
sources
,
include_dirs
=
None
,
define_macros
=
None
,
undef_macros
=
None
,
library_dirs
=
None
,
libraries
=
None
,
runtime_library_dirs
=
None
,
extra_objects
=
None
,
extra_compile_args
=
None
,
extra_link_args
=
None
,
export_symbols
=
None
,
export_symbol_file
=
None
,
):
assert
type
(
name
)
is
StringType
,
"'name' must be a string"
assert
(
type
(
sources
)
is
ListType
and
len
(
sources
)
>=
1
and
map
(
type
,
sources
)
==
[
StringType
]
*
len
(
sources
)),
\
"'sources' must be a non-empty list of strings"
self
.
name
=
name
self
.
sources
=
sources
self
.
include_dirs
=
include_dirs
or
[]
self
.
define_macros
=
define_macros
or
[]
self
.
undef_macros
=
undef_macros
or
[]
self
.
library_dirs
=
library_dirs
or
[]
self
.
libraries
=
libraries
or
[]
self
.
runtime_library_dirs
=
runtime_library_dirs
or
[]
self
.
extra_objects
=
extra_objects
or
[]
self
.
extra_compile_args
=
extra_compile_args
or
[]
self
.
extra_link_args
=
extra_link_args
or
[]
self
.
export_symbols
=
export_symbols
or
[]
self
.
export_symbol_file
=
export_symbol_file
# class Extension
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment