diff --git a/src/database/CMakeLists.txt b/src/database/CMakeLists.txt index c7a66b2..fbf1ae5 100644 --- a/src/database/CMakeLists.txt +++ b/src/database/CMakeLists.txt @@ -1,141 +1,142 @@ # The database # ============ # database libraries # ------------------ add_custom_target(database_incl SOURCES config_database.hpp species/ionic_parameters.hpp species/component_list.hpp species/aqueous_list.hpp section_name.hpp database_holder.hpp errors.hpp module.hpp database_fwd.hpp ) set(DATABASE_LIBFILE species/species.cpp species/base_wrapper.cpp species/mineral_list.cpp species/gas_list.cpp species/sorbed_list.cpp species/compounds_list.cpp species/element_list.cpp data_container.cpp module.cpp database.cpp reader_common.cpp yaml_reader.cpp selector.cpp appender.cpp mineral_selector.cpp aqueous_selector.cpp oxydo_selector.cpp switch_basis.cpp yaml_writer.cpp unknown_class.cpp io/configuration.cpp ) if (HDF5_FOUND) list(APPEND DATABASE_LIBFILE io/hdf5_database.cpp ) - include_directories(HDF5_C_INCLUDE_DIR HDF5_CXX_INCLUDE_DIR) + include_directories(${HDF5_C_INCLUDE_DIR}) + include_directories(${HDF5_CXX_INCLUDE_DIR}) set_source_files_properties( io/hdf5_database.cpp PROPERTIES COMPILE_DEFINITIONS HDF5_DEFINITIONS ) endif() set_visibility_flag(${DATABASE_LIBFILE}) set_pgo_flag(${DATABASE_LIBFILE}) #set_property(SOURCE ${DATABASE_LIBFILE} APPEND PROPERTY COMPILE_FLAGS -fvisibility-inlines-hidden) add_library(objspecmicp_database OBJECT ${DATABASE_LIBFILE}) set_property(TARGET objspecmicp_database PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(specmicp_database SHARED $) install(TARGETS specmicp_database LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR} ) # export includes # ---------------- set(DATABASE_SPECIES_INCLUDE_LIST species/species.hpp species/base_wrapper.hpp species/ionic_parameters.hpp species/component_list.hpp species/aqueous_list.hpp species/mineral_list.hpp species/gas_list.hpp species/sorbed_list.hpp species/compounds_list.hpp species/element_list.hpp ) set(DATABASE_INCLUDE_LIST errors.hpp module.hpp data_container.hpp database.hpp selector.hpp appender.hpp mineral_selector.hpp aqueous_selector.hpp oxydo_selector.hpp switch_basis.hpp unknown_class.hpp database_holder.hpp database_fwd.hpp ) install(FILES ${DATABASE_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/database/ ) install(FILES ${DATABASE_SPECIES_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/database/species/ ) install(FILES io/configuration.hpp DESTINATION ${INCLUDE_INSTALL_DIR}/database/io/ ) # static libraries # ---------------- if(SPECMICP_BUILD_STATIC) add_library(specmicp_database_static STATIC $) install(TARGETS specmicp_database_static ARCHIVE DESTINATION ${STATIC_LIBRARY_INSTALL_DIR} ) else() add_library(specmicp_database_static EXCLUDE_FROM_ALL STATIC $) endif() set_target_properties(specmicp_database_static PROPERTIES OUTPUT_NAME specmicp_database) add_dependencies(specmicp_database_static database_incl) diff --git a/src/dfpm/CMakeLists.txt b/src/dfpm/CMakeLists.txt index ca65c76..8d918f1 100644 --- a/src/dfpm/CMakeLists.txt +++ b/src/dfpm/CMakeLists.txt @@ -1,92 +1,93 @@ # DFPM # ======== add_custom_target(dfpm_incl SOURCES types.hpp 1dtransport/diffusion_parameters.hpp mesh.hpp meshes/mesh1dfwd.hpp meshes/mesh1d.hpp meshes/uniform_mesh1d.hpp meshes/generic_mesh1d.hpp meshes/axisymmetric_uniform_mesh1d.hpp meshes/axisymmetric_mesh1d.hpp ) set(DFPMLIB io/meshes.cpp io/configuration.cpp meshes/axisymmetric_mesh1d.cpp meshes/generic_mesh1d.cpp 1dtransport/diffusion.cpp ) # hdf5 # ---- if (HDF5_FOUND) list(APPEND DFPMLIB io/hdf5_mesh.cpp ) - include_directories(HDF5_C_INCLUDE_DIR HDF5_CXX_INCLUDE_DIR) + include_directories(${HDF5_C_INCLUDE_DIR}) + include_directories(${HDF5_CXX_INCLUDE_DIR}) set_source_files_properties( io/hdf5_mesh.cpp PROPERTIES COMPILE_DEFINITIONS HDF5_DEFINITIONS ) endif() set_visibility_flag(${DFPMLIB}) set_pgo_flag(${DFPMLIB}) add_library(dfpm SHARED ${DFPMLIB}) target_link_libraries(dfpm specmicp_common) install(TARGETS dfpm LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR} ) # includes # -------- set(DFPM_MESH_INCLUDE_LIST meshes/mesh1dfwd.hpp meshes/mesh1d.hpp meshes/uniform_mesh1d.hpp meshes/generic_mesh1d.hpp meshes/axisymmetric_uniform_mesh1d.hpp meshes/axisymmetric_mesh1d.hpp ) install(FILES types.hpp mesh.hpp DESTINATION ${INCLUDE_INSTALL_DIR}/dfpm ) install(FILES 1dtransport/diffusion_parameters.hpp 1dtransport/diffusion.hpp DESTINATION ${INCLUDE_INSTALL_DIR}/dfpm/1dtransport ) install(FILES io/meshes.hpp io/configuration.hpp DESTINATION ${INCLUDE_INSTALL_DIR}/dfpm/io ) install(FILES ${DFPM_MESH_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/dfpm/meshes ) # static libraries # ---------------- if(SPECMICP_BUILD_STATIC) add_library(dfpm_static STATIC ${DFPMLIB}) install(TARGETS dfpm_static ARCHIVE DESTINATION ${STATIC_LIBRARY_INSTALL_DIR} ) else() add_library(dfpm_static EXCLUDE_FROM_ALL STATIC ${DFPMLIB}) endif() set_target_properties(dfpm_static PROPERTIES OUTPUT_NAME dfpm) target_link_libraries(dfpm_static specmicp_common_static) diff --git a/src/reactmicp/CMakeLists.txt b/src/reactmicp/CMakeLists.txt index 621ee4e..dc67cb8 100644 --- a/src/reactmicp/CMakeLists.txt +++ b/src/reactmicp/CMakeLists.txt @@ -1,190 +1,191 @@ # ReactMiCP # ============= set(REACTMICP_SOLVER_DIR solver) set(REACTMICP_SYSTEMS_DIR systems) set(REACTMICP_EQUILIBRIUMCURVE equilibrium_curve) set(REACTMICP_IO io) add_custom_target(reactmicp_incl SOURCES ${REACTMICP_SOLVER_DIR}/reactive_transport_solver_structs.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/variables_base.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/transport_stagger_base.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/chemistry_stagger_base.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/upscaling_stagger_base.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/stagger_structs.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/decl.inl ${REACTMICP_SOLVER_DIR}/staggers_base/staggers_base.hpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/variablesfwd.hpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/types_fwd.hpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/variables_sub.hpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/variables_box.hpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/transport_constraints.hpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/fv_1dof_equation.hpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/fv_1dof_equation.inl ) set(REACTMICP_LIBFILES ${REACTMICP_EQUILIBRIUMCURVE}/chemistry.cpp ${REACTMICP_EQUILIBRIUMCURVE}/eqcurve_extractor.cpp ${REACTMICP_EQUILIBRIUMCURVE}/eqcurve_coupler.cpp ${REACTMICP_EQUILIBRIUMCURVE}/eqcurve_solid_transport.cpp # Flexible reactive transport solver # ---------------------------------- ${REACTMICP_SOLVER_DIR}/reactive_transport_solver.cpp ${REACTMICP_SOLVER_DIR}/timestepper.cpp ${REACTMICP_SOLVER_DIR}/runner.cpp # ${REACTMICP_SYSTEMS_DIR}/saturated_react/variables.cpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/transport_program.cpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/transport_stagger.cpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/equilibrium_stagger.cpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/kinetic_stagger.cpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/react_solver.cpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/init_variables.cpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/diffusive_upscaling_stagger.cpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/variables.cpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/saturation_equation.cpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/saturation_pressure_equation.cpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/pressure_equation.cpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/aqueous_equation.cpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/transport_stagger.cpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/equilibrium_stagger.cpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/variables_interface.cpp ${REACTMICP_SYSTEMS_DIR}/unsaturated/equilibrium_constraints.cpp ${REACTMICP_IO}/reactive_transport.cpp ${REACTMICP_IO}/saturated_react.cpp ${REACTMICP_IO}/configuration.cpp ) # hdf5 # ----- if (HDF5_FOUND) list(APPEND REACTMICP_LIBFILES ${REACTMICP_IO}/hdf5_unsaturated.cpp) - include_directories(HDF5_C_INCLUDE_DIR HDF5_CXX_INCLUDE_DIR) + include_directories(${HDF5_C_INCLUDE_DIR}) + include_directories(${HDF5_CXX_INCLUDE_DIR}) set_source_files_properties( ${REACTMICP_IO}/hdf5_unsaturated.cpp PROPERTIES COMPILE_DEFINITIONS HDF5_DEFINITIONS ) endif() set_visibility_flag(${REACTMICP_LIBFILES}) set_pgo_flag(${REACTMICP_LIBFILES}) if(OPENMP_FOUND) if(SPECMICP_USE_OPENMP) set_source_files_properties(${REACTMICP_SYSTEMS_DIR}/saturated_react/equilibrium_stagger.cpp PROPERTIES COMPILE_DEFINITIONS "SPECMICP_USE_OPENMP" ) set_source_files_properties(${REACTMICP_SYSTEMS_DIR}/saturated_react/kinetic_stagger.cpp PROPERTIES COMPILE_DEFINITIONS "SPECMICP_USE_OPENMP" ) set_source_files_properties(${REACTMICP_SYSTEMS_DIR}/unsaturated/transport_stagger.cpp PROPERTIES COMPILE_DEFINITIONS "SPECMICP_USE_OPENMP" ) set_source_files_properties(${REACTMICP_SYSTEMS_DIR}/unsaturated/equilibrium_stagger.cpp PROPERTIES COMPILE_DEFINITIONS "SPECMICP_USE_OPENMP" ) endif() endif() add_library(objreactmicp OBJECT ${REACTMICP_LIBFILES}) set_property(TARGET objreactmicp PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(reactmicp SHARED $) target_link_libraries(reactmicp dfpm) install(TARGETS reactmicp LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR} ) # include files # ------------- set(REACTMICP_STAGGERBASE_INCLUDE_LIST ${REACTMICP_SOLVER_DIR}/staggers_base/variables_base.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/transport_stagger_base.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/chemistry_stagger_base.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/upscaling_stagger_base.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/stagger_structs.hpp ${REACTMICP_SOLVER_DIR}/staggers_base/decl.inl ${REACTMICP_SOLVER_DIR}/staggers_base/staggers_base.hpp ) set(REACTMICP_SOLVER_INCLUDE_LIST ${REACTMICP_SOLVER_DIR}/reactive_transport_solver_structs.hpp ${REACTMICP_SOLVER_DIR}/reactive_transport_solver.hpp ${REACTMICP_SOLVER_DIR}/timestepper.hpp ${REACTMICP_SOLVER_DIR}/runner.hpp ) set(REACTMICP_SATURATEDREACT_INCLUDE_LIST ${REACTMICP_SYSTEMS_DIR}/saturated_react/variablesfwd.hpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/variables.hpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/transport_program.hpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/transport_stagger.hpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/equilibrium_stagger.hpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/kinetic_stagger.hpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/react_solver.hpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/init_variables.hpp ${REACTMICP_SYSTEMS_DIR}/saturated_react/diffusive_upscaling_stagger.hpp ) set(REACTMICP_EQUILIBRIUMCURVE_INCLUDE_LIST ${REACTMICP_EQUILIBRIUMCURVE}/chemistry.cpp ${REACTMICP_EQUILIBRIUMCURVE}/eqcurve_extractor.cpp ${REACTMICP_EQUILIBRIUMCURVE}/eqcurve_coupler.cpp ${REACTMICP_EQUILIBRIUMCURVE}/eqcurve_solid_transport.cpp ) set(REACTMICP_IO_INCLUDE_LIST io/reactive_transport.hpp io/saturated_react.hpp io/configuration.hpp ) install(FILES ${REACTMICP_STAGGERBASE_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/reactmicp/solver/staggers_base ) install(FILES ${REACTMICP_SOLVER_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/reactmicp/solver ) install(FILES ${REACTMICP_SATURATEDREACT_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/reactmicp/systems/saturated_react ) install(FILES ${REACTMICP_EQUILIBRIUMCURVE_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/reactmicp/equilibrium_curve ) install(FILES ${REACTMICP_IO_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/reactmicp/io ) # static libraries # ---------------- if(SPECMICP_BUILD_STATIC) add_library(reactmicp_static STATIC $) install(TARGETS reactmicp_static ARCHIVE DESTINATION ${STATIC_LIBRARY_INSTALL_DIR} ) else() add_library(reactmicp_static EXCLUDE_FROM_ALL STATIC $) endif() set_target_properties(reactmicp_static PROPERTIES OUTPUT_NAME reactmicp) target_link_libraries(reactmicp_static dfpm_static) diff --git a/src/specmicp/CMakeLists.txt b/src/specmicp/CMakeLists.txt index 93fae3e..fa3d5a1 100644 --- a/src/specmicp/CMakeLists.txt +++ b/src/specmicp/CMakeLists.txt @@ -1,143 +1,144 @@ # The speciation solver # ===================== # Directories set(ADIMENSIONAL_DIR adimensional) set(ADIMKINETICS_DIR adimensional_kinetics) set(PROBLEM_SOLVER_DIR problem_solver) set(IO_DIR io) # Headers file without a source file add_custom_target(specmicp_incl SOURCES ${ADIMENSIONAL_DIR}/adimensional_system_structs.hpp ${ADIMENSIONAL_DIR}/adimensional_system_solution.hpp ${ADIMENSIONAL_DIR}/adimensional_system_numbering.hpp ${ADIMENSIONAL_DIR}/adimensional_system_pcfm_structs.hpp ${ADIMENSIONAL_DIR}/config_solution_output_format.h ${ADIMENSIONAL_DIR}/config_default_options_solver.h ${PROBLEM_SOLVER_DIR}/formulation.hpp ${ADIMKINETICS_DIR}/kinetic_model.hpp ${ADIMKINETICS_DIR}/kinetic_variables.hpp ${ADIMKINETICS_DIR}/kinetic_system_solver_structs.hpp ) # Source for the library set(SPECMICP_LIBFILE ${ADIMENSIONAL_DIR}/adimensional_system.cpp ${ADIMENSIONAL_DIR}/adimensional_system_solver.cpp ${ADIMENSIONAL_DIR}/adimensional_system_solver_structs.cpp ${ADIMENSIONAL_DIR}/adimensional_system_solution_extractor.cpp ${ADIMENSIONAL_DIR}/adimensional_system_solution_saver.cpp ${ADIMENSIONAL_DIR}/adimensional_system_pcfm.cpp ${ADIMENSIONAL_DIR}/equilibrium_curve.cpp ${PROBLEM_SOLVER_DIR}/dissolver.cpp ${IO_DIR}/configuration.cpp ${IO_DIR}/print.cpp # kinetic ${ADIMKINETICS_DIR}/kinetic_system.cpp ${ADIMKINETICS_DIR}/kinetic_system_solver.cpp ${ADIMKINETICS_DIR}/kinetic_system_euler_solver.cpp ) if (HDF5_FOUND) list(APPEND SPECMICP_LIBFILE ${IO_DIR}/hdf5_adimensional.cpp ) - include_directories(HDF5_C_INCLUDE_DIR HDF5_CXX_INCLUDE_DIR) + include_directories(${HDF5_C_INCLUDE_DIR}) + include_directories(${HDF5_CXX_INCLUDE_DIR}) set_source_files_properties( ${IO_DIR}/hdf5_adimensional.cpp PROPERTIES COMPILE_DEFINITIONS HDF5_DEFINITIONS ) endif() set_visibility_flag(${SPECMICP_LIBFILE}) set_pgo_flag(${SPECMICP_LIBFILE}) if(SPECMICP_DEBUG_EQUATION_FD_JACOBIAN) set_source_files_properties(${ADIMENSIONAL_DIR}/adimensional_system.cpp PROPERTIES COMPILE_DEFINITIONS "SPECMICP_DEBUG_EQUATION_FD_JACOBIAN" ) endif() add_library(specmicp SHARED ${SPECMICP_LIBFILE}) install(TARGETS specmicp LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR} ) # include files # -------------- set(SPECMICP_ADIMENSIONAL_INCLUDES ${ADIMENSIONAL_DIR}/adimensional_system_structs.hpp ${ADIMENSIONAL_DIR}/adimensional_system_solution.hpp ${ADIMENSIONAL_DIR}/adimensional_system_solution_saver.hpp ${ADIMENSIONAL_DIR}/adimensional_system_solver_structs.hpp ${ADIMENSIONAL_DIR}/adimensional_system_numbering.hpp ${ADIMENSIONAL_DIR}/adimensional_system_pcfm_structs.hpp ${ADIMENSIONAL_DIR}/adimensional_system.hpp ${ADIMENSIONAL_DIR}/adimensional_system_solver.hpp ${ADIMENSIONAL_DIR}/adimensional_system_solution_extractor.hpp ${ADIMENSIONAL_DIR}/adimensional_system_pcfm.hpp ${ADIMENSIONAL_DIR}/equilibrium_curve.hpp ) set(SPECMICP_PROBLEM_SOLVER_INCLUDES ${PROBLEM_SOLVER_DIR}/dissolver.hpp ${PROBLEM_SOLVER_DIR}/formulation.hpp ) set(SPECMICP_ADIMENSIONAL_KINETICS_INCLUDES ${ADIMKINETICS_DIR}/kinetic_model.hpp ${ADIMKINETICS_DIR}/kinetic_variables.hpp ${ADIMKINETICS_DIR}/kinetic_system_solver_structs.hpp ${ADIMKINETICS_DIR}/kinetic_system.hpp ${ADIMKINETICS_DIR}/kinetic_system_solver.hpp ${ADIMKINETICS_DIR}/kinetic_system_euler_solver.hpp ) set(SPECMICP_IO_INCLUDES ${IO_DIR}/configuration.hpp ${IO_DIR}/print.hpp ) install(FILES ${SPECMICP_ADIMENSIONAL_INCLUDES} DESTINATION ${INCLUDE_INSTALL_DIR}/specmicp/adimensional ) install(FILES ${SPECMICP_PROBLEM_SOLVER_INCLUDES} DESTINATION ${INCLUDE_INSTALL_DIR}/specmicp/problem_solver ) install(FILES ${SPECMICP_ADIMENSIONAL_KINETICS_INCLUDES} DESTINATION ${INCLUDE_INSTALL_DIR}/specmicp/adimensional_kinetics ) install(FILES ${SPECMICP_IO_INCLUDES} DESTINATION ${INCLUDE_INSTALL_DIR}/specmicp/io ) # static libraries # ---------------- if(SPECMICP_BUILD_STATIC) add_library(specmicp_static STATIC ${SPECMICP_LIBFILE}) install(TARGETS specmicp_static ARCHIVE DESTINATION ${STATIC_LIBRARY_INSTALL_DIR} ) else() add_library(specmicp_static EXCLUDE_FROM_ALL STATIC ${SPECMICP_LIBFILE}) endif() set_target_properties(specmicp_static PROPERTIES OUTPUT_NAME specmicp) diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index d49e26b..03f9af1 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -1,127 +1,128 @@ # headers only module # ------------------- add_custom_target(utils_inc SOURCES #log.hpp # sparse solvers # -------------- sparse_solvers/sparse_solver_base.hpp sparse_solvers/sparse_solver.hpp sparse_solvers/sparse_solver_structs.hpp sparse_solvers/sparse_qr.hpp sparse_solvers/sparse_lu.hpp sparse_solvers/sparse_bicgstab.hpp sparse_solvers/sparse_gmres.hpp options_handler.hpp perfs_handler.hpp compat.hpp value_checker.hpp ) set(SPECMICP_COMMON_LIBRARY_FILES log.cpp dateandtime.cpp timer.cpp moving_average.cpp ../physics/laws.cpp ../physics/units.cpp ../physics/io/units.cpp io/format.cpp io/csv_formatter.cpp io/yaml.cpp ) # hdf5 # ----- if (HDF5_FOUND) list(APPEND SPECMICP_COMMON_LIBRARY_FILES io/specmicp_hdf5.cpp ) - include_directories(HDF5_INCLUDE_DIRS) + include_directories(${HDF5_C_INCLUDE_DIR}) + include_directories(${HDF5_CXX_INCLUDE_DIR}) set_source_files_properties(io/specmicp_hdf5.cpp PROPERTIES COMPILE_DEFINITIONS HDF5_DEFINITIONS) add_custom_target(utils_io_hdf5_inc SOURCES io/hdf5_eigen.hpp io/hdf5_eigen.inl ) endif() set_pgo_flag(${SPECMICP_COMMON_LIBRARY_FILES}) add_library(objspecmicp_common OBJECT ${SPECMICP_COMMON_LIBRARY_FILES}) set_property(TARGET objspecmicp_common PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(specmicp_common SHARED $) if (HDF5_FOUND) target_link_libraries(specmicp_common ${HDF5_LIBRARIES}) endif() install(TARGETS specmicp_common LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR} ) set(UTILS_INCLUDE_LIST log.hpp options_handler.hpp perfs_handler.hpp moving_average.hpp timer.hpp dateandtime.hpp compat.hpp ) set(UTILS_SPARSE_INCLUDE_LIST # sparse solvers # -------------- sparse_solvers/sparse_solver.hpp sparse_solvers/sparse_solver_base.hpp sparse_solvers/sparse_solver_structs.hpp sparse_solvers/sparse_qr.hpp sparse_solvers/sparse_lu.hpp sparse_solvers/sparse_bicgstab.hpp sparse_solvers/sparse_gmres.hpp ) set(UTILS_IO_INCLUDE_LIST io/format.hpp io/csv_formatter.hpp io/yaml.hpp ) install(FILES ${UTILS_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/utils ) install(FILES ${UTILS_SPARSE_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/utils/sparse_solvers ) install(FILES ${UTILS_IO_INCLUDE_LIST} DESTINATION ${INCLUDE_INSTALL_DIR}/utils/io ) # static libraries # ---------------- if(SPECMICP_BUILD_STATIC) add_library(specmicp_common_static STATIC $) install(TARGETS specmicp_common_static ARCHIVE DESTINATION ${STATIC_LIBRARY_INSTALL_DIR} ) else() add_library(specmicp_common_static EXCLUDE_FROM_ALL STATIC $) endif() set_target_properties(specmicp_common_static PROPERTIES OUTPUT_NAME specmicp_common) if (HDF5_FOUND) target_link_libraries(specmicp_common_static ${HDF5_LIBRARIES}) endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f683a33..03693c6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,81 +1,82 @@ ################## Tests ######################################## include(CatchTest) set(PROJECT_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${PROJECT_TEST_DIR}) add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) # make check is also valid # Catch test #=========== #common set( COMMON_TEST_DIR common ) set(SPECMICP_COMMON_TEST_FILES ${COMMON_TEST_DIR}/test_common.cpp ${COMMON_TEST_DIR}/units.cpp ${COMMON_TEST_DIR}/laws.cpp ${COMMON_TEST_DIR}/misc.cpp ${COMMON_TEST_DIR}/value_checker.cpp ${COMMON_TEST_DIR}/sparse_solvers.cpp ) if (HDF5_FOUND) list(APPEND SPECMICP_COMMON_TEST_FILES ${COMMON_TEST_DIR}/hdf5_eigen.cpp ) - include_directories(HDF5_C_INCLUDE_DIR HDF5_CXX_INCLUDE_DIR) + include_directories(${HDF5_C_INCLUDE_DIR}) + include_directories(${HDF5_CXX_INCLUDE_DIR}) set_source_files_properties(${COMMON_TEST_DIR}/hdf5_eigen.cpp PROPERTIES COMPILE_DEFINITIONS HDF5_DEFINITIONS) endif() add_catch_test(NAME common SOURCES ${SPECMICP_COMMON_TEST_FILES} LINK_LIBRARIES specmicp_common_static ) # MiCPSolver # ---------- set(MICPSOLVER_TEST_DIR micpsolver) add_catch_test(NAME micpsolver SOURCES ${MICPSOLVER_TEST_DIR}/test_micpsolver.cpp ${MICPSOLVER_TEST_DIR}/condition_number.cpp ${MICPSOLVER_TEST_DIR}/ncp_functions.cpp ${MICPSOLVER_TEST_DIR}/micpsolver.cpp LINK_LIBRARIES specmicp_common_static ) # ODEInt # ---------- set(ODEINT_TEST_DIR odeint) add_catch_test(NAME odeint SOURCES ${ODEINT_TEST_DIR}/test_odeint.cpp ${ODEINT_TEST_DIR}/butchertableau.cpp ${ODEINT_TEST_DIR}/embeddedrungekutta.cpp ) # Database # -------- add_subdirectory(database) # Specmicp # -------- add_subdirectory( specmicp ) # Reactmicp # --------- add_subdirectory( reactmicp ) diff --git a/tests/database/CMakeLists.txt b/tests/database/CMakeLists.txt index 3bc3e35..c89c3ec 100644 --- a/tests/database/CMakeLists.txt +++ b/tests/database/CMakeLists.txt @@ -1,57 +1,58 @@ # test for the database # ===================== # databases used in the tests add_custom_target(test_database_inc SOURCES str_database.hpp db_test.yaml ) file(COPY db_test.yaml DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) # basic set of test # ----------------- set(test_specmicp_database_files test_database.cpp database_species.cpp database_reader.cpp database_selector.cpp database_switch.cpp database_cemdata.cpp database_appender.cpp database_writer.cpp database_configuration.cpp database_unknown.cpp ) # test the cemdata database => need the path set(TEST_CEMDATA_PATH \"../../data/cemdata.yaml\") set(TEST_MOMAS_PATH \"../../data/momas_benchmark.yaml\") set_source_files_properties( database_cemdata.cpp PROPERTIES COMPILE_DEFINITIONS "TEST_CEMDATA_PATH=${TEST_CEMDATA_PATH};TEST_MOMAS_PATH=${TEST_MOMAS_PATH}" ) # hdf5 test # --------- if (HDF5_FOUND) list(APPEND test_specmicp_database_files io_hdf5_database.cpp ) - include_directories(HDF5_C_INCLUDE_DIR HDF5_CXX_INCLUDE_DIR) + include_directories(${HDF5_C_INCLUDE_DIR}) + include_directories(${HDF5_CXX_INCLUDE_DIR}) set_source_files_properties( adim/io_hdf5_database.cpp PROPERTIES COMPILE_DEFINITIONS HDF5_DEFINITIONS ) endif() # The test # -------- add_catch_test(NAME database SOURCES ${test_specmicp_database_files} LINK_LIBRARIES specmicp_database_static specmicp_common_static ${YAML_LIBRARIES} ) diff --git a/tests/reactmicp/CMakeLists.txt b/tests/reactmicp/CMakeLists.txt index 69bb8c1..516ba46 100644 --- a/tests/reactmicp/CMakeLists.txt +++ b/tests/reactmicp/CMakeLists.txt @@ -1,90 +1,91 @@ # Mesh # ---- set(test_meshes_files meshes/test_meshes.cpp meshes/test_uniform_mesh_1d.cpp meshes/test_generic1d.cpp meshes/test_axisymmetric_uniform_mesh_1d.cpp meshes/test_configuration.cpp ) # hdf5 if (HDF5_FOUND) list(APPEND test_meshes_files meshes/io_hdf5_meshes.cpp ) - include_directories(HDF5_C_INCLUDE_DIR HDF5_CXX_INCLUDE_DIR) + include_directories(${HDF5_C_INCLUDE_DIR}) + include_directories(${HDF5_CXX_INCLUDE_DIR}) set_source_files_properties( meshes/io_hdf5_meshes.cpp PROPERTIES COMPILE_DEFINITIONS HDF5_DEFINITIONS ) endif() add_catch_test(NAME meshes SOURCES "${test_meshes_files}" LINK_LIBRARIES dfpm_static specmicp_common_static ${YAML_LIBRARIES}) FILE(COPY meshes/unif_mesh.yaml meshes/ramp_mesh.yaml meshes/unif_axisym.yaml DESTINATION ${CMAKE_CURRENT_BINARY_DIR} ) # Reactmicp : Reactive transport solver # ------------------------------------- set(test_reactmicp_files solver/test_reactive_transport_solver.cpp solver/test_coupling.cpp ) add_catch_test(NAME reactmicp SOURCES ${test_reactmicp_files} LINK_LIBRARIES ${REACTMICP_STATIC_LIBS}) # Saturated diffusion using new reactive transport solver # ------------------------------------------------------- set(test_reactmicp_saturated_files systems/saturated_react/test_reactmicp_saturated_react.cpp systems/saturated_react/speciation_system.cpp systems/saturated_react/variables.cpp systems/saturated_react/transport_program.cpp systems/saturated_react/equilibrium_stagger.cpp ) add_catch_test( NAME reactmicp_saturated_react SOURCES ${test_reactmicp_saturated_files} LINK_LIBRARIES ${REACTMICP_STATIC_LIBS} ) # Unsaturated reactive transport system # ------------------------------------- set(UNSATURATED_DIR systems/unsaturated) set(test_reactmicp_unsaturated_files ${UNSATURATED_DIR}/test_reactmicp_unsaturated.cpp ${UNSATURATED_DIR}/variables.cpp ${UNSATURATED_DIR}/saturation_equation.cpp ${UNSATURATED_DIR}/saturation_pressure_equation.cpp ${UNSATURATED_DIR}/pressure_equation.cpp ${UNSATURATED_DIR}/aqueous_equation.cpp ${UNSATURATED_DIR}/transport_stagger.cpp ${UNSATURATED_DIR}/equilibrium_stagger.cpp ) set(TEST_CEMDATA_PATH \"../../data/cemdata.yaml\") set_source_files_properties( ${test_reactmicp_unsaturated_files} PROPERTIES COMPILE_DEFINITIONS "TEST_CEMDATA_PATH=${TEST_CEMDATA_PATH}" ) add_catch_test( NAME reactmicp_unsaturated SOURCES ${test_reactmicp_unsaturated_files} LINK_LIBRARIES ${REACTMICP_STATIC_LIBS} ) diff --git a/tests/specmicp/CMakeLists.txt b/tests/specmicp/CMakeLists.txt index 7376c95..51695be 100644 --- a/tests/specmicp/CMakeLists.txt +++ b/tests/specmicp/CMakeLists.txt @@ -1,74 +1,75 @@ # Specmicp : Adim system # ---------------------- set(test_specmicp_adim_files adim/test_specmicp_adim.cpp adim/adimensional_system.cpp adim/adimensional_system_solver.cpp adim/adimensional_system_conditions.cpp adim/adimensional_system_problem_solver.cpp adim/adimensional_system_water_pressure.cpp adim/adimensional_system_thermocarbo.cpp adim/adimensional_system_carboalu.cpp adim/adimensional_system_pcfm.cpp adim/adimensional_system_oxydoreduc.cpp adim/adimensional_system_configuration.cpp ) if (HDF5_FOUND) list(APPEND test_specmicp_adim_files adim/io_hdf5_adimensional.cpp ) - include_directories(HDF5_C_INCLUDE_DIR HDF5_CXX_INCLUDE_DIR) + include_directories(${HDF5_C_INCLUDE_DIR}) + include_directories(${HDF5_CXX_INCLUDE_DIR}) set_source_files_properties( adim/io_hdf5_adimensional.cpp PROPERTIES COMPILE_DEFINITIONS HDF5_DEFINITIONS ) endif() set(TEST_CEMDATA_PATH \"../../data/cemdata.yaml\") set_source_files_properties(${test_specmicp_adim_files} PROPERTIES COMPILE_DEFINITIONS "TEST_CEMDATA_PATH=${TEST_CEMDATA_PATH}" ) add_catch_test(NAME specmicp_adim SOURCES ${test_specmicp_adim_files} LINK_LIBRARIES ${SPECMICP_STATIC_LIBS} ) file(COPY adim/specmicp_conf_test.yaml DESTINATION ${CMAKE_CURRENT_BINARY_DIR} ) # Specmicp : Adim Kinetics # ------------------------ set(ADIMKINETICS_TEST_DIR ${PROJECT_TEST_DIR}/specmicp/adim_kinetics) set(test_specmicp_adim_kinetics_files ${ADIMKINETICS_TEST_DIR}/test_specmicp_adim_kinetics.cpp ${ADIMKINETICS_TEST_DIR}/kinetics_variables.cpp ${ADIMKINETICS_TEST_DIR}/set_mineral_kinetic.cpp ) set_source_files_properties(${test_specmicp_adim_kinetics_files} PROPERTIES COMPILE_DEFINITIONS "TEST_CEMDATA_PATH=${TEST_CEMDATA_PATH}" ) add_catch_test(NAME specmicp_adim_kinetics SOURCES ${test_specmicp_adim_kinetics_files} LINK_LIBRARIES ${SPECMICP_STATIC_LIBS} ) # Specmicp : Binary # ----------------- add_subdirectory( binary )