def _build_dependency()

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)