Build Packages / Create release (push) Successful in 24s
Build Packages / build:viewer:macos-arm64:nocuda (push) Successful in 3m29s
Build Packages / build:rugnux:macos-arm64:nocuda (push) Successful in 2m43s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 8m27s
Build Packages / build:rugnux:linux-x86_64:cuda (push) Successful in 9m53s
Build Packages / build:viewer:linux-x86_64:nocuda (push) Successful in 9m58s
Build Packages / build:viewer:linux-x86_64:cuda (push) Successful in 11m22s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 13m39s
Build Packages / build:viewer:windows-x86_64:nocuda (push) Successful in 18m37s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 16m32s
Build Packages / build:viewer:windows-x86_64:cuda (push) Successful in 24m11s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 25m30s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 19m3s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 20m23s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 19m41s
Build Packages / Generate python client (push) Successful in 50s
Build Packages / Build documentation (push) Successful in 1m16s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 21m0s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 18m38s
Build Packages / build:rugnux:windows-x86_64:cuda (push) Successful in 14m33s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 17m55s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 20m50s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 18m38s
Build Packages / Unit tests (push) Successful in 1h46m14s
* jfjoch_broker: Optional per-dataset authentication - statistics, images and plots can require a bearer token, which jfjoch_viewer supports. * jfjoch_viewer: Dark mode and a theme-matched colour scheme, a magnifier panel, and simpler contrast and background controls. * Rugnux: Multiple performance improvements on GPU and CPU (CPU-only processing up to 40% faster, faster image decoding on ARM), with unchanged results. * Rugnux: `--model` rigid-body refinement runs on the GPU, and the model-validation check is faster and more reliable. * Rugnux: Improved scaling and merging - error model, outlier rejection, absorption correction and French-Wilson amplitudes now agree more closely with XDS and ctruncate. * Rugnux: Improved integration - radial background on powder and ice rings, crowded rotation data keep their reflections, and CPU-only builds integrate large unit cells as GPU builds do. * Rugnux: More robust detector geometry - measured beam centre, X-ray bandwidth and goniometer rate, and geometry refinement accepted only on significant evidence. * Rugnux: Merged files are written in the standard setting, or in the setting of a reference MTZ, structure-factor mmCIF or model, with its free-R flags. * Rugnux: Richer report - ice and powder rings, further lattices, superstructure candidates and mosaicity, with warnings worded as prompts to check. * Rugnux: Clear error messages when a data set needs more GPU or host memory than is available. Reviewed-on: #83 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
166 lines
5.5 KiB
CMake
166 lines
5.5 KiB
CMake
# git header
|
|
# the commit's SHA1, and whether the building workspace was dirty or not
|
|
|
|
FIND_PACKAGE(Git)
|
|
|
|
SET(GITINFO_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
|
|
SET(GITINFO_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/GitInfo.cpp.in")
|
|
SET(GITINFO_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/GitInfo.cpp")
|
|
SET(JFJOCH_BUILD_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/GitInfoStamp.cmake")
|
|
|
|
set (THREADS_PREFER_PTHREAD_FLAG ON)
|
|
find_package (Threads REQUIRED)
|
|
|
|
MESSAGE(STATUS "Jungfraujoch git SHA1: ${GIT_SHA1}")
|
|
MESSAGE(STATUS "Jungfraujoch git date: ${GIT_DATE}")
|
|
MESSAGE(STATUS "Jungfraujoch version: ${JFJOCH_VERSION}")
|
|
|
|
# Re-stamped on every build, so RUGNUX_GIT in the rugnux report (and every other consumer of
|
|
# jfjoch_git_sha1) names the commit that was actually compiled.
|
|
ADD_CUSTOM_TARGET(JFJochGitInfo
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
"-DGIT_EXECUTABLE=${GIT_EXECUTABLE}"
|
|
"-DGITINFO_SOURCE_DIR=${CMAKE_SOURCE_DIR}"
|
|
"-DGITINFO_TEMPLATE=${CMAKE_CURRENT_SOURCE_DIR}/GitInfo.cpp.in"
|
|
"-DGITINFO_OUTPUT=${CMAKE_CURRENT_BINARY_DIR}/GitInfo.cpp"
|
|
"-DJFJOCH_VERSION=${JFJOCH_VERSION}"
|
|
"-DJFJOCH_BUILD_CXX_FLAGS=${CMAKE_CXX_FLAGS}"
|
|
-P "${CMAKE_CURRENT_SOURCE_DIR}/GitInfoStamp.cmake"
|
|
BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/GitInfo.cpp"
|
|
COMMENT "Stamping GitInfo.cpp from git HEAD"
|
|
VERBATIM)
|
|
|
|
ADD_LIBRARY(JFJochVersion STATIC
|
|
${CMAKE_CURRENT_BINARY_DIR}/GitInfo.cpp GitInfo.h)
|
|
ADD_DEPENDENCIES(JFJochVersion JFJochGitInfo)
|
|
set_target_properties(JFJochVersion PROPERTIES
|
|
POSITION_INDEPENDENT_CODE ON
|
|
)
|
|
|
|
ADD_LIBRARY(JFJochLogger STATIC
|
|
Logger.cpp Logger.h
|
|
)
|
|
|
|
TARGET_LINK_LIBRARIES(JFJochLogger PUBLIC spdlog::spdlog JFJochVersion)
|
|
|
|
ADD_LIBRARY(JFJochZMQ STATIC ZMQWrappers.cpp ZMQWrappers.h)
|
|
|
|
ADD_LIBRARY(JFJochCommon STATIC
|
|
Coord.cpp Coord.h
|
|
DiffractionExperiment.cpp DiffractionExperiment.h
|
|
RawToConvertedGeometry.h
|
|
JFJochException.h
|
|
Definitions.h
|
|
ThreadSafeFIFO.h
|
|
DiffractionSpot.cpp DiffractionSpot.h
|
|
StatusVector.cpp StatusVector.h
|
|
SpotToSave.h
|
|
NetworkAddressConvert.h NetworkAddressConvert.cpp
|
|
DetectorGeometry.h
|
|
DetectorModuleGeometry.cpp DetectorModuleGeometry.h
|
|
DetectorSetup.h DetectorSetup.cpp ZeroCopyReturnValue.h Histogram.h DiffractionGeometry.h
|
|
CUDAWrapper.cpp CUDAWrapper.h
|
|
ThreadAffinity.cpp ThreadAffinity.h
|
|
ADUHistogram.cpp ADUHistogram.h
|
|
RawToConvertedGeometryCore.h
|
|
Plot.h
|
|
../fpga/pcie_driver/jfjoch_fpga.h
|
|
DatasetSettings.cpp DatasetSettings.h
|
|
ROIMap.cpp ROIMap.h
|
|
ROIElement.cpp ROIElement.h
|
|
ROICircle.cpp ROICircle.h
|
|
ROIBox.cpp ROIBox.h
|
|
ImageBuffer.cpp ImageBuffer.h
|
|
time_utc.h
|
|
PixelMask.cpp PixelMask.h
|
|
InstrumentMetadata.cpp InstrumentMetadata.h
|
|
ImageFormatSettings.cpp
|
|
ImageFormatSettings.h
|
|
DetectorSettings.cpp
|
|
DetectorSettings.h
|
|
AzimuthalIntegrationSettings.cpp
|
|
AzimuthalIntegrationSettings.h
|
|
AzimuthalIntegrationProfile.h
|
|
AzimuthalIntegrationProfile.cpp
|
|
AzimuthalIntegrationMapping.h
|
|
AzimuthalIntegrationMapping.cpp
|
|
CheckPath.h
|
|
AutoIncrVector.h
|
|
ModuleSummation.cpp
|
|
ModuleSummation.h
|
|
ROIDefinition.cpp
|
|
ROIDefinition.h
|
|
ZeroCopyReturnValue.cpp
|
|
ColorScale.cpp ColorScale.h
|
|
FileWriterSettings.cpp
|
|
FileWriterSettings.h
|
|
MovingAverage.cpp
|
|
MovingAverage.h
|
|
DiffractionGeometry.cpp
|
|
ROIAzimuthal.cpp
|
|
ROIAzimuthal.h
|
|
print_license.h
|
|
DetectorGeometryModular.cpp
|
|
DetectorGeometryModular.h
|
|
DetectorGeometryFixed.cpp
|
|
DetectorGeometryFixed.h
|
|
GridScanSettings.cpp
|
|
GridScanSettings.h
|
|
JFJochMessages.h
|
|
GoniometerAxis.cpp
|
|
GoniometerAxis.h
|
|
DetectorTransformation.cpp
|
|
DetectorTransformation.h
|
|
DetectorOrientation.cpp
|
|
DetectorOrientation.h
|
|
CompressedImage.cpp
|
|
CompressedImage.h
|
|
Reflection.h
|
|
MultiLinePlot.cpp
|
|
MultiLinePlot.h
|
|
IndexingSettings.cpp
|
|
IndexingSettings.h
|
|
CrystalLattice.cpp
|
|
CrystalLattice.h
|
|
ScanResult.cpp
|
|
ScanResult.h
|
|
ScanResultGenerator.cpp
|
|
ScanResultGenerator.h
|
|
BraggIntegrationSettings.cpp
|
|
BraggIntegrationSettings.h
|
|
SpotToSave.cpp
|
|
XrayFluorescenceSpectrum.cpp
|
|
XrayFluorescenceSpectrum.h
|
|
ResolutionShells.cpp
|
|
ResolutionShells.h
|
|
DarkMaskSettings.cpp
|
|
DarkMaskSettings.h
|
|
TopPixels.cpp
|
|
TopPixels.h
|
|
hkl_key.h
|
|
JfjochTCP.h
|
|
BrokerStatus.h
|
|
ScalingSettings.cpp
|
|
ScalingSettings.h
|
|
UnitCell.cpp
|
|
UnitCell.h
|
|
CorrelationCoefficient.cpp
|
|
CorrelationCoefficient.h
|
|
JFJochReceiverPlots.cpp
|
|
JFJochReceiverPlots.h
|
|
)
|
|
|
|
# librt is Linux/glibc-only (older glibc keeps clock_gettime/timer_*/sem_* there, and some
|
|
# distros are picky about it for pthreads); it does not exist on macOS/Windows.
|
|
TARGET_LINK_LIBRARIES(JFJochCommon JFJochLogger Compression JFCalibration gemmi Threads::Threads
|
|
$<$<PLATFORM_ID:Linux>:rt>)
|
|
|
|
TARGET_LINK_LIBRARIES(JFJochZMQ "$<BUILD_INTERFACE:libzmq-static>")
|
|
|
|
IF (JFJOCH_CUDA_AVAILABLE)
|
|
TARGET_SOURCES(JFJochCommon PRIVATE CUDAWrapper.cu )
|
|
TARGET_LINK_LIBRARIES(JFJochCommon CUDA::cudart_static
|
|
${CMAKE_DL_LIBS} $<$<PLATFORM_ID:Linux>:rt>)
|
|
ENDIF()
|