diff --git a/.gitignore b/.gitignore index 3ff6576818..59f3cd1142 100755 --- a/.gitignore +++ b/.gitignore @@ -60,7 +60,6 @@ ScannerBit/CMakeLists.txt */include/gambit/*/*_rollcall.hpp Backends/include/gambit/Backends/backend_functor_types.hpp Elements/include/gambit/Elements/module_functor_types.hpp -Elements/include/gambit/Elements/elements_extras.hpp Models/src/particle_database.cpp ColliderBit/include/gambit/ColliderBit/colliders/Pythia8/Py8Collider_typedefs.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 71916a0696..3a9067a08b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -619,8 +619,6 @@ set(MODULE_HARVESTER_FILES ${MODULE_HARVESTER_FILES} ${BACKEND_HARVESTER_FILES}) remove_build_files(models_harvested backends_harvested modules_harvested printers_harvested colliders_harvested) if(EXISTS "${PROJECT_SOURCE_DIR}/Elements/") add_gambit_custom(module_harvest modules_harvested MODULE_HARVESTER MODULE_HARVESTER_FILES ${itch_with_commas}) - # Add the elements_extras target - add_elements_extras(elements_extras) endif() if(EXISTS "${PROJECT_SOURCE_DIR}/Backends/") add_gambit_custom(backend_harvest backends_harvested BACKEND_HARVESTER BACKEND_HARVESTER_FILES ${itch_with_commas}) @@ -661,7 +659,7 @@ add_subdirectory_if_present(Printers) # Lists of different GAMBIT object files to link set(GAMBIT_BASIC_COMMON_OBJECTS "${GAMBIT_BASIC_COMMON_OBJECTS}" $ $) -set(GAMBIT_ALL_COMMON_OBJECTS "${GAMBIT_BASIC_COMMON_OBJECTS}" $ $ $) +set(GAMBIT_ALL_COMMON_OBJECTS "${GAMBIT_BASIC_COMMON_OBJECTS}" $ $ $ $) # Set compilation targets for GAMBIT modules foreach(bit ${GAMBIT_BITS}) diff --git a/ColliderBit/examples/solo.cpp b/ColliderBit/examples/solo.cpp index eb803b95eb..1e43c0d9f2 100755 --- a/ColliderBit/examples/solo.cpp +++ b/ColliderBit/examples/solo.cpp @@ -188,6 +188,11 @@ int main(int argc, char* argv[]) logger().set_log_debug_messages(debug); initialise_standalone_logs("CBS_logs/"); logger()<<"Running CBS"<(-1, "seed"); diff --git a/DarkBit/examples/DarkBit_standalone_MSSM.cpp b/DarkBit/examples/DarkBit_standalone_MSSM.cpp index 731239f56b..e228e438da 100644 --- a/DarkBit/examples/DarkBit_standalone_MSSM.cpp +++ b/DarkBit/examples/DarkBit_standalone_MSSM.cpp @@ -130,6 +130,11 @@ int main(int argc, char* argv[]) initialise_standalone_logs("runs/DarkBit_standalone_MSSM/logs/"); logger()<<"Running DarkBit standalone example"< #include "gambit/Elements/gambit_module_headers.hpp" -#include "gambit/Elements/elements_extras.hpp" +#include "gambit/Printers/printer_utils.hpp" #include "gambit/DarkBit/DarkBit_rollcall.hpp" #include "gambit/DarkBit/DarkBit_utils.hpp" #include "gambit/Utils/util_functions.hpp" diff --git a/DecayBit/examples/3bithit.cpp b/DecayBit/examples/3bithit.cpp index daa34a39a6..6e9a9276c8 100644 --- a/DecayBit/examples/3bithit.cpp +++ b/DecayBit/examples/3bithit.cpp @@ -76,6 +76,11 @@ int main() std::map loggerinfo; loggerinfo["Default"] = "3bithit.log"; logger().initialise(loggerinfo); + + // Initialise settings for printer (required) + YAML::Node printerNode = get_standalone_printer("cout", "runs/3bithit/logs/",""); + Printers::PrinterManager printerManager(printerNode, false); + set_global_printer_manager(&printerManager); // Initialise the random number generator. Random::create_rng_engine("default"); diff --git a/Elements/include/gambit/Elements/module_macros_incore_defs.hpp b/Elements/include/gambit/Elements/module_macros_incore_defs.hpp index 83e7af568c..dee0c4bf91 100644 --- a/Elements/include/gambit/Elements/module_macros_incore_defs.hpp +++ b/Elements/include/gambit/Elements/module_macros_incore_defs.hpp @@ -67,7 +67,6 @@ #include "gambit/Elements/module_macros_common.hpp" #include "gambit/Elements/safety_bucket.hpp" #include "gambit/Elements/ini_functions.hpp" -#include "gambit/Elements/elements_extras.hpp" #include "gambit/Elements/terminator.hpp" #include "gambit/Utils/static_members.hpp" #include "gambit/Utils/exceptions.hpp" diff --git a/Elements/include/gambit/Elements/module_macros_inmodule_defs.hpp b/Elements/include/gambit/Elements/module_macros_inmodule_defs.hpp index 84ddc079e3..528de7d2af 100644 --- a/Elements/include/gambit/Elements/module_macros_inmodule_defs.hpp +++ b/Elements/include/gambit/Elements/module_macros_inmodule_defs.hpp @@ -40,7 +40,6 @@ #include "gambit/Elements/safety_bucket.hpp" #include "gambit/Elements/module_macros_common.hpp" #include "gambit/Utils/exceptions.hpp" -#include "gambit/Elements/elements_extras.hpp" #include "gambit/Utils/util_macros.hpp" #include "gambit/Models/safe_param_map.hpp" diff --git a/Elements/include/gambit/Elements/standalone_module.hpp b/Elements/include/gambit/Elements/standalone_module.hpp index 484cb5d4a1..a9521294aa 100644 --- a/Elements/include/gambit/Elements/standalone_module.hpp +++ b/Elements/include/gambit/Elements/standalone_module.hpp @@ -27,13 +27,12 @@ #include "gambit/Utils/static_members.hpp" #include "gambit/Utils/stream_overloads.hpp" #include "gambit/Elements/module_macros_incore.hpp" +#include "gambit/Printers/baseprinter.hpp" +#include "gambit/Printers/printermanager.hpp" using namespace Gambit; using std::cout; using std::endl; -/// This function fixes an issue for linking to suspicious points. It is not intented to be called anywhere. -void Suspicious() {Suspicious_point_exception().raise(".");} - #endif //__standalone_hpp__ diff --git a/Elements/scripts/elements_extras.py b/Elements/scripts/elements_extras.py deleted file mode 100644 index 1359fa61be..0000000000 --- a/Elements/scripts/elements_extras.py +++ /dev/null @@ -1,188 +0,0 @@ -#!/usr/bin/env python -# -# GAMBIT: Global and Modular BSM Inference Tool -#********************************************* -# \file -# -# Script to create files containing extra code -# that should be generated at build time. -# Usually to make sure the Printers are not used -# in the standalones. -# -# Generated files: -# Elements/elements_extras.hpp -# -#********************************************* -# -# Authors (add name and date if you modify): -# -# \author Christopher Chang -# (christopher.chang@uqconnect.edu.au) -# \date 2021 Feb -# -# \author Tomas Gonzalo -# (gonzalo@physik.rwth-aachen.de) -# \date 2021 Mar -# -#********************************************* - -import pickle,sys - -toolsfile="./Utils/scripts/harvesting_tools.py" -exec(compile(open(toolsfile, "rb").read(), toolsfile, 'exec')) # Python 2/3 compatible version of 'execfile' - -# Suspicious point exception, only using printers outside of standalones -def Suspicious_Points(isStandalone): - - contents = "\ - /// Gambit suspicious point exception class.\n\ - class Suspicious_point_exception\n\ - {\n\ -\n\ - public:\n\ -\n\ - /// Constructor\n\ - Suspicious_point_exception() {}\n\ -\n\ - /// Raise the suspicious point exception. Print it with a message and a code. The default code is 1.\n\ - void raise(const std::string &msg, int code=1, bool debug=false)\n\ - {\n" - - if not isStandalone: - contents += "\ - // get the printer pointer\n\ - Printers::BaseBasePrinter& printer = *(get_global_printer_manager()->printerptr);\n\ -\n\ - printer.print(code, \"Suspicious Point Code\", Printers::get_main_param_id(\"Suspicious Point Code\"), printer.getRank(), Printers::get_point_id());\n\ -\n" - contents += "\ - if (debug) std::cout << \"Point Suspicious (\" << code << \"): \" << msg << std::endl;\n\ - }\n\ -\n\ - };\n\ -\n" - - return(contents) - -# Postprocessor reader routines, only available outside of standalones -def pp_reader(isStandalone): - - contents = "\ - /// Postprocessor reader retrieve function\n" - if not isStandalone: - contents += "\ - template\n\ - bool pp_reader_retrieve(T& result, str dataset)\n\ - {\n\ - return get_pp_reader().retrieve(result, dataset);\n\ - }\n" - else: - contents += "\ - template\n\ - bool pp_reader_retrieve(T&, str)\n\ - {\n\ - invalid_point().raise(\"Reader not available in standalones.\");\n\ - return false;\n\ - }\n" - - return(contents) - - -# Main function -def main(argv): - - # Handle command line options - verbose = False - try: - opts, args = getopt.getopt(argv,"v:",["verbose"]) - - # Extract flag for standalone - target = args[0] - isStandalone = 1 if "standalone" in target or "CBS" in target else 0 - - except : - print('Usage: elements_extras.py [flags] ') - print(' flags:') - print(' -v : More verbose output') - sys.exit(2) - - for opt, arg in opts: - if opt in ('-v','--verbose'): - verbose = True - print('elements_extras.py: verbose=True') - - contents = "\ -// GAMBIT: Global and Modular BSM Inference Tool\n\ -// *********************************************\n\ -/// \\file\n\ -///\n\ -/// Compile-time generation of extra code in Elements\n\ -/// that uses the Printers. Required to avoid the use\n\ -/// of printers in the standalones.\n\ -///\n\ -/// Classes added:\n\ -/// - Suspicious point exception class.\n\ -///\n\ -/// This file was automatically generated by \n\ -/// elements_extras.py. Do not modify. \n\ -///\n\ -/// *********************************************\n\ -///\n\ -/// Authors:\n\ -///\n\ -/// \\author The GAMBIT Collaboration \n\ -/// \date "+datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")+"\n\ -///\n\ -/// *********************************************\n\ -\n\ -#ifndef __elements_extras_hpp__\n\ -#define __elements_extras_hpp__\n\ -\n\ -#include \n\ -#include \n\ -#include \n\ -#include \n\ -#include \n\ -#include \n\ -\n\ -#include \"gambit/Utils/util_macros.hpp\"\n\ -#include \"gambit/Logs/log_tags.hpp\"\n\ -\n" - - if not isStandalone: - contents += "\ -#include \"gambit/Printers/printermanager.hpp\"\n\ -#include \"gambit/Printers/baseprinter.hpp\"\n\ -\n" - - contents += "\ -namespace Gambit\n\ -{\n\ -\n" - - # Here add calls for all functions that generate code # - ######################################################## - - # Suspicious points, avoid using the printers when building standalones - if verbose: print("Writing suspicious points code") - contents += Suspicious_Points(isStandalone) - - # Postprocessor reader routines - if verbose: print("Writing postprocessor reader routines") - contents += pp_reader(isStandalone) - - contents += "\ -}\n\ -\n\ -#endif\n" - - - # Don't touch any existing file unless it is actually different from what we will create - header = "./Elements/include/gambit/Elements/elements_extras.hpp" - candidate = "./scratch/build_time/" + target + ".hpp.candidate" - with open(candidate,"w") as f: f.write(contents) - update_only_if_different(header, candidate, verbose=False) - - -if __name__ == "__main__": - main(sys.argv[1:]) diff --git a/ExampleBit_A/examples/ExampleBit_A_standalone_example.cpp b/ExampleBit_A/examples/ExampleBit_A_standalone_example.cpp index eb4985a65a..bc240945df 100644 --- a/ExampleBit_A/examples/ExampleBit_A_standalone_example.cpp +++ b/ExampleBit_A/examples/ExampleBit_A_standalone_example.cpp @@ -54,6 +54,14 @@ int main() //Initialise logging (just comment out if you want no logfiles) initialise_standalone_logs("runs/ExampleBit_A_standalone/logs/"); + // Initialise settings for printer (required) + YAML::Node printerNode = get_standalone_printer("hdf5", "runs/ExampleBit_A_standalone/samples/", "ExampleBit_A_standalone.hdf5"); + printerNode["options"]["group"] = "/ExampleBit_A"; + Printers::PrinterManager printerManager(printerNode, false); + set_global_printer_manager(&printerManager); + (printerManager.printerptr)->addToPrintList("Suspicious Point Code"); + (printerManager.printerptr)->set_output_metadata(false); + // Change the fatality of different errors and warnings from the defaults, if desired. model_warning().set_fatal(true); ExampleBit_A::ExampleBit_A_error().set_fatal(true); @@ -131,6 +139,10 @@ int main() std::cout << "Starting model scan..." << std::endl << std::endl; for (int i = 0; i<5; i++) { + // Print out some basic info for each point. + Gambit::Printers::get_point_id() = i; + (printerManager.printerptr)->print(0, "MPIrank", Printers::get_main_param_id("MPIrank"), (printerManager.printerptr)->getRank(), Printers::get_point_id()); + (printerManager.printerptr)->print(Printers::get_point_id(), "pointID", Printers::get_main_param_id("pointID"), (printerManager.printerptr)->getRank(), Printers::get_point_id()); try { @@ -169,6 +181,7 @@ int main() } + (printerManager.printerptr)->finalise(false); std::cout << "ExampleBit_A standalone example has finished successfully." << std::endl << std::endl; } diff --git a/FlavBit/examples/FlavBit_standalone_example.cpp b/FlavBit/examples/FlavBit_standalone_example.cpp index d9b55ba889..81f0983737 100644 --- a/FlavBit/examples/FlavBit_standalone_example.cpp +++ b/FlavBit/examples/FlavBit_standalone_example.cpp @@ -94,6 +94,11 @@ int main(int argc, char** argv) // Define where the logs will end up std::string prefix("runs/FlavBit_standalone/logs/"); + // Initialise settings for printer (required) + YAML::Node printerNode = get_standalone_printer("cout", "runs/FlavBit_standalone/logs/",""); + Printers::PrinterManager printerManager(printerNode, false); + set_global_printer_manager(&printerManager); + // Ensure that the above directory exists Utils::ensure_path_exists(prefix); diff --git a/Printers/include/gambit/Printers/baseprinter.hpp b/Printers/include/gambit/Printers/baseprinter.hpp index 6b6cda3f21..0cafe56f20 100644 --- a/Printers/include/gambit/Printers/baseprinter.hpp +++ b/Printers/include/gambit/Printers/baseprinter.hpp @@ -88,6 +88,7 @@ namespace Gambit private: BasePrinter* primary_printer; bool is_aux; + bool output_metadata; public: BasePrinter() @@ -119,6 +120,10 @@ namespace Gambit /// Set this as an auxilliary printer void set_as_aux() { is_aux = true; } + /// Set/Get whether to print the metadata + void set_output_metadata(bool use_metadata) {output_metadata = use_metadata;} + bool get_output_metadata() {return output_metadata;} + /// Helper initialisation for auxilliary printers /// Will be run when the auxilliary printer is /// created by a PrinterManager. diff --git a/Printers/include/gambit/Printers/printer_id_tools.hpp b/Printers/include/gambit/Printers/printer_id_tools.hpp index 4ffed25571..b9ccfed618 100644 --- a/Printers/include/gambit/Printers/printer_id_tools.hpp +++ b/Printers/include/gambit/Printers/printer_id_tools.hpp @@ -50,6 +50,7 @@ namespace Gambit /// Extra argument returns true if new ID was assigned EXPORT_SYMBOLS int get_aux_param_id(const std::string &, bool& is_new); } + } #endif diff --git a/Printers/include/gambit/Printers/printer_utils.hpp b/Printers/include/gambit/Printers/printer_utils.hpp new file mode 100644 index 0000000000..9103589020 --- /dev/null +++ b/Printers/include/gambit/Printers/printer_utils.hpp @@ -0,0 +1,41 @@ +// GAMBIT: Global and Modular BSM Inference Tool +// ********************************************* +/// \file +/// +/// Functions that require printing capabilities +/// that can be run from within module functions. +/// +/// Authors: +/// +/// \author Chris Chang +/// \date Dec 2023 +/// +/// ********************************************* + +#ifndef __printer_utils_hpp__ +#define __printer_utils_hpp__ + +#include +#include +#include +#include +#include +#include + +#include "gambit/Utils/util_macros.hpp" +#include "gambit/Logs/log_tags.hpp" +#include "gambit/Printers/baseprinter.hpp" +#include "gambit/Printers/printermanager.hpp" + +namespace Gambit +{ + + /// Postprocessor reader retrieve function + template + bool pp_reader_retrieve(T& result, str dataset) + { + return get_pp_reader().retrieve(result, dataset); + } +} + +#endif diff --git a/Printers/include/gambit/Printers/printermanager.hpp b/Printers/include/gambit/Printers/printermanager.hpp index 802c1b8b46..b922415602 100644 --- a/Printers/include/gambit/Printers/printermanager.hpp +++ b/Printers/include/gambit/Printers/printermanager.hpp @@ -103,6 +103,7 @@ namespace Gambit } + } #endif //__printermanager_hpp__ diff --git a/Printers/src/printermanager.cpp b/Printers/src/printermanager.cpp index 8eb5b93180..749920840e 100644 --- a/Printers/src/printermanager.cpp +++ b/Printers/src/printermanager.cpp @@ -69,6 +69,7 @@ namespace Gambit void set_global_printer_manager(Printers::PrinterManager* pm) { global_printer_manager = pm; + (pm->printerptr)->set_output_metadata(true);// Choose to print metadata (can be overuled elsewhere) } @@ -289,6 +290,7 @@ namespace Gambit } } + } #undef DBUG diff --git a/Printers/src/printers/asciiprinter/asciiprinter.cpp b/Printers/src/printers/asciiprinter/asciiprinter.cpp index 4539c8440e..34d3398d71 100644 --- a/Printers/src/printers/asciiprinter/asciiprinter.cpp +++ b/Printers/src/printers/asciiprinter/asciiprinter.cpp @@ -205,11 +205,14 @@ namespace Gambit AP_DBUG( std::cout << "Buffer (of asciiPrinter with name=\""<printerptr); + // printer.print(code, "Suspicious Point Code", Printers::get_main_param_id("Suspicious Point Code"), printer.getRank(), Printers::get_point_id()); + // + // if (debug) std::cout << "Point Suspicious (" << code << "): " << msg << std::endl; + // } + + }; } diff --git a/Utils/include/gambit/Utils/standalone_utils.hpp b/Utils/include/gambit/Utils/standalone_utils.hpp index 127b70b5c0..daca98230b 100644 --- a/Utils/include/gambit/Utils/standalone_utils.hpp +++ b/Utils/include/gambit/Utils/standalone_utils.hpp @@ -13,12 +13,16 @@ /// (patscott@physics.mcgill.ca) /// \date 2014 Feb /// +/// \author Chris Chang +/// \date 2023 Dec +/// /// ********************************************* #ifndef __standalone_utils_hpp__ #define __standalone_utils_hpp__ #include "gambit/Utils/util_functions.hpp" +#include "gambit/Utils/yaml_node_utility.hpp" namespace Gambit { @@ -26,6 +30,9 @@ namespace Gambit /// Logger setup standalone utility function void initialise_standalone_logs(str); + /// Initialise the printers (required for suspicious point raises) + YAML::Node get_standalone_printer(str, str, str); + } diff --git a/Utils/src/exceptions.cpp b/Utils/src/exceptions.cpp index 4881ff9546..ced9439100 100644 --- a/Utils/src/exceptions.cpp +++ b/Utils/src/exceptions.cpp @@ -27,6 +27,8 @@ #include "gambit/Utils/exceptions.hpp" #include "gambit/Utils/standalone_error_handlers.hpp" #include "gambit/Logs/logger.hpp" +#include "gambit/Printers/baseprinter.hpp" +#include "gambit/Printers/printermanager.hpp" namespace Gambit { @@ -623,6 +625,16 @@ namespace Gambit /// Global instance of Piped_exceptions class for warnings. Piped_exceptions piped_warnings(1000); + + /// Raise the suspicious point exception. Print it with a message and a code. The default code is 1. + void Suspicious_point_exception::raise(const std::string &msg, int code=1, bool debug=false) + { + // get the printer pointer + Printers::BasePrinter& printer = *(get_global_printer_manager()->printerptr); + printer.print(code, "Suspicious Point Code", Printers::get_main_param_id("Suspicious Point Code"), printer.getRank(), Printers::get_point_id()); + + if (debug) std::cout << "Point Suspicious (" << code << "): " << msg << std::endl; + } } diff --git a/Utils/src/standalone_utils.cpp b/Utils/src/standalone_utils.cpp index 334fb2c982..80e293099c 100644 --- a/Utils/src/standalone_utils.cpp +++ b/Utils/src/standalone_utils.cpp @@ -13,6 +13,9 @@ /// (patscott@physics.mcgill.ca) /// \date 2016 Jun /// +/// \author Chris Chang +/// \date 2023 Dec +/// /// ********************************************* #include "gambit/Utils/standalone_utils.hpp" @@ -41,4 +44,15 @@ namespace Gambit logger().initialise(loggerinfo); } + /// Initialise the printers (required for suspicious point raises) + YAML::Node get_standalone_printer(str printer, str prefix, str filename) + { + // Set the minimum required settings by the printer + YAML::Node printerNode; + printerNode["printer"] = printer; + printerNode["options"]["default_output_path"] = Utils::ensure_path_exists(prefix); + printerNode["options"]["output_file"] = filename; + return printerNode; + } + } diff --git a/cmake/cleaning.cmake b/cmake/cleaning.cmake index 88bca04cae..35f6b04255 100644 --- a/cmake/cleaning.cmake +++ b/cmake/cleaning.cmake @@ -52,7 +52,6 @@ set(clean_files ${clean_files} "${PROJECT_SOURCE_DIR}/Backends/include/gambit/Ba set(clean_files ${clean_files} "${PROJECT_SOURCE_DIR}/Core/include/gambit/Core/module_rollcall.hpp") set(clean_files ${clean_files} "${PROJECT_SOURCE_DIR}/Elements/include/gambit/Elements/module_types_rollcall.hpp") set(clean_files ${clean_files} "${PROJECT_SOURCE_DIR}/Elements/include/gambit/Elements/module_functor_types.hpp") -set(clean_files ${clean_files} "${PROJECT_SOURCE_DIR}/Elements/include/gambit/Elements/elements_extras.hpp") set(clean_files ${clean_files} "${PROJECT_SOURCE_DIR}/Printers/include/gambit/Printers/printer_rollcall.hpp") set(clean_files ${clean_files} "${PROJECT_SOURCE_DIR}/cmake/include/gambit/cmake/cmake_variables.hpp") set(clean_files ${clean_files} "${PROJECT_SOURCE_DIR}/ScannerBit/include/gambit/ScannerBit/priors_rollcall.hpp") diff --git a/cmake/executables.cmake b/cmake/executables.cmake index 8c5eb8d719..15f86c3408 100644 --- a/cmake/executables.cmake +++ b/cmake/executables.cmake @@ -24,7 +24,7 @@ # \date 2021 Mar # # \author Christopher Chang -# (christopher.chang@uqconnect.edu.au) +# (c.j.chang@fys.uio.no) # \date 2021 Feb # #************************************************ diff --git a/cmake/utilities.cmake b/cmake/utilities.cmake index 64ccc44028..2afc14750f 100644 --- a/cmake/utilities.cmake +++ b/cmake/utilities.cmake @@ -33,8 +33,9 @@ # \date 2018 Dec # # \author Christopher Chang -# (christopher.chang@uqconnect.edu.au) +# (c.j.chang@fys.uio.no) # \date 2021 Feb +# 2023 Dec # # \author Anders Kvellestad # (anders.kvellestad@fys.uio.no) @@ -78,13 +79,6 @@ function(check_result result command) endif() endfunction() -# Execute script to prevent printing problems with standalones -function(add_elements_extras target) - set(ELEMENTS_EXTRAS_SCRIPT ${PROJECT_SOURCE_DIR}/Elements/scripts/elements_extras.py) - add_custom_target(${target} COMMAND ${PYTHON_EXECUTABLE} ${ELEMENTS_EXTRAS_SCRIPT} ${target} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) -endfunction() - #Check if a string starts with a give substring function(starts_with str search) string(FIND "${str}" "${search}" out) @@ -222,7 +216,6 @@ function(add_gambit_library libraryname) add_dependencies(${libraryname} printer_harvest) add_dependencies(${libraryname} module_harvest) add_dependencies(${libraryname} yaml-cpp) - add_dependencies(${libraryname} elements_extras) if(${CMAKE_VERSION} VERSION_GREATER 2.8.10) foreach (dir ${GAMBIT_INCDIRS}) @@ -428,9 +421,6 @@ function(add_standalone executablename) endif() if(module STREQUAL "SpecBit") set(USES_SPECBIT TRUE) - # Temporarily add the printers module whenever SpecBit is present to avoid linking problems - set(COMMA_SEPARATED_MODULES "${COMMA_SEPARATED_MODULES},Printers") - set(STANDALONE_OBJECTS ${STANDALONE_OBJECTS} $) endif() if(module STREQUAL "ColliderBit") set(USES_COLLIDERBIT TRUE) @@ -493,11 +483,6 @@ function(add_standalone executablename) ${GAMBIT_ALL_COMMON_OBJECTS} HEADERS ${ARG_HEADERS}) - # Add the elements_extras target - add_elements_extras(${executablename}_elements_extras) - add_dependencies(${executablename}_elements_extras elements_extras) - add_dependencies(${executablename} ${executablename}_elements_extras) - # Add each of the declared dependencies foreach(dep ${ARG_DEPENDENCIES}) add_dependencies(${executablename} ${dep}) @@ -599,6 +584,7 @@ function(add_standalone_tarballs modules version) COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/${module} ${dirname}/${module} COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Logs ${dirname}/Logs COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Utils ${dirname}/Utils + COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Printers ${dirname}/Printers COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Models ${dirname}/Models COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Elements ${dirname}/Elements COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Backends ${dirname}/Backends @@ -624,6 +610,7 @@ function(add_standalone_tarballs modules version) COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/PrecisionBit ${dirname}/PrecisionBit COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Logs ${dirname}/Logs COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Utils ${dirname}/Utils + COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Printers ${dirname}/Printers COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Models ${dirname}/Models COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Elements ${dirname}/Elements COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/Backends ${dirname}/Backends