62 lines
2.0 KiB
CMake
62 lines
2.0 KiB
CMake
# - add libs components
|
|
# Private interface library to help Boost.Python usage
|
|
add_library(pyG4Boost INTERFACE)
|
|
target_include_directories(pyG4Boost INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/boost")
|
|
|
|
# Core Geant4 bindings
|
|
add_subdirectory(global)
|
|
add_subdirectory(interface)
|
|
add_subdirectory(intercoms)
|
|
add_subdirectory(run)
|
|
add_subdirectory(event)
|
|
add_subdirectory(tracking)
|
|
add_subdirectory(track)
|
|
add_subdirectory(geometry)
|
|
add_subdirectory(materials)
|
|
add_subdirectory(particles)
|
|
add_subdirectory(processes)
|
|
add_subdirectory(digits_hits)
|
|
add_subdirectory(visualization)
|
|
add_subdirectory(graphics_reps)
|
|
add_subdirectory(physics_lists)
|
|
|
|
# Only if GDML
|
|
if(GEANT4_USE_GDML)
|
|
add_subdirectory(gdml)
|
|
endif()
|
|
|
|
# Pure Python Geant4 extensions
|
|
set(GEANT4_PYTHON_MODULES
|
|
__init__.py
|
|
colortable.py
|
|
g4thread.py
|
|
g4viscp.py
|
|
hepunit.py)
|
|
set(GEANT4_PYTHON_BYTECOMPILE_INPUT)
|
|
set(GEANT4_PYTHON_BYTECOMPILE_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/__pycache__")
|
|
|
|
foreach(_pymod ${GEANT4_PYTHON_MODULES})
|
|
# Generate used to support testing and multimode so .py/pyc files are in the
|
|
# same place as the output extensions
|
|
file(GENERATE
|
|
OUTPUT ${GEANT4_PYTHON_OUTPUT_DIR}/Geant4/${_pymod}
|
|
INPUT ${CMAKE_CURRENT_SOURCE_DIR}/${_pymod})
|
|
# Configure module for byte-compilation at install time
|
|
# We do this locally because add_custom_command cannot use genexes in
|
|
# its OUTPUT command
|
|
configure_file(${_pymod} ${CMAKE_CURRENT_BINARY_DIR}/${_pymod} COPYONLY)
|
|
list(APPEND GEANT4_PYTHON_BYTECOMPILE_INPUT ${CMAKE_CURRENT_BINARY_DIR}/${_pymod})
|
|
endforeach()
|
|
|
|
add_custom_command(
|
|
OUTPUT "${GEANT4_PYTHON_BYTECOMPILE_OUTPUT}"
|
|
COMMAND ${PYTHON_EXECUTABLE} -m compileall -q ${CMAKE_CURRENT_BINARY_DIR}
|
|
DEPENDS ${GEANT4_PYTHON_BYTECOMPILE_INPUT}
|
|
COMMENT "Byte-compiling Geant4 .py modules")
|
|
|
|
add_custom_target(pyG4ByteCompile ALL DEPENDS "${GEANT4_PYTHON_BYTECOMPILE_OUTPUT}")
|
|
|
|
install(FILES ${GEANT4_PYTHON_BYTECOMPILE_INPUT} DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4")
|
|
install(DIRECTORY ${GEANT4_PYTHON_BYTECOMPILE_OUTPUT} DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4")
|
|
|