mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2026-06-20 18:10:08 +02:00
b78ea64ea7
If AARE_FETCH_MINUIT is set to OFF we first look for a standalone Minuit2 and if that is not found we try to find Minuit2 as a part of ROOT. In both cases we make an alias to allow for simpler use of the target later. It still doesn't solve the issue that we install Minuit to when we fetch it but that can be addressed in a separate PR. closes #316
82 lines
2.2 KiB
CMake
82 lines
2.2 KiB
CMake
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
find_package(
|
|
Python 3.10
|
|
COMPONENTS Interpreter Development.Module
|
|
REQUIRED)
|
|
set(PYBIND11_FINDPYTHON ON) # Needed for RH8
|
|
|
|
# Download or find pybind11 depending on configuration
|
|
if(AARE_FETCH_PYBIND11)
|
|
FetchContent_Declare(
|
|
pybind11
|
|
GIT_REPOSITORY https://github.com/pybind/pybind11
|
|
GIT_TAG v3.0.3)
|
|
FetchContent_MakeAvailable(pybind11)
|
|
else()
|
|
find_package(pybind11 3.0.3 REQUIRED)
|
|
endif()
|
|
|
|
# Add the compiled python extension
|
|
pybind11_add_module(
|
|
_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)
|
|
|
|
target_include_directories(
|
|
_aare SYSTEM
|
|
PRIVATE $<TARGET_PROPERTY:aare::Minuit2,INTERFACE_INCLUDE_DIRECTORIES>)
|
|
|
|
# List of python files to be copied to the build directory
|
|
set(PYTHON_FILES
|
|
aare/__init__.py
|
|
aare/_version.py
|
|
aare/CtbRawFile.py
|
|
aare/ClusterFinder.py
|
|
aare/ClusterVector.py
|
|
aare/Cluster.py
|
|
aare/calibration.py
|
|
aare/func.py
|
|
aare/RawFile.py
|
|
aare/transform.py
|
|
aare/ScanParameters.py
|
|
aare/utils.py)
|
|
|
|
# Copy the python files to the build directory
|
|
foreach(FILE ${PYTHON_FILES})
|
|
configure_file(${FILE} ${CMAKE_BINARY_DIR}/${FILE})
|
|
endforeach(FILE ${PYTHON_FILES})
|
|
|
|
set_target_properties(_aare PROPERTIES LIBRARY_OUTPUT_DIRECTORY
|
|
${CMAKE_BINARY_DIR}/aare)
|
|
|
|
set(PYTHON_EXAMPLES examples/play.py examples/fits.py)
|
|
|
|
# Copy the python examples to the build directory
|
|
foreach(FILE ${PYTHON_EXAMPLES})
|
|
configure_file(${FILE} ${CMAKE_BINARY_DIR}/${FILE})
|
|
message(STATUS "Copying ${FILE} to ${CMAKE_BINARY_DIR}/${FILE}")
|
|
endforeach(FILE ${PYTHON_EXAMPLES})
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../VERSION
|
|
${CMAKE_BINARY_DIR}/aare/VERSION)
|
|
if(AARE_INSTALL_PYTHONEXT)
|
|
install(
|
|
TARGETS _aare
|
|
EXPORT "${TARGETS_EXPORT_NAME}"
|
|
LIBRARY DESTINATION aare COMPONENT python)
|
|
|
|
install(
|
|
FILES ${PYTHON_FILES}
|
|
DESTINATION aare
|
|
COMPONENT python)
|
|
install(
|
|
FILES ../VERSION
|
|
DESTINATION aare
|
|
COMPONENT python)
|
|
endif()
|