Skip to content

Commit 409b6b8

Browse files
committedJul 12, 2019
Support building python programs without sqlite3
This is especially useful for host platform tools that can run sooner, without waiting for sqlite3 to compile in release mode after a mass rebuilding change. ref:d6bd4e7fee53af77b2d963969a47eb1b354db95f
1 parent b5c4571 commit 409b6b8

File tree

14 files changed

+93
-30
lines changed

14 files changed

+93
-30
lines changed
 

‎build/plugins/pybuild.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,14 @@ def py_program(unit, py3):
119119
Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/#modulpyprogramimakrospymain
120120
"""
121121
if py3:
122-
unit.onpeerdir(['library/python/runtime_py3/main'])
122+
peers = ['library/python/runtime_py3/main']
123+
if unit.get('PYTHON_SQLITE3') != 'no':
124+
peers.append('contrib/tools/python3/src/Modules/_sqlite')
123125
else:
124-
unit.onpeerdir(['library/python/runtime/main'])
126+
peers = ['library/python/runtime/main']
127+
if unit.get('PYTHON_SQLITE3') != 'no':
128+
peers.append('contrib/tools/python/src/Modules/_sqlite')
129+
unit.onpeerdir(peers)
125130
unit.onadd_check_py_imports()
126131

127132

‎build/ymake.core.conf

+9-2
Original file line numberDiff line numberDiff line change
@@ -2263,10 +2263,14 @@ module _BASE_PY_PROGRAM: _BASE_PROGRAM {
22632263
OPTIMIZE_PY_PROTOS()
22642264

22652265
when ($NO_PYTHON_INCLS != "yes") {
2266-
PEERDIR+=contrib/libs/python
2266+
PEERDIR += contrib/libs/python
22672267
}
22682268
when ($USE_ARCADIA_PYTHON == "yes") {
2269-
PEERDIR+=library/python/runtime/main contrib/python/subprocess32
2269+
PEERDIR += library/python/runtime/main
2270+
PEERDIR += contrib/python/subprocess32
2271+
when ($PYTHON_SQLITE3 != "no") {
2272+
PEERDIR += contrib/tools/python/src/Modules/_sqlite
2273+
}
22702274
}
22712275

22722276
ALLOCATOR(J)
@@ -2290,6 +2294,9 @@ module _BASE_PY_PROGRAM: _BASE_PROGRAM {
22902294
module _BASE_PY3_PROGRAM: _BASE_PROGRAM {
22912295
_ARCADIA_PYTHON3_ADDINCL()
22922296
PEERDIR(library/python/runtime_py3/main)
2297+
when ($PYTHON_SQLITE3 != "no") {
2298+
PEERDIR += contrib/tools/python3/src/Modules/_sqlite
2299+
}
22932300

22942301
ADD_CHECK_PY_IMPORTS()
22952302

‎contrib/tools/python/base/CMakeModules.inc

-11
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
# Generated automatically by ../modules.py
22

33
ADDINCL(contrib/libs/libbz2)
4-
ADDINCL(contrib/libs/sqlite3)
54
ADDINCL(contrib/libs/zlib)
65
PEERDIR(contrib/libs/libbz2)
76
PEERDIR(contrib/libs/openssl)
8-
PEERDIR(contrib/libs/sqlite3)
97
PEERDIR(contrib/libs/zlib)
108
SRCS(Modules/_bisectmodule.c
119
Modules/_collectionsmodule.c
@@ -26,15 +24,6 @@ SRCS(Modules/_bisectmodule.c
2624
Modules/_lsprof.c
2725
Modules/_math.c
2826
Modules/_randommodule.c
29-
Modules/_sqlite/cache.c
30-
Modules/_sqlite/connection.c
31-
Modules/_sqlite/cursor.c
32-
Modules/_sqlite/microprotocols.c
33-
Modules/_sqlite/module.c
34-
Modules/_sqlite/prepare_protocol.c
35-
Modules/_sqlite/row.c
36-
Modules/_sqlite/statement.c
37-
Modules/_sqlite/util.c
3827
Modules/_struct.c
3928
Modules/arraymodule.c
4029
Modules/audioop.c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
LIBRARY()
2+
3+
4+
5+
LICENSE(Python-2.0)
6+
7+
PEERDIR(
8+
contrib/libs/sqlite3
9+
)
10+
11+
ADDINCL(
12+
contrib/libs/sqlite3
13+
)
14+
15+
PYTHON_ADDINCL()
16+
17+
NO_COMPILER_WARNINGS()
18+
19+
NO_RUNTIME()
20+
21+
SRCS(
22+
cache.c
23+
connection.c
24+
cursor.c
25+
microprotocols.c
26+
module.c
27+
prepare_protocol.c
28+
row.c
29+
statement.c
30+
util.c
31+
)
32+
33+
PY_REGISTER(_sqlite3)
34+
35+
END()

‎contrib/tools/python/src/config_init.c

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ extern void init_random(void);
1919
extern void init_sha(void);
2020
extern void init_sha256(void);
2121
extern void init_sha512(void);
22-
extern void init_sqlite3(void);
2322
extern void init_ssl(void);
2423
extern void init_struct(void);
2524
extern void initarray(void);

‎contrib/tools/python/src/config_map.c

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
{"_sha", init_sha},
2020
{"_sha256", init_sha256},
2121
{"_sha512", init_sha512},
22-
{"_sqlite3", init_sqlite3},
2322
{"_ssl", init_ssl},
2423
{"_struct", init_struct},
2524
{"array", initarray},

‎contrib/tools/python/ya.make

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ PROGRAM(python)
44

55
PEERDIR(
66
contrib/tools/python/libpython
7+
contrib/tools/python/src/Modules/_sqlite
78
)
89

910
END()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
LIBRARY()
2+
3+
4+
5+
LICENSE(Python-2.0)
6+
7+
PEERDIR(
8+
contrib/libs/sqlite3
9+
)
10+
11+
ADDINCL(
12+
contrib/libs/sqlite3
13+
)
14+
15+
PYTHON3_ADDINCL()
16+
17+
NO_COMPILER_WARNINGS()
18+
19+
NO_RUNTIME()
20+
21+
SRCS(
22+
cache.c
23+
connection.c
24+
cursor.c
25+
microprotocols.c
26+
module.c
27+
prepare_protocol.c
28+
row.c
29+
statement.c
30+
util.c
31+
)
32+
33+
PY_REGISTER(_sqlite3)
34+
35+
END()

‎contrib/tools/python3/src/Modules/config.c

-2
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ extern PyObject* PyInit__sha3(void); // _sha3
6666
extern PyObject* PyInit__sha512(void); // _sha512
6767
extern PyObject* PyInit__signal(void); // _signal
6868
extern PyObject* PyInit__socket(void); // _socket
69-
extern PyObject* PyInit__sqlite3(void); // _sqlite3
7069
extern PyObject* PyInit__sre(void); // _sre
7170
extern PyObject* PyInit__ssl(void); // _ssl
7271
extern PyObject* PyInit__stat(void); // _stat
@@ -193,7 +192,6 @@ struct _inittab _PyImport_Inittab[] = {
193192
{"_sha512", PyInit__sha512},
194193
{"_signal", PyInit__signal},
195194
{"_socket", PyInit__socket},
196-
{"_sqlite3", PyInit__sqlite3},
197195
{"_sre", PyInit__sre},
198196
{"_ssl", PyInit__ssl},
199197
{"_stat", PyInit__stat},

‎contrib/tools/python3/src/Modules/ya.make

+1-10
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ ADDINCL(
2323

2424
NO_COMPILER_WARNINGS()
2525

26-
NO_UTIL()
26+
NO_RUNTIME()
2727

2828
SRCS(
2929
_abc.c
@@ -74,15 +74,6 @@ SRCS(
7474
_queuemodule.c
7575
_randommodule.c
7676
_sha3/sha3module.c
77-
_sqlite/cache.c
78-
_sqlite/connection.c
79-
_sqlite/cursor.c
80-
_sqlite/microprotocols.c
81-
_sqlite/module.c
82-
_sqlite/prepare_protocol.c
83-
_sqlite/row.c
84-
_sqlite/statement.c
85-
_sqlite/util.c
8677
_sre.c
8778
_ssl.c
8879
_stat.c

‎contrib/tools/python3/ya.make

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ LICENSE(Python-2.0)
66

77
USE_PYTHON3()
88

9+
PEERDIR(
10+
contrib/tools/python3/src/Modules/_sqlite
11+
)
12+
913
CFLAGS(
1014
-DPy_BUILD_CORE
1115
)

‎library/python/testing/import_test/import_test.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ def check_imports(no_check=None, extra=[], skip_func=None):
177177
"skimage.io._plugins.*",
178178
"skimage.measure.mc_meta.visual_test",
179179

180-
180+
"sqlite3.*",
181181
"subvertpy.ra_svn", # can only be imported after subvertpy.ra
182182
"superfcgi.*",
183183

-471 KB
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)
Please sign in to comment.