building with scikit build

This commit is contained in:
Erik Fröjdh 2024-10-29 11:19:20 +01:00
parent 1a16d4522e
commit c509e29b52
6 changed files with 64 additions and 140 deletions

View File

@ -1,20 +0,0 @@
mkdir build
mkdir install
cd build
cmake .. \
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
-DCMAKE_INSTALL_PREFIX=install \
-DAARE_SYSTEM_LIBRARIES=ON \
-DAARE_TESTS=ON \
-DAARE_PYTHON_BINDINGS=ON \
-DCMAKE_BUILD_TYPE=Release \
NCORES=$(getconf _NPROCESSORS_ONLN)
echo "Building using: ${NCORES} cores"
cmake --build . -- -j${NCORES}
cmake --build . --target install
# CTEST_OUTPUT_ON_FAILURE=1 ctest -j 1

View File

@ -1,19 +0,0 @@
mkdir -p $PREFIX/lib
mkdir -p $PREFIX/bin
mkdir -p $PREFIX/include/aare
#Shared and static libraries
cp build/install/lib/* $PREFIX/lib/
#Binaries
# cp build/install/bin/sls_detector_acquire $PREFIX/bin/.
# cp build/install/bin/sls_detector_get $PREFIX/bin/.
# cp build/install/bin/sls_detector_put $PREFIX/bin/.
# cp build/install/bin/sls_detector_help $PREFIX/bin/.
# cp build/install/bin/slsReceiver $PREFIX/bin/.
# cp build/install/bin/slsMultiReceiver $PREFIX/bin/.
cp build/install/include/aare/* $PREFIX/include/aare
cp -rv build/install/share $PREFIX

View File

@ -1,104 +1,44 @@
package: package:
name: aare_software name: aare
version: {{ environ.get('GIT_DESCRIBE_TAG', '') }} version: 2024.10.29.dev0 #TODO! how to not duplicate this?
source: source:
- path: .. path: ..
build: build:
number: 0 number: 0
binary_relocation: True script:
rpaths: - unset CMAKE_GENERATOR && {{ PYTHON }} -m pip install . -vv # [not win]
- lib/ - {{ PYTHON }} -m pip install . -vv # [win]
requirements: requirements:
build: build:
- {{ compiler('c') }} - python
- {{ compiler('cxx') }} - {{ compiler('cxx') }}
- cmake
# - qt 5.*
# - xorg-libx11
# - xorg-libice
# - xorg-libxext
# - xorg-libsm
# - xorg-libxau
# - xorg-libxrender
# - xorg-libxfixes
# - {{ cdt('mesa-libgl-devel') }} # [linux]
# - {{ cdt('mesa-libegl-devel') }} # [linux]
# - {{ cdt('mesa-dri-drivers') }} # [linux]
# - {{ cdt('libselinux') }} # [linux]
# - {{ cdt('libxdamage') }} # [linux]
# - {{ cdt('libxxf86vm') }} # [linux]
# - expat
host: host:
# - libstdcxx-ng - cmake
# - libgcc-ng - ninja
# - xorg-libx11 - python
# - xorg-libice - pip
# - xorg-libxext - scikit-build-core
# - xorg-libsm - pybind11 >=2.13.0
# - xorg-libxau - fmt
# - xorg-libxrender
# - xorg-libxfixes
# - expat
run: run:
# - libstdcxx-ng - python
# - libgcc-ng
outputs: test:
- name: aarelib imports:
script: copy_lib.sh - aare
# requires:
requirements: # - pytest
build: # source_files:
- {{ compiler('c') }} # - tests
- {{compiler('cxx')}} # commands:
- catch2 # - pytest tests
- zstd
# - libstdcxx-ng
# - libgcc-ng
run:
# - libstdcxx-ng
# - libgcc-ng
# - name: aare
# script: build_pylib.sh
# requirements:
# build:
# - python
# - {{ compiler('c') }}
# - {{compiler('cxx')}}
# - {{ pin_subpackage('slsdetlib', exact=True) }}
# - setuptools
# - pybind11=2.11
# host:
# - python
# - {{ pin_subpackage('slsdetlib', exact=True) }}
# - pybind11=2.11
# run:
# - libstdcxx-ng
# - libgcc-ng
# - python
# - numpy
# - {{ pin_subpackage('slsdetlib', exact=True) }}
# test:
# imports:
# - slsdet
about:
summary: An example project built with pybind11 and scikit-build.
# license_file: LICENSE

14
pyproject.toml Normal file
View File

@ -0,0 +1,14 @@
[build-system]
requires = ["scikit-build-core>=0.10", "pybind11"]
build-backend = "scikit_build_core.build"
[project]
name = "aare"
version = "2024.10.29.dev0"
[tool.scikit-build]
cmake.verbose = true
[tool.scikit-build.cmake.define]
AARE_PYTHON_BINDINGS = "ON"
AARE_SYSTEM_LIBRARIES = "ON"

View File

@ -1,34 +1,44 @@
# Download or find pybind11 depending on configuration
if(AARE_FETCH_PYBIND11) if(AARE_FETCH_PYBIND11)
FetchContent_Declare( FetchContent_Declare(
pybind11 pybind11
GIT_REPOSITORY https://github.com/pybind/pybind11 GIT_REPOSITORY https://github.com/pybind/pybind11
GIT_TAG v2.11.0 GIT_TAG v2.13.0
) )
FetchContent_MakeAvailable(pybind11) FetchContent_MakeAvailable(pybind11)
else() else()
find_package(pybind11 2.11 REQUIRED) find_package(pybind11 2.13 REQUIRED)
endif() endif()
# Add the compiled python extension
pybind11_add_module( pybind11_add_module(
_aare _aare # name of the module
src/module.cpp src/module.cpp # source file
) )
set_target_properties(_aare PROPERTIES set_target_properties(_aare PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
) )
target_link_libraries(_aare PRIVATE aare_core aare_compiler_flags) target_link_libraries(_aare PRIVATE aare_core aare_compiler_flags)
# List of python files to be copied to the build directory
set( PYTHON_FILES set( PYTHON_FILES
aare/__init__.py aare/__init__.py
) )
# Copy the python files to the build directory
foreach(FILE ${PYTHON_FILES}) foreach(FILE ${PYTHON_FILES})
configure_file( ${FILE} configure_file(${FILE} ${CMAKE_BINARY_DIR}/${FILE} )
${CMAKE_BINARY_DIR}/${FILE} )
endforeach(FILE ${PYTHON_FILES}) endforeach(FILE ${PYTHON_FILES})
set_target_properties(_aare PROPERTIES
configure_file( examples/play.py LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/aare
${CMAKE_BINARY_DIR}/play.py
) )
# Copy the examples/scripts to the build directory
configure_file(examples/play.py ${CMAKE_BINARY_DIR}/play.py)
install(TARGETS _aare DESTINATION aare)

View File

@ -1,3 +1,2 @@
# Make the compiled classes that live in _aare available from aare.
from ._aare import File
from _aare import File