From 6971052fdb28875893c6ea3142835c882792d70c Mon Sep 17 00:00:00 2001 From: Jon Zarling Date: Fri, 12 Sep 2025 11:53:30 -0500 Subject: [PATCH 1/2] Add evioConfig.cmake to installs --- CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index ea8d53f1..88a28c0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ add_compile_options(-Wall) # Enable all warnings include(GNUInstallDirs) include(FindPackageHandleStandardArgs) # find_package_handle_standard_args() include(CTest) +include(CMakePackageConfigHelpers) # Build option parameters (and defaults) option(C_ONLY "SKIP building C++ library, build C only" OFF) @@ -281,6 +282,17 @@ if(NOT C_ONLY) ) endif() +# Install config files for find_package +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/evioConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/evioConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/evio/cmake" +) +install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/evioConfig.cmake" + DESTINATION "${CMAKE_INSTALL_PREFIX}/evio/cmake" +) + # Unit testing setup add_test(NAME EvioWriteAndReadBack_builder COMMAND bin/EvioWriteAndReadBack_builder 10) From 50c619bf94bf70b11777ec3a195eccc085b375ed Mon Sep 17 00:00:00 2001 From: Jon Zarling Date: Fri, 12 Sep 2025 11:54:34 -0500 Subject: [PATCH 2/2] Remove unfinished utility from remote branch --- src/utils/cpp/evio_print_contents_draft.cpp | 92 --------------------- 1 file changed, 92 deletions(-) delete mode 100644 src/utils/cpp/evio_print_contents_draft.cpp diff --git a/src/utils/cpp/evio_print_contents_draft.cpp b/src/utils/cpp/evio_print_contents_draft.cpp deleted file mode 100644 index 7ab3d491..00000000 --- a/src/utils/cpp/evio_print_contents_draft.cpp +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include - -#include "eviocc.h" // EVIO C++ API all inside - -// Use the EVIO namespace for convenience -using namespace evio; - -// TODO: add max_events as command line argument, test for V6 as well -// TODO: and also print more than uint32s - -int main(int argc, char* argv[]) { - if (argc < 2) { - std::cerr << "Usage: " << argv[0] << " " << std::endl; - return 1; - } - std::string filename = argv[1]; - - int maxEvents = 10; // Maximum number of events to read - - try { - // Open the EVIO6 file using EvioReader - EvioReader reader(filename); - - // Check for an embedded XML dictionary - if (reader.hasDictionaryXML()) { - // Retrieve the raw XML dictionary text - std::string xmlDict = reader.getDictionaryXML(); - // Print the XML dictionary to standard output - std::cout << xmlDict; - if (!xmlDict.empty() && xmlDict.back() != '\n') std::cout << std::endl; // ensure a newline at end, if not already present - } else { - // No dictionary present in the file - std::cout << "No XML dictionary found." << std::endl; - } - - std::cout << "EVIO Ver: " << reader.getEvioVersion() << std::endl; - std::cout << "File Size: " << reader.fileSize() << std::endl; - std::cout << "Has first event?: " << reader.hasFirstEvent() << std::endl; - std::cout << "Getting event count... this may take a while for large files " << std::endl; - std::cout << "Event count: " << reader.getEventCount() << std::endl; - - for (uint32_t i = 1; i < reader.getEventCount(); i++) { - if(i+1 >= maxEvents) { - std::cout << "Reached maximum number of events to read: " << maxEvents << std::endl; - break; - } - std::shared_ptr ev = reader.parseEvent(i+1); - std::cout << " got & parsed ev " << (i+1) << std::endl; - std::cout << " event ->\n" << ev->toString() << std::endl; - auto& dataVec = ev->getRawBytes(); - std::cout << "Event has tag = " << ev->getHeader()->getTag() << std::endl; - std::cout << "Event structure type = " << ev->getStructureType().toString() << std::endl; - std::vector< std::shared_ptr< BaseStructure > > & children = ev->getChildren(); - std::cout << "Event has " << children.size() << " children" << std::endl; - std::shared_ptr< BaseStructure > child1; - if(children.size()>0) child1 = children[0]; - for (size_t j = 0; j < children.size(); j++) { - std::cout << "Child " << j << " tag = " << children[j]->getStructureType().toString() << std::endl; - std::cout << "NChildren: " << children[j]->getChildCount() << std::endl; - - for (size_t k = 0; k < children[j]->getChildCount(); k++) { - std::cout << "Child " << j << ", subchild " << k << " " << children[j]->getChildAt(k)->getStructureType().toString() << std::endl; - std::cout << "Subchild " << k << " datatype: " << children[j]->getChildAt(k)->getHeader()->getDataType().toString() << std::endl; - std::cout << "nsubchildren: " << children[j]->getChildAt(k)->getChildCount() << std::endl; - std::cout << "num items stored: " << children[j]->getChildAt(k)->getNumberDataItems() << std::endl; - if(children[j]->getChildAt(k)->getHeader()->getDataType() == DataType::UINT32) { - std::cout << "Data: "; - std::vector< uint32_t > data_uint_vec = children[j]->getChildAt(k)->getUIntData(); - for (size_t l = 0; l < data_uint_vec.size(); l++) { - std::cout << data_uint_vec[l] << " "; - } - std::cout << std::endl; - } - } - std::cout << std::endl; - } - std::cout << "End of event" << std::endl << std::endl; - - // Util::printBytes(dataVec.data(), dataVec.size()," Event #" + std::to_string(i+1)); - } - - - - - } catch (const std::exception& e) { - std::cerr << "Error: Unable to read EVIO file. " << e.what() << std::endl; - return 1; - } - - return 0; -}