in setup.py [0:0]
def _build_dependency(self, aws_lib):
cmake = get_cmake_path()
prev_cwd = os.getcwd() # restore cwd at end of function
lib_source_dir = os.path.join(PROJECT_DIR, 'crt', aws_lib.name)
build_type = 'Debug' if self.debug else 'RelWithDebInfo'
# Skip library if it wasn't pulled
if not os.path.exists(os.path.join(lib_source_dir, 'CMakeLists.txt')):
print("--- Skipping dependency: '{}' source not found ---".format(aws_lib.name))
return
print("--- Building dependency: {} ({}) ---".format(aws_lib.name, build_type))
lib_build_dir = os.path.join(DEP_BUILD_DIR, aws_lib.name)
if not os.path.exists(lib_build_dir):
os.makedirs(lib_build_dir)
os.chdir(lib_build_dir)
# cmake configure
cmake_args = [cmake]
cmake_args.extend(determine_generator_args())
cmake_args.extend(determine_cross_compile_args())
cmake_args.extend([
'-DCMAKE_PREFIX_PATH={}'.format(DEP_INSTALL_PATH),
'-DCMAKE_INSTALL_PREFIX={}'.format(DEP_INSTALL_PATH),
'-DBUILD_SHARED_LIBS=OFF',
'-DCMAKE_BUILD_TYPE={}'.format(build_type),
'-DBUILD_TESTING=OFF',
'-DCMAKE_POSITION_INDEPENDENT_CODE=ON'
])
cmake_args.extend(aws_lib.extra_cmake_args)
cmake_args.append(lib_source_dir)
print(subprocess.list2cmdline(cmake_args))
subprocess.check_call(cmake_args)
# cmake build/install
build_cmd = [
cmake,
'--build', './',
'--config', build_type,
'--target', 'install',
]
if get_cmake_version() >= (3, 12):
# cmake 3.12+ allows --parallel for faster builds.
# Be sure to set a number, otherwise "make" will go absolutely
# bananas and run out of memory on low-end machines.
build_cmd += ['--parallel', str(os.cpu_count())]
print(subprocess.list2cmdline(build_cmd))
subprocess.check_call(build_cmd)
os.chdir(prev_cwd)