Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 36 million developers.Sign up
Faster incremental build by re-configuring the project only if needed. This was achieved by (1) adding support
to retrieve the environment mapping associated with the generator set in the
CMakeCache.txtfile, (2) introducing
a CMake spec file storing the CMake version as well as the
the CMake arguments and (3) re-configuring only if either the generator or the CMake specs change.
Thanks @xoviat for the contribution. See #301.
Add CMake module F2PY useful to find the
f2pyexecutable for building Python
extensions with Fortran. Thanks to @xoviat for moving forward with the integration. Concept for the
module comes from the work of @scopatz done in PyNE project.
Add support for cmake_languages setup keyword.
_skbuildto build package. This allows to have a different build
directory for each python version. Thanks @isuruf for the suggestion and @xoviat for contributing
the feature. See #283.
Run cmake and
developcommand when command
Fix support of
--hide-listingwhen building wheel.
Ensure package data files specified in the
package_datakeyword are packaged
--skip-cmakecommand line option support so that it can re-generate a source distribution or a python
wheel without having to run cmake executable to re-configure and build. Thanks to @jonwoodring for reporting
the issue on the mailing list.
MANIFEST.inis considered when generating source distribution. Thanks @seanlis for reporting
the problem and providing an initial patch, and thanks @henryiii for implementing the corresponding test.
Support generation of source distribution for git repository having submodules. This works only for version
of git >= 2.11 supporting the
- Tests using Python 3.3.x were removed and support for this version of python is not guaranteed anymore. Support was
removed following the deprecation warnings reported by version 0.31.0 of wheel package, these were causing the tests
Speedup execution of tests that do not require any CMake language enabled. This is achieved by (1) introducing the
hello-no-language, (2) updating test utility functions
to accept the optional parameter
disable_languages_testallowing to skip unneeded compiler detection in test project
used to verify that the selected CMake generator works as expected, and (3) updating relevant tests to use the new test
project and parameters.
Overall testing time on all continuous integration services was reduced:
- from ~16 to ~7 minutes for 64 and 32-bit Python 2.7 tests done using Visual Studio Express 2008
- from more than 2 hours to ~50 minutes for 64 and 32-bit Python 3.5 tests done using Visual Studio 2015. Improvement specific
to Python 3.x were obtained by caching the results of slow calls to
distutils.msvc9compiler.query_vcvarsall(for Python 3.3 and 3.4) and
distutils._msvccompiler._get_vc_env(for Python 3.5 and above).
These functions were called multiple times to create the list of skbuild.platform_specifics.windows.CMakeVisualStudioCommandLineGenerator
used in skbuild.platform_specifics.windows.WindowsPlatform.
CircleCI: from ~7 to ~5 minutes.
TravisCI: from ~21 to ~10 minutes.
Update maximum line length specified in flake8 settings from 80 to 120 characters.
Ensure that the project directory is prepended to
sys.pathwhen executing test building sample project
with the help of
Add codecov config file for better defaults and prevent associated Pull Request checks from reporting failure
when coverage only slightly changes.
Improve internal API documentation:
Split usage documentation into a
- Fix miscellaneous pylint warnings.
- Ensure CMake arguments passed to scikit-build and starting with
are passed to the test project allowing to determine which generator to use.
For example, this ensures that arguments like
are passed. See #256.
- Update make_a_release section including instructions to update
with up-to-date pypi download statistics based on Google big table.
py_modulessupport: Python modules generated by CMake are now
properly included in binary distribution.
- Improve developer mode support for
py_modulesgenerated by CMake.
- Do not implicitly install python modules when the beginning of their name
match a package explicitly listed. For example, if a project has a package
foo/__init__.pyand a module
fooConfig.py, and only package
was listed in
fooConfig.pyis not installed anymore.
- CMake module cmake-modules/targetLinkLibrariesWithDynamicLookup: Fix the
caching of dynamic lookup variables. See #240 fixed by blowekamp.
- wheel: As suggested by thewtex, unpinning version of the package
==0.29.0will avoid uninstalling a newer
version of wheel package on up-to-date system.
- Add a command line CMake Options section to Usage.
- Fix table listing Visual Studio IDE version and
corresponding with CPython version in generators.
- Improve make_a_release section.
(1) check if python modules are packaged into source and wheel distributions
and (2) check if python modules are copied into the source tree when developer
mode is enabled.
skbuild.setuptools_wrap.strip_packageto handle empty package.
skbuild.command.build_py.build_py.find_modulesfunction to look
skbuild.utils.PythonModuleFinder](http://scikit-build.readthedocs.io/en/latest/skbuild.utils.html#skbuild.utils.PythonModuleFinder) to search forpython module`
in the CMake install tree.
skbuild.setuptools_wrap._consolidateto copy file into the CMake
tree only if it exists.
skbuild.setuptools_wrap._copy_fileto create directory only if
there is one associated with the destination file.
- Ensure file copied in “develop” mode have “mode bits” maintained.
- Improve user experience by running CMake only if needed. See #207
- Add support for cmake_with_sdist setup keyword argument.
- Add support for
--skip-cmakeglobal setup command-line options.
- scikit-build conda-forge recipe added by @isuruf. See conda-forge/staged-recipes#1989
- Add support for development mode. (#187).
- Improved C Runtime, Compiler and Build System Generator selection:
- If available, uses Ninja build system generator on all platforms. An advantages is that ninja automatically parallelizes the build based on the number of CPUs.
- Automatically set the expected Visual Studio environment when
NMake Makefilesgenerators are used.
- Support Microsoft Visual C++ Compiler for Python 2.7. See #216.
- Prompt for user to install the required compiler if it is not available. See #27.
- Improve targetLinkLibrariesWithDynamicLookup CMake Module extending the API of
- Update long signature:
<LinkFlagsVar>is now optional
- Add support for short signature:
check_dynamic_lookup(<ResultVar>). See SimpleITK/SimpleITK#80.
- Fix scikit-build source distribution and add test. See #214 Thanks @isuruf for reporting the issue.
- Support building extension within a virtualenv on windows. See #119.
- add C Runtime, Compiler and Build System Generator section
- add Release Notes section
- allow github issues and users to easily be referenced using
usernamemarkups. This functionality is enabled by the sphinx-issue sphinx extension
- make_a_release: Ensure uploaded distributions are signed
- Add empty cross-compilation / wheels building sections
- Add Why should I use scikit-build ?
- Add Setup options section
- Add Internal API section generated using sphinx-apidoc.
- Add Internal CMake Modules to document targetLinkLibrariesWithDynamicLookup CMake module.
- setuptools: As suggested by @mivade in #212, remove the hard requirement for
==28.8.0and require version
>= 28.0.0. This allows to “play” nicely with conda where it is problematic to update the version of setuptools. See pypa/pip#2751 and ContinuumIO/anaconda-issues#542.
- Improve “push_dir” tests to not rely on build directory name. Thanks @isuruf for reporting the issue.
- travis/install_pyenv: Improve MacOSX build time updating scikit-ci-addons
skbuild.cmaker.CMaker.configure(): Change parameter name from
generator_name. This is consistent with how generator are identified in CMake documentation. This change breaks backward compatibility.
skbuild.platform_specifics.abstract.CMakePlatform.get_best_generator(): Change parameter name from
generator_name. Note that this function is also directly importable from
skbuild.platform_specifics. This change breaks backward compatibility.
skbuild.platform_specifics.abstract.CMakeGenerator: This class allows to handle generators as sophisticated object instead of simple string. This is done anticipating the support for CMAKE_GENERATOR_PLATFORM and CMAKE_GENERATOR_TOOLSET. Note also that the class is directly importable from
skbuild.platform_specificsand is now returned by
skbuild.platform_specifics.get_best_generator(). This change breaks backward compatibility.
- Remove unused “on_failure: event logging” and “notifications: GitHubPullRequest”
- Remove unused SKIP env variable