test: standalone public headers tests added
This commit is contained in:
1 parent
464b4467ee
commit
d18bf2229a
20 files changed
+476
-37
No files matched your search
+1
-1
@@ -20,7 +20,7 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
project(mp-units VERSION 0.8.0 LANGUAGES CXX)
|
||||
|
||||
set(projectPrefix UNITS_)
|
||||
|
||||
@@ -20,14 +20,48 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
function(validate_unparsed module prefix)
|
||||
if(${prefix}_UNPARSED_ARGUMENTS)
|
||||
message(FATAL_ERROR "Invalid arguments '${${prefix}_UNPARSED_ARGUMENTS}' "
|
||||
"for module '${module}'")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(validate_argument_exists module prefix arg)
|
||||
if(NOT ${prefix}_${arg})
|
||||
message(FATAL_ERROR "'${arg}' not provided for module '${module}'")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(validate_arguments_exists module prefix)
|
||||
foreach(arg ${ARGN})
|
||||
validate_argument_exists(${module} ${prefix} ${arg})
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
#
|
||||
# add_units_module(ModuleName <depependencies>...)
|
||||
# add_units_module(ModuleName
|
||||
# DEPENDENCIES <depependency>...
|
||||
# HEADERS <header_file>...)
|
||||
#
|
||||
function(add_units_module name)
|
||||
add_library(mp-units-${name} INTERFACE)
|
||||
target_link_libraries(mp-units-${name} INTERFACE ${ARGN})
|
||||
# parse arguments
|
||||
set(multiValues DEPENDENCIES HEADERS)
|
||||
cmake_parse_arguments(
|
||||
PARSE_ARGV 1
|
||||
ARG
|
||||
"" "" "${multiValues}"
|
||||
)
|
||||
|
||||
# validate and process arguments
|
||||
validate_unparsed(${name} ARG)
|
||||
validate_arguments_exists(${name} ARG DEPENDENCIES HEADERS)
|
||||
|
||||
# define the target for a module
|
||||
add_library(mp-units-${name} INTERFACE ${ARG_HEADERS})
|
||||
target_link_libraries(mp-units-${name} INTERFACE ${ARG_DEPENDENCIES})
|
||||
target_include_directories(
|
||||
mp-units-${name} ${unitsAsSystem} INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
|
||||
@@ -20,12 +20,17 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
option(${projectPrefix}USE_LIBFMT "Enables usage of libfmt instead of the one from 'std'" ON)
|
||||
message(STATUS "${projectPrefix}USE_LIBFMT: ${${projectPrefix}USE_LIBFMT}")
|
||||
|
||||
add_units_module(core-fmt mp-units::core)
|
||||
add_units_module(core-fmt
|
||||
DEPENDENCIES
|
||||
mp-units::core
|
||||
HEADERS
|
||||
include/units/format.h
|
||||
)
|
||||
target_compile_definitions(mp-units-core-fmt INTERFACE ${projectPrefix}USE_LIBFMT=$<BOOL:${${projectPrefix}USE_LIBFMT}>)
|
||||
|
||||
if(${projectPrefix}USE_LIBFMT)
|
||||
|
||||
@@ -20,6 +20,11 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(core-io mp-units::core)
|
||||
add_units_module(core-io
|
||||
DEPENDENCIES
|
||||
mp-units::core
|
||||
HEADERS
|
||||
include/units/quantity_io.h
|
||||
)
|
||||
+26
-2
@@ -20,7 +20,7 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
# core library options
|
||||
set(${projectPrefix}DOWNCAST_MODE ON CACHE STRING "Select downcasting mode")
|
||||
@@ -34,7 +34,31 @@ include(CheckLibcxxInUse)
|
||||
check_libcxx_in_use(${projectPrefix}LIBCXX)
|
||||
|
||||
# core library definition
|
||||
add_library(mp-units-core INTERFACE)
|
||||
add_library(mp-units-core INTERFACE
|
||||
include/units/base_dimension.h
|
||||
include/units/chrono.h
|
||||
include/units/concepts.h
|
||||
include/units/customization_points.h
|
||||
include/units/derived_dimension.h
|
||||
include/units/exponent.h
|
||||
include/units/generic/angle.h
|
||||
include/units/generic/dimensionless.h
|
||||
include/units/kind.h
|
||||
include/units/magnitude.h
|
||||
include/units/math.h
|
||||
include/units/point_origin.h
|
||||
include/units/prefix.h
|
||||
include/units/quantity.h
|
||||
include/units/quantity_cast.h
|
||||
include/units/quantity_kind.h
|
||||
include/units/quantity_point.h
|
||||
include/units/quantity_point_kind.h
|
||||
include/units/random.h
|
||||
include/units/ratio.h
|
||||
include/units/reference.h
|
||||
include/units/symbol_text.h
|
||||
include/units/unit.h
|
||||
)
|
||||
target_compile_features(mp-units-core INTERFACE cxx_std_20)
|
||||
target_link_libraries(mp-units-core INTERFACE gsl::gsl-lite)
|
||||
target_include_directories(
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
# systems
|
||||
add_subdirectory(isq)
|
||||
|
||||
@@ -20,6 +20,16 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(isq-iec80000 mp-units::si)
|
||||
add_units_module(isq-iec80000
|
||||
DEPENDENCIES
|
||||
mp-units::si
|
||||
HEADERS
|
||||
include/units/isq/iec80000/binary_prefixes.h
|
||||
include/units/isq/iec80000/iec80000.h
|
||||
include/units/isq/iec80000/modulation_rate.h
|
||||
include/units/isq/iec80000/storage_capacity.h
|
||||
include/units/isq/iec80000/traffic_intensity.h
|
||||
include/units/isq/iec80000/transfer_rate.h
|
||||
)
|
||||
@@ -20,6 +20,21 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(isq-natural mp-units::isq)
|
||||
add_units_module(isq-natural
|
||||
DEPENDENCIES
|
||||
mp-units::isq
|
||||
HEADERS
|
||||
include/units/isq/natural/acceleration.h
|
||||
include/units/isq/natural/constants.h
|
||||
include/units/isq/natural/energy.h
|
||||
include/units/isq/natural/force.h
|
||||
include/units/isq/natural/length.h
|
||||
include/units/isq/natural/mass.h
|
||||
include/units/isq/natural/momentum.h
|
||||
include/units/isq/natural/natural.h
|
||||
include/units/isq/natural/speed.h
|
||||
include/units/isq/natural/time.h
|
||||
include/units/isq/natural/units.h
|
||||
)
|
||||
@@ -20,6 +20,55 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(isq mp-units::core)
|
||||
add_units_module(isq
|
||||
DEPENDENCIES
|
||||
mp-units::core
|
||||
HEADERS
|
||||
include/units/isq/dimensions/absorbed_dose.h
|
||||
include/units/isq/dimensions/acceleration.h
|
||||
include/units/isq/dimensions/amount_of_substance.h
|
||||
include/units/isq/dimensions/angular_velocity.h
|
||||
include/units/isq/dimensions/area.h
|
||||
include/units/isq/dimensions/capacitance.h
|
||||
include/units/isq/dimensions/catalytic_activity.h
|
||||
include/units/isq/dimensions/charge_density.h
|
||||
include/units/isq/dimensions/concentration.h
|
||||
include/units/isq/dimensions/conductance.h
|
||||
include/units/isq/dimensions/current_density.h
|
||||
include/units/isq/dimensions/density.h
|
||||
include/units/isq/dimensions/dynamic_viscosity.h
|
||||
include/units/isq/dimensions/electric_charge.h
|
||||
include/units/isq/dimensions/electric_current.h
|
||||
include/units/isq/dimensions/electric_field_strength.h
|
||||
include/units/isq/dimensions/energy.h
|
||||
include/units/isq/dimensions/energy_density.h
|
||||
include/units/isq/dimensions/force.h
|
||||
include/units/isq/dimensions/frequency.h
|
||||
include/units/isq/dimensions/heat_capacity.h
|
||||
include/units/isq/dimensions/inductance.h
|
||||
include/units/isq/dimensions/length.h
|
||||
include/units/isq/dimensions/luminance.h
|
||||
include/units/isq/dimensions/luminous_intensity.h
|
||||
include/units/isq/dimensions/magnetic_flux.h
|
||||
include/units/isq/dimensions/magnetic_induction.h
|
||||
include/units/isq/dimensions/mass.h
|
||||
include/units/isq/dimensions/molar_energy.h
|
||||
include/units/isq/dimensions/momentum.h
|
||||
include/units/isq/dimensions/permeability.h
|
||||
include/units/isq/dimensions/permittivity.h
|
||||
include/units/isq/dimensions/power.h
|
||||
include/units/isq/dimensions/pressure.h
|
||||
include/units/isq/dimensions/radioactivity.h
|
||||
include/units/isq/dimensions/resistance.h
|
||||
include/units/isq/dimensions/speed.h
|
||||
include/units/isq/dimensions/surface_tension.h
|
||||
include/units/isq/dimensions/thermal_conductivity.h
|
||||
include/units/isq/dimensions/thermodynamic_temperature.h
|
||||
include/units/isq/dimensions/time.h
|
||||
include/units/isq/dimensions/torque.h
|
||||
include/units/isq/dimensions/voltage.h
|
||||
include/units/isq/dimensions/volume.h
|
||||
include/units/isq/dimensions.h
|
||||
)
|
||||
@@ -20,6 +20,21 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(si-cgs mp-units::si)
|
||||
add_units_module(si-cgs
|
||||
DEPENDENCIES
|
||||
mp-units::si
|
||||
HEADERS
|
||||
include/units/isq/si/cgs/acceleration.h
|
||||
include/units/isq/si/cgs/area.h
|
||||
include/units/isq/si/cgs/cgs.h
|
||||
include/units/isq/si/cgs/energy.h
|
||||
include/units/isq/si/cgs/force.h
|
||||
include/units/isq/si/cgs/length.h
|
||||
include/units/isq/si/cgs/mass.h
|
||||
include/units/isq/si/cgs/power.h
|
||||
include/units/isq/si/cgs/pressure.h
|
||||
include/units/isq/si/cgs/speed.h
|
||||
include/units/isq/si/cgs/time.h
|
||||
)
|
||||
@@ -20,6 +20,24 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(si-fps
|
||||
DEPENDENCIES
|
||||
mp-units::si
|
||||
HEADERS
|
||||
include/units/isq/si/fps/acceleration.h
|
||||
include/units/isq/si/fps/area.h
|
||||
include/units/isq/si/fps/density.h
|
||||
include/units/isq/si/fps/energy.h
|
||||
include/units/isq/si/fps/force.h
|
||||
include/units/isq/si/fps/fps.h
|
||||
include/units/isq/si/fps/length.h
|
||||
include/units/isq/si/fps/mass.h
|
||||
include/units/isq/si/fps/power.h
|
||||
include/units/isq/si/fps/pressure.h
|
||||
include/units/isq/si/fps/speed.h
|
||||
include/units/isq/si/fps/time.h
|
||||
include/units/isq/si/fps/volume.h
|
||||
)
|
||||
|
||||
add_units_module(si-fps mp-units::si)
|
||||
@@ -20,6 +20,15 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(si-hep mp-units::si)
|
||||
add_units_module(si-hep
|
||||
DEPENDENCIES
|
||||
mp-units::si
|
||||
HEADERS
|
||||
include/units/isq/si/hep/area.h
|
||||
include/units/isq/si/hep/energy.h
|
||||
include/units/isq/si/hep/hep.h
|
||||
include/units/isq/si/hep/mass.h
|
||||
include/units/isq/si/hep/momentum.h
|
||||
)
|
||||
@@ -20,6 +20,12 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(si-iau mp-units::si)
|
||||
add_units_module(si-iau
|
||||
DEPENDENCIES
|
||||
mp-units::si
|
||||
HEADERS
|
||||
include/units/isq/si/iau/iau.h
|
||||
include/units/isq/si/iau/length.h
|
||||
)
|
||||
@@ -20,6 +20,12 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(si-imperial mp-units::si)
|
||||
add_units_module(si-imperial
|
||||
DEPENDENCIES
|
||||
mp-units::si
|
||||
HEADERS
|
||||
include/units/isq/si/imperial/imperial.h
|
||||
include/units/isq/si/imperial/length.h
|
||||
)
|
||||
@@ -20,6 +20,16 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(si-international
|
||||
DEPENDENCIES
|
||||
mp-units::si
|
||||
HEADERS
|
||||
include/units/isq/si/international/area.h
|
||||
include/units/isq/si/international/international.h
|
||||
include/units/isq/si/international/length.h
|
||||
include/units/isq/si/international/speed.h
|
||||
include/units/isq/si/international/volume.h
|
||||
)
|
||||
|
||||
add_units_module(si-international mp-units::si)
|
||||
@@ -20,6 +20,13 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(si-typographic
|
||||
DEPENDENCIES
|
||||
mp-units::si
|
||||
HEADERS
|
||||
include/units/isq/si/typographic/length.h
|
||||
include/units/isq/si/typographic/typographic.h
|
||||
)
|
||||
|
||||
add_units_module(si-typographic mp-units::si)
|
||||
@@ -20,6 +20,13 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(si-uscs
|
||||
DEPENDENCIES
|
||||
mp-units::si
|
||||
HEADERS
|
||||
include/units/isq/si/uscs/length.h
|
||||
include/units/isq/si/uscs/uscs.h
|
||||
)
|
||||
|
||||
add_units_module(si-uscs mp-units::si)
|
||||
@@ -20,6 +20,57 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
add_units_module(si mp-units::isq)
|
||||
add_units_module(si
|
||||
DEPENDENCIES
|
||||
mp-units::isq
|
||||
HEADERS
|
||||
include/units/isq/si/absorbed_dose.h
|
||||
include/units/isq/si/acceleration.h
|
||||
include/units/isq/si/amount_of_substance.h
|
||||
include/units/isq/si/angular_velocity.h
|
||||
include/units/isq/si/area.h
|
||||
include/units/isq/si/capacitance.h
|
||||
include/units/isq/si/catalytic_activity.h
|
||||
include/units/isq/si/charge_density.h
|
||||
include/units/isq/si/concentration.h
|
||||
include/units/isq/si/conductance.h
|
||||
include/units/isq/si/constants.h
|
||||
include/units/isq/si/current_density.h
|
||||
include/units/isq/si/density.h
|
||||
include/units/isq/si/dynamic_viscosity.h
|
||||
include/units/isq/si/electric_charge.h
|
||||
include/units/isq/si/electric_current.h
|
||||
include/units/isq/si/electric_field_strength.h
|
||||
include/units/isq/si/energy.h
|
||||
include/units/isq/si/energy_density.h
|
||||
include/units/isq/si/force.h
|
||||
include/units/isq/si/frequency.h
|
||||
include/units/isq/si/heat_capacity.h
|
||||
include/units/isq/si/inductance.h
|
||||
include/units/isq/si/length.h
|
||||
include/units/isq/si/luminance.h
|
||||
include/units/isq/si/luminous_intensity.h
|
||||
include/units/isq/si/magnetic_flux.h
|
||||
include/units/isq/si/magnetic_induction.h
|
||||
include/units/isq/si/mass.h
|
||||
include/units/isq/si/molar_energy.h
|
||||
include/units/isq/si/momentum.h
|
||||
include/units/isq/si/permeability.h
|
||||
include/units/isq/si/permittivity.h
|
||||
include/units/isq/si/power.h
|
||||
include/units/isq/si/prefixes.h
|
||||
include/units/isq/si/pressure.h
|
||||
include/units/isq/si/radioactivity.h
|
||||
include/units/isq/si/resistance.h
|
||||
include/units/isq/si/si.h
|
||||
include/units/isq/si/speed.h
|
||||
include/units/isq/si/surface_tension.h
|
||||
include/units/isq/si/thermal_conductivity.h
|
||||
include/units/isq/si/thermodynamic_temperature.h
|
||||
include/units/isq/si/time.h
|
||||
include/units/isq/si/torque.h
|
||||
include/units/isq/si/voltage.h
|
||||
include/units/isq/si/volume.h
|
||||
)
|
||||
Reference in new issue
Block a user