FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
libmotioncapture/setup.py at main · IMRCLab/libmotioncapture · GitHub
IMRCLab
libmotioncapture
Repository navigation
Code
Issues
Pull requests
Discussions
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
libmotioncapture
/
setup.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
113 lines (91 loc) · 4.29 KB
Breadcrumbs
libmotioncapture
/
setup.py
Copy path
File metadata and controls
113 lines (91 loc) · 4.29 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# -*- coding: utf-8 -*-
import
os
import
sys
import
subprocess
from
setuptools
import
setup
,
Extension
from
setuptools
.
command
.
build_ext
import
build_ext
# Convert distutils Windows platform specifiers to CMake -A arguments
PLAT_TO_CMAKE
=
{
"win32"
:
"Win32"
,
"win-amd64"
:
"x64"
,
"win-arm32"
:
"ARM"
,
"win-arm64"
:
"ARM64"
,
}
# A CMakeExtension needs a sourcedir instead of a file list.
# The name must be the _single_ output extension from the CMake build.
# If you need multiple extensions, see scikit-build.
class
CMakeExtension
(
Extension
):
def
__init__
(
self
,
name
,
sourcedir
=
""
):
Extension
.
__init__
(
self
,
name
,
sources
=
[])
self
.
sourcedir
=
os
.
path
.
abspath
(
sourcedir
)
class
CMakeBuild
(
build_ext
):
def
build_extension
(
self
,
ext
):
extdir
=
os
.
path
.
abspath
(
os
.
path
.
dirname
(
self
.
get_ext_fullpath
(
ext
.
name
)))
# required for auto-detection of auxiliary "native" libs
if
not
extdir
.
endswith
(
os
.
path
.
sep
):
extdir
+=
os
.
path
.
sep
cfg
=
"Debug"
if
self
.
debug
else
"Release"
# CMake lets you override the generator - we need to check this.
# Can be set with Conda-Build, for example.
cmake_generator
=
os
.
environ
.
get
(
"CMAKE_GENERATOR"
,
""
)
# Set Python_EXECUTABLE instead if you use PYBIND11_FINDPYTHON
cmake_args
=
[
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY={}"
.
format
(
extdir
),
"-DPYTHON_EXECUTABLE={}"
.
format
(
sys
.
executable
),
"-DCMAKE_BUILD_TYPE={}"
.
format
(
cfg
),
# not used on MSVC, but no harm
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
# to make sure vrpn compiles
]
build_args
=
[]
if
self
.
compiler
.
compiler_type
!=
"msvc"
:
# Using Ninja-build since it a) is available as a wheel and b)
# multithreads automatically. MSVC would require all variables be
# exported for Ninja to pick it up, which is a little tricky to do.
# Users can override the generator with CMAKE_GENERATOR in CMake
# 3.15+.
if
not
cmake_generator
:
cmake_args
+=
[
"-GNinja"
]
else
:
# Single config generators are handled "normally"
single_config
=
any
(
x
in
cmake_generator
for
x
in
{
"NMake"
,
"Ninja"
})
# CMake allows an arch-in-generator style for backward compatibility
contains_arch
=
any
(
x
in
cmake_generator
for
x
in
{
"ARM"
,
"Win64"
})
# Specify the arch if using MSVC generator, but only if it doesn't
# contain a backward-compatibility arch spec already in the
# generator name.
if
not
single_config
and
not
contains_arch
:
cmake_args
+=
[
"-A"
,
PLAT_TO_CMAKE
[
self
.
plat_name
]]
# Multi-config generators have a different way to specify configs
if
not
single_config
:
cmake_args
+=
[
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_{}={}"
.
format
(
cfg
.
upper
(),
extdir
)
]
build_args
+=
[
"--config"
,
cfg
]
# Set CMAKE_BUILD_PARALLEL_LEVEL to control the parallel build level
# across all generators.
if
"CMAKE_BUILD_PARALLEL_LEVEL"
not
in
os
.
environ
:
# self.parallel is a Python 3 only way to set parallel jobs by hand
# using -j in the build_ext call, not supported by pip or PyPA-build.
if
hasattr
(
self
,
"parallel"
)
and
self
.
parallel
:
# CMake 3.12+ only.
build_args
+=
[
"-j{}"
.
format
(
self
.
parallel
)]
if
not
os
.
path
.
exists
(
self
.
build_temp
):
os
.
makedirs
(
self
.
build_temp
)
subprocess
.
check_call
(
[
"cmake"
,
ext
.
sourcedir
]
+
cmake_args
,
cwd
=
self
.
build_temp
)
subprocess
.
check_call
(
[
"cmake"
,
"--build"
,
"."
]
+
build_args
,
cwd
=
self
.
build_temp
)
with
open
(
'version'
,
'r'
)
as
file
:
version
=
file
.
read
().
replace
(
'
\"
'
,
''
)
# The information here can also be placed in setup.cfg - better separation of
# logic and declaration, and simpler if you include description/version in a file.
setup
(
name
=
"motioncapture"
,
version
=
version
,
description
=
"Interface for common motion capture systems"
,
long_description
=
"Interface for common motion capture systems"
,
ext_modules
=
[
CMakeExtension
(
"motioncapture"
)],
cmdclass
=
{
"build_ext"
:
CMakeBuild
},
zip_safe
=
False
,
)
Back
|
FazBrowse Home
|
New Git URL