forked from openPMD/openPMD-api
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
97 changed files
with
79,676 additions
and
0 deletions.
There are no files selected for viewing
17,976 changes: 17,976 additions & 0 deletions
17,976
share/openPMD/thirdParty/catch2/include/catch2/catch.hpp
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,164 @@ | ||
cmake_minimum_required(VERSION 3.5) | ||
|
||
## | ||
## PROJECT | ||
## name and version | ||
## | ||
project(nlohmann_json VERSION 3.9.1 LANGUAGES CXX) | ||
|
||
## | ||
## INCLUDE | ||
## | ||
## | ||
include(ExternalProject) | ||
|
||
## | ||
## OPTIONS | ||
## | ||
|
||
if (POLICY CMP0077) | ||
# Allow CMake 3.13+ to override options when using FetchContent / add_subdirectory. | ||
cmake_policy(SET CMP0077 NEW) | ||
endif () | ||
|
||
option(JSON_BuildTests "Build the unit tests when BUILD_TESTING is enabled." ON) | ||
option(JSON_Install "Install CMake targets during install step." ON) | ||
option(JSON_MultipleHeaders "Use non-amalgamated version of the library." OFF) | ||
option(JSON_ImplicitConversions "Enable implicit conversions." ON) | ||
|
||
## | ||
## CONFIGURATION | ||
## | ||
include(GNUInstallDirs) | ||
|
||
set(NLOHMANN_JSON_TARGET_NAME ${PROJECT_NAME}) | ||
set(NLOHMANN_JSON_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" CACHE INTERNAL "") | ||
set(NLOHMANN_JSON_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}") | ||
set(NLOHMANN_JSON_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") | ||
set(NLOHMANN_JSON_CMAKE_CONFIG_TEMPLATE "cmake/config.cmake.in") | ||
set(NLOHMANN_JSON_CMAKE_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}") | ||
set(NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE "${NLOHMANN_JSON_CMAKE_CONFIG_DIR}/${PROJECT_NAME}ConfigVersion.cmake") | ||
set(NLOHMANN_JSON_CMAKE_PROJECT_CONFIG_FILE "${NLOHMANN_JSON_CMAKE_CONFIG_DIR}/${PROJECT_NAME}Config.cmake") | ||
set(NLOHMANN_JSON_CMAKE_PROJECT_TARGETS_FILE "${NLOHMANN_JSON_CMAKE_CONFIG_DIR}/${PROJECT_NAME}Targets.cmake") | ||
set(NLOHMANN_JSON_PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig") | ||
|
||
if (JSON_MultipleHeaders) | ||
set(NLOHMANN_JSON_INCLUDE_BUILD_DIR "${PROJECT_SOURCE_DIR}/include/") | ||
message(STATUS "Using the multi-header code from ${NLOHMANN_JSON_INCLUDE_BUILD_DIR}") | ||
else() | ||
set(NLOHMANN_JSON_INCLUDE_BUILD_DIR "${PROJECT_SOURCE_DIR}/single_include/") | ||
message(STATUS "Using the single-header code from ${NLOHMANN_JSON_INCLUDE_BUILD_DIR}") | ||
endif() | ||
|
||
if (NOT JSON_ImplicitConversions) | ||
message(STATUS "Implicit conversions are disabled") | ||
endif() | ||
|
||
## | ||
## TARGET | ||
## create target and add include path | ||
## | ||
add_library(${NLOHMANN_JSON_TARGET_NAME} INTERFACE) | ||
add_library(${PROJECT_NAME}::${NLOHMANN_JSON_TARGET_NAME} ALIAS ${NLOHMANN_JSON_TARGET_NAME}) | ||
if (${CMAKE_VERSION} VERSION_LESS "3.8.0") | ||
target_compile_features(${NLOHMANN_JSON_TARGET_NAME} INTERFACE cxx_range_for) | ||
else() | ||
target_compile_features(${NLOHMANN_JSON_TARGET_NAME} INTERFACE cxx_std_11) | ||
endif() | ||
|
||
target_compile_definitions( | ||
${NLOHMANN_JSON_TARGET_NAME} | ||
INTERFACE | ||
JSON_USE_IMPLICIT_CONVERSIONS=$<BOOL:${JSON_ImplicitConversions}> | ||
) | ||
|
||
target_include_directories( | ||
${NLOHMANN_JSON_TARGET_NAME} | ||
INTERFACE | ||
$<BUILD_INTERFACE:${NLOHMANN_JSON_INCLUDE_BUILD_DIR}> | ||
$<INSTALL_INTERFACE:include> | ||
) | ||
|
||
## add debug view definition file for msvc (natvis) | ||
if (MSVC) | ||
set(NLOHMANN_ADD_NATVIS TRUE) | ||
set(NLOHMANN_NATVIS_FILE "nlohmann_json.natvis") | ||
target_sources( | ||
${NLOHMANN_JSON_TARGET_NAME} | ||
INTERFACE | ||
$<INSTALL_INTERFACE:${NLOHMANN_NATVIS_FILE}> | ||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/${NLOHMANN_NATVIS_FILE}> | ||
) | ||
endif() | ||
|
||
# Install a pkg-config file, so other tools can find this. | ||
CONFIGURE_FILE( | ||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkg-config.pc.in" | ||
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" | ||
) | ||
|
||
## | ||
## TESTS | ||
## create and configure the unit test target | ||
## | ||
include(CTest) #adds option BUILD_TESTING (default ON) | ||
|
||
if(BUILD_TESTING AND JSON_BuildTests) | ||
enable_testing() | ||
add_subdirectory(test) | ||
endif() | ||
|
||
## | ||
## INSTALL | ||
## install header files, generate and install cmake config files for find_package() | ||
## | ||
include(CMakePackageConfigHelpers) | ||
# use a custom package version config file instead of | ||
# write_basic_package_version_file to ensure that it's architecture-independent | ||
# https://github.com/nlohmann/json/issues/1697 | ||
configure_file( | ||
"cmake/nlohmann_jsonConfigVersion.cmake.in" | ||
${NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE} | ||
@ONLY | ||
) | ||
configure_file( | ||
${NLOHMANN_JSON_CMAKE_CONFIG_TEMPLATE} | ||
${NLOHMANN_JSON_CMAKE_PROJECT_CONFIG_FILE} | ||
@ONLY | ||
) | ||
|
||
if(JSON_Install) | ||
install( | ||
DIRECTORY ${NLOHMANN_JSON_INCLUDE_BUILD_DIR} | ||
DESTINATION ${NLOHMANN_JSON_INCLUDE_INSTALL_DIR} | ||
) | ||
install( | ||
FILES ${NLOHMANN_JSON_CMAKE_PROJECT_CONFIG_FILE} ${NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE} | ||
DESTINATION ${NLOHMANN_JSON_CONFIG_INSTALL_DIR} | ||
) | ||
if (NLOHMANN_ADD_NATVIS) | ||
install( | ||
FILES ${NLOHMANN_NATVIS_FILE} | ||
DESTINATION . | ||
) | ||
endif() | ||
export( | ||
TARGETS ${NLOHMANN_JSON_TARGET_NAME} | ||
NAMESPACE ${PROJECT_NAME}:: | ||
FILE ${NLOHMANN_JSON_CMAKE_PROJECT_TARGETS_FILE} | ||
) | ||
install( | ||
TARGETS ${NLOHMANN_JSON_TARGET_NAME} | ||
EXPORT ${NLOHMANN_JSON_TARGETS_EXPORT_NAME} | ||
INCLUDES DESTINATION ${NLOHMANN_JSON_INCLUDE_INSTALL_DIR} | ||
) | ||
install( | ||
EXPORT ${NLOHMANN_JSON_TARGETS_EXPORT_NAME} | ||
NAMESPACE ${PROJECT_NAME}:: | ||
DESTINATION ${NLOHMANN_JSON_CONFIG_INSTALL_DIR} | ||
) | ||
install( | ||
FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" | ||
DESTINATION ${NLOHMANN_JSON_PKGCONFIG_INSTALL_DIR} | ||
) | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2013-2020 Niels Lohmann | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
include(FindPackageHandleStandardArgs) | ||
set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG ${CMAKE_CURRENT_LIST_FILE}) | ||
find_package_handle_standard_args(@PROJECT_NAME@ CONFIG_MODE) | ||
|
||
if(NOT TARGET @PROJECT_NAME@::@NLOHMANN_JSON_TARGET_NAME@) | ||
include("${CMAKE_CURRENT_LIST_DIR}/@NLOHMANN_JSON_TARGETS_EXPORT_NAME@.cmake") | ||
if((NOT TARGET @NLOHMANN_JSON_TARGET_NAME@) AND | ||
(NOT @PROJECT_NAME@_FIND_VERSION OR | ||
@PROJECT_NAME@_FIND_VERSION VERSION_LESS 3.2.0)) | ||
add_library(@NLOHMANN_JSON_TARGET_NAME@ INTERFACE IMPORTED) | ||
set_target_properties(@NLOHMANN_JSON_TARGET_NAME@ PROPERTIES | ||
INTERFACE_LINK_LIBRARIES @PROJECT_NAME@::@NLOHMANN_JSON_TARGET_NAME@ | ||
) | ||
endif() | ||
endif() |
56 changes: 56 additions & 0 deletions
56
share/openPMD/thirdParty/json/cmake/download_test_data.cmake
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
set(JSON_TEST_DATA_URL https://github.com/nlohmann/json_test_data) | ||
set(JSON_TEST_DATA_VERSION 3.0.0) | ||
|
||
# if variable is set, use test data from given directory rather than downloading them | ||
if(JSON_TestDataDirectory) | ||
message(STATUS "Using test data in ${JSON_TestDataDirectory}.") | ||
add_custom_target(download_test_data) | ||
file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTORY \"${JSON_TestDataDirectory}\"\n") | ||
else() | ||
find_package(Git) | ||
# target to download test data | ||
add_custom_target(download_test_data | ||
COMMAND test -d json_test_data || ${GIT_EXECUTABLE} clone -c advice.detachedHead=false --branch v${JSON_TEST_DATA_VERSION} ${JSON_TEST_DATA_URL}.git --quiet --depth 1 | ||
COMMENT "Downloading test data from ${JSON_TEST_DATA_URL} (v${JSON_TEST_DATA_VERSION})" | ||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | ||
) | ||
# create a header with the path to the downloaded test data | ||
file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTORY \"${CMAKE_BINARY_DIR}/json_test_data\"\n") | ||
endif() | ||
|
||
# determine the operating system (for debug and support purposes) | ||
find_program(UNAME_COMMAND uname) | ||
find_program(VER_COMMAND ver) | ||
find_program(LSB_RELEASE_COMMAND lsb_release) | ||
find_program(SW_VERS_COMMAND sw_vers) | ||
set(OS_VERSION_STRINGS "${CMAKE_SYSTEM}") | ||
if (VER_COMMAND) | ||
execute_process(COMMAND ${VER_COMMAND} OUTPUT_VARIABLE VER_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) | ||
set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${VER_COMMAND_RESULT}") | ||
endif() | ||
if (SW_VERS_COMMAND) | ||
execute_process(COMMAND ${SW_VERS_COMMAND} OUTPUT_VARIABLE SW_VERS_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) | ||
string(REGEX REPLACE "[ ]*\n" "; " SW_VERS_COMMAND_RESULT "${SW_VERS_COMMAND_RESULT}") | ||
set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${SW_VERS_COMMAND_RESULT}") | ||
endif() | ||
if (LSB_RELEASE_COMMAND) | ||
execute_process(COMMAND ${LSB_RELEASE_COMMAND} -a OUTPUT_VARIABLE LSB_RELEASE_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) | ||
string(REGEX REPLACE "[ ]*\n" "; " LSB_RELEASE_COMMAND_RESULT "${LSB_RELEASE_COMMAND_RESULT}") | ||
set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${LSB_RELEASE_COMMAND_RESULT}") | ||
endif() | ||
if (UNAME_COMMAND) | ||
execute_process(COMMAND ${UNAME_COMMAND} -a OUTPUT_VARIABLE UNAME_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) | ||
set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${UNAME_COMMAND_RESULT}") | ||
endif() | ||
|
||
message(STATUS "Operating system: ${OS_VERSION_STRINGS}") | ||
|
||
# determine the compiler (for debug and support purposes) | ||
if (MSVC) | ||
execute_process(COMMAND ${CMAKE_CXX_COMPILER} OUTPUT_VARIABLE CXX_VERSION_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE CXX_VERSION_RESULT ERROR_STRIP_TRAILING_WHITESPACE) | ||
set(CMAKE_CXX_COMPILER "${CXX_VERSION_RESULT}; MSVC_VERSION=${MSVC_VERSION}; MSVC_TOOLSET_VERSION=${MSVC_TOOLSET_VERSION}") | ||
else() | ||
execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE CXX_VERSION_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) | ||
endif() | ||
string(REGEX REPLACE "[ ]*\n" "; " CXX_VERSION_RESULT "${CXX_VERSION_RESULT}") | ||
message(STATUS "Compiler: ${CXX_VERSION_RESULT}") |
20 changes: 20 additions & 0 deletions
20
share/openPMD/thirdParty/json/cmake/nlohmann_jsonConfigVersion.cmake.in
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# This is essentially cmake's BasicConfigVersion-SameMajorVersion.cmake.in but | ||
# without the 32/64-bit check. Since json is a header-only library, it doesn't | ||
# matter if it was built on a different platform than what it is used on (see | ||
# https://github.com/nlohmann/json/issues/1697). | ||
set(PACKAGE_VERSION "@PROJECT_VERSION@") | ||
|
||
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) | ||
set(PACKAGE_VERSION_COMPATIBLE FALSE) | ||
else() | ||
|
||
if(PACKAGE_FIND_VERSION_MAJOR STREQUAL "@PROJECT_VERSION_MAJOR@") | ||
set(PACKAGE_VERSION_COMPATIBLE TRUE) | ||
else() | ||
set(PACKAGE_VERSION_COMPATIBLE FALSE) | ||
endif() | ||
|
||
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) | ||
set(PACKAGE_VERSION_EXACT TRUE) | ||
endif() | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Name: ${PROJECT_NAME} | ||
Description: JSON for Modern C++ | ||
Version: ${PROJECT_VERSION} | ||
Cflags: -I${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> | ||
<Type Name="nlohmann::basic_json<*>"> | ||
<DisplayString Condition="m_type == nlohmann::detail::value_t::null">null</DisplayString> | ||
<DisplayString Condition="m_type == nlohmann::detail::value_t::object">{*(m_value.object)}</DisplayString> | ||
<DisplayString Condition="m_type == nlohmann::detail::value_t::array">{*(m_value.array)}</DisplayString> | ||
<DisplayString Condition="m_type == nlohmann::detail::value_t::string">{*(m_value.string)}</DisplayString> | ||
<DisplayString Condition="m_type == nlohmann::detail::value_t::boolean">{m_value.boolean}</DisplayString> | ||
<DisplayString Condition="m_type == nlohmann::detail::value_t::number_integer">{m_value.number_integer}</DisplayString> | ||
<DisplayString Condition="m_type == nlohmann::detail::value_t::number_unsigned">{m_value.number_unsigned}</DisplayString> | ||
<DisplayString Condition="m_type == nlohmann::detail::value_t::number_float">{m_value.number_float}</DisplayString> | ||
<DisplayString Condition="m_type == nlohmann::detail::value_t::discarded">discarded</DisplayString> | ||
<Expand> | ||
<ExpandedItem Condition="m_type == nlohmann::detail::value_t::object"> | ||
*(m_value.object),view(simple) | ||
</ExpandedItem> | ||
<ExpandedItem Condition="m_type == nlohmann::detail::value_t::array"> | ||
*(m_value.array),view(simple) | ||
</ExpandedItem> | ||
</Expand> | ||
</Type> | ||
|
||
<!-- skip the pair first/second members in the treeview while traversing a map. | ||
Only works in VS 2015 Update 2 and beyond using the new visualization --> | ||
<Type Name="std::pair<*, nlohmann::basic_json<*>>" IncludeView="MapHelper"> | ||
<DisplayString>{second}</DisplayString> | ||
<Expand> | ||
<ExpandedItem>second</ExpandedItem> | ||
</Expand> | ||
</Type> | ||
|
||
</AutoVisualizer> |
Oops, something went wrong.