Skip to content

Commit

Permalink
Merge pull request #138 from njoy/feature/python_install_and_stubs
Browse files Browse the repository at this point in the history
Updates python install location, rpath, and adds stub files.
  • Loading branch information
whaeck authored Oct 3, 2024
2 parents 547023c + c39fb9c commit 4f73bad
Show file tree
Hide file tree
Showing 11 changed files with 12,170 additions and 134 deletions.
136 changes: 2 additions & 134 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,140 +82,8 @@ if (ACEtk.python AND NOT TARGET njoy::tools.python)
set(ACEtk.python OFF)
endif()

if(ACEtk.python)

pybind11_add_module( ACEtk.python
${CMAKE_CURRENT_SOURCE_DIR}/python/src/ACEtk.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/XsdirEntry.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/Xsdir.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/Header.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/Header201.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/Data.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/Table.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/ReferenceFrame.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/AngularDistributionType.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/EnergyDistributionType.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/InterpolationData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/CrossSectionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/PrincipalCrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/PolynomialFissionMultiplicity.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TabulatedFissionMultiplicity.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/FissionMultiplicityBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/ReactionNumberBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/ReactionQValueBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/FrameAndMultiplicityBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/CrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/EquiprobableAngularBins.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TabulatedAngularDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TabulatedAngularDistributionWithProbability.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/IsotropicAngularDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/AngularDistributionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/FullyIsotropicDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/DistributionGivenElsewhere.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/AngularDistributionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/SecondaryParticleAngularDistributionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/EquiprobableOutgoingEnergyBins.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/EquiprobableOutgoingEnergyBinData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/LevelScatteringDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/DiscretePhotonDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TabulatedEnergyDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/OutgoingEnergyDistributionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/GeneralEvaporationSpectrum.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/SimpleMaxwellianFissionSpectrum.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/EvaporationSpectrum.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/ParameterData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/EnergyDependentWattSpectrum.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TabulatedKalbachMannDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/KalbachMannDistributionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/NBodyPhaseSpaceDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TwoBodyTransferDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TabulatedEnergyAngleDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/EnergyAngleDistributionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TabulatedAngleEnergyDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/AngleEnergyDistributionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/DistributionProbability.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/MultiDistributionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/EnergyDistributionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/SecondaryParticleEnergyDistributionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/DelayedNeutronPrecursorData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/PhotonProductionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/PhotonProductionCrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/MultiplicityReactionNumberBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TabulatedMultiplicity.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/TabulatedSecondaryParticleMultiplicity.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/PhotonProductionCrossSectionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/DelayedNeutronPrecursorBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/SecondaryParticleTypeBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/SecondaryParticleInformationBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/SecondaryParticleLocatorBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/SecondaryParticleProductionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/SecondaryParticleProductionCrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/ProbabilityTable.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/ProbabilityTableBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/continuous/UndefinedDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photonuclear.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photonuclear/PrincipalCrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photonuclear/SecondaryParticleLocatorBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photoatomic.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photoatomic/PrincipalCrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photoatomic/IncoherentScatteringFunctionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photoatomic/CoherentFormFactorBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photoatomic/FluorescenceDataBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photoatomic/HeatingNumbersBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photoatomic/ComptonProfile.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photoatomic/ComptonProfileBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/photoatomic/PhotoelectricCrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/dosimetry.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/dosimetry/CrossSectionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/dosimetry/CrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/ElectronShellBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/ElectronSubshellBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/PrincipalCrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/ElasticCrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/ExcitationBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/BremsstrahlungBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/SubshellTransitionData.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/SubshellTransitionDataBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/TabulatedAngularDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/ElasticAngularDistributionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/TabulatedEnergyDistribution.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/electron/EnergyDistributionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/thermal.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/thermal/CrossSectionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/thermal/DiscreteCosines.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/thermal/DiscreteCosinesWithProbability.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/thermal/ElasticAngularDistributionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/thermal/InelasticAngularDistributionBlock.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/ContinuousEnergyTable.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/DosimetryTable.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/ThermalScatteringTable.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/PhotoatomicTable.python.cpp
${CMAKE_CURRENT_SOURCE_DIR}/python/src/PhotonuclearTable.python.cpp
)

target_link_libraries(ACEtk.python PRIVATE njoy::ACEtk)
add_dependencies( ACEtk.python njoy::tools.python)
target_include_directories( ACEtk.python PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/python/src )
target_compile_options( ACEtk.python PRIVATE -fvisibility=hidden )
set_target_properties( ACEtk.python PROPERTIES OUTPUT_NAME ACEtk )
set_target_properties( ACEtk.python PROPERTIES COMPILE_DEFINITIONS "PYBIND11" )
set_target_properties( ACEtk.python PROPERTIES POSITION_INDEPENDENT_CODE ON )

message( STATUS "Building ACEtk's python API" )

set( ACEtk_PYTHONPATH "${CMAKE_CURRENT_BINARY_DIR}" )
# Append potential installation and build paths for tools python module
set( tools_PYTHONPATH "${CMAKE_CURRENT_BINARY_DIR}/_deps/tools-build" )
if (tools_DIR)
set( tools_PYTHONPATH "${tools_PYTHONPATH}:${tools_DIR}/../../../lib64" )
endif()

if( ACEtk.tests )
include( cmake/unit_testing_python.cmake )
endif()

if (ACEtk.python)
add_subdirectory(python)
endif()

if( ${ACEtk.tests} )
Expand Down
2 changes: 2 additions & 0 deletions cmake/dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ shacl_FetchContent_Declare( tools
#######################################################################

if(ACEtk.python)
# Required to obtain version information
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
shacl_FetchContent_Declare( pybind11
GIT_REPOSITORY ../../pybind/pybind11
GIT_TAG 5b0a6fc2017fcc176545afe3e09c9f9885283242 # tag: v2.10.4
Expand Down
Loading

0 comments on commit 4f73bad

Please sign in to comment.