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:
name: aare_software
version: {{ environ.get('GIT_DESCRIBE_TAG', '') }}
name: aare
version: 2024.10.29.dev0 #TODO! how to not duplicate this?
source:
- path: ..
path: ..
build:
number: 0
binary_relocation: True
rpaths:
- lib/
script:
- unset CMAKE_GENERATOR && {{ PYTHON }} -m pip install . -vv # [not win]
- {{ PYTHON }} -m pip install . -vv # [win]
requirements:
build:
- {{ compiler('c') }}
- python
- {{ 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:
# - libstdcxx-ng
# - libgcc-ng
# - xorg-libx11
# - xorg-libice
# - xorg-libxext
# - xorg-libsm
# - xorg-libxau
# - xorg-libxrender
# - xorg-libxfixes
# - expat
- cmake
- ninja
- python
- pip
- scikit-build-core
- pybind11 >=2.13.0
- fmt
run:
# - libstdcxx-ng
# - libgcc-ng
- python
outputs:
- name: aarelib
script: copy_lib.sh
requirements:
build:
- {{ compiler('c') }}
- {{compiler('cxx')}}
- catch2
- 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
test:
imports:
- aare
# requires:
# - pytest
# source_files:
# - tests
# commands:
# - pytest tests
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)
FetchContent_Declare(
pybind11
GIT_REPOSITORY https://github.com/pybind/pybind11
GIT_TAG v2.11.0
GIT_TAG v2.13.0
)
FetchContent_MakeAvailable(pybind11)
else()
find_package(pybind11 2.11 REQUIRED)
find_package(pybind11 2.13 REQUIRED)
endif()
# Add the compiled python extension
pybind11_add_module(
_aare
src/module.cpp
_aare # name of the module
src/module.cpp # source file
)
set_target_properties(_aare PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
)
target_link_libraries(_aare PRIVATE aare_core aare_compiler_flags)
# List of python files to be copied to the build directory
set( PYTHON_FILES
aare/__init__.py
)
# Copy the python files to the build directory
foreach(FILE ${PYTHON_FILES})
configure_file( ${FILE}
${CMAKE_BINARY_DIR}/${FILE} )
configure_file(${FILE} ${CMAKE_BINARY_DIR}/${FILE} )
endforeach(FILE ${PYTHON_FILES})
configure_file( examples/play.py
${CMAKE_BINARY_DIR}/play.py
set_target_properties(_aare PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/aare
)
# 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 @@
from _aare import File
# Make the compiled classes that live in _aare available from aare.
from ._aare import File