Skip to content

Commit

Permalink
update "nitro" and "coda-oss" (#370)
Browse files Browse the repository at this point in the history
* update "nitro" and "coda-oss"

* Delete CMakeSettings.json

* changeFileHeader() doesn't (yet) work in "externals"
  • Loading branch information
J. Daniel Smith authored Nov 9, 2020
1 parent 5c4bfb6 commit 3c07e72
Show file tree
Hide file tree
Showing 322 changed files with 21,326 additions and 559 deletions.
35 changes: 18 additions & 17 deletions externals/coda-oss/modules/c++/str/source/Convert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,29 +208,30 @@ void str::toUtf8(const std::u32string& str, std::string& result)
utf8::utf32to8(str.begin(), str.end(), std::back_inserter(result));
}

template <typename T,
typename uXbit_iterator = typename T::const_iterator, typename octet_iterator = uint8_t*>
static inline sys::u8string toUtf8(const T& str,
octet_iterator (*utfXto8)(uXbit_iterator, uXbit_iterator, octet_iterator))
{
// Avoiding a copy w/cast between std::string/sys::u8string causes a nasty crash on some platforms.

// using utf::utf_to8() we can put the result in the desired location
sys::u8string retval(4 * str.length(), cast('\0')); // one UTF-32 codepoint could be four UTF-8 characters
auto pBegin = reinterpret_cast<uint8_t*>(&(retval[0]));
utfXto8(str.begin(), str.end(), pBegin);
struct back_inserter final
{
sys::u8string* container = nullptr;
explicit back_inserter(sys::u8string& s) noexcept : container(&s) { }

const auto pRetval = reinterpret_cast<const char*>(retval.c_str());
retval.resize(strlen(pRetval)); // get rid of any extra '\0's
return retval;
}
back_inserter& operator=(uint8_t v)
{
container->push_back(static_cast<sys::u8string::value_type>(v));
return *this;
}
back_inserter& operator*() noexcept { return *this; }
back_inserter operator++(int) noexcept { return *this; }
};
sys::u8string str::toUtf8(const std::u16string& str)
{
return ::toUtf8(str, utf8::utf16to8);
sys::u8string retval;
utf8::utf16to8(str.begin(), str.end(), back_inserter(retval));
return retval;
}
sys::u8string str::toUtf8(const std::u32string& str)
{
return ::toUtf8(str, utf8::utf32to8);
sys::u8string retval;
utf8::utf32to8(str.begin(), str.end(), back_inserter(retval));
return retval;
}

void str::toUtf8(const std::u16string& str, sys::u8string& result)
Expand Down
1 change: 1 addition & 0 deletions externals/nitro/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ _deps/
CMakeFiles/
*.cmake
CMakeCache.txt
build/

externals/coda-oss/modules/c++/**/Makefile
modules/**/Makefile
Expand Down
3 changes: 0 additions & 3 deletions externals/nitro/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ set(CMAKE_CXX_STANDARD 11)
if (${CMAKE_PROJECT_NAME} STREQUAL nitro)
# we are the top-level project and are responsible for configuration

# From our REAMDE "The MATLAB and JAVA layers have not been touched in years. ..."
set(ENABLE_JAVA OFF CACHE BOOL "enable Java support" FORCE)

# set up warnings
if (MSVC)
# set warning level to /W3
Expand Down
4 changes: 2 additions & 2 deletions externals/nitro/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ the C and C++ layers get the most support.

The Python layer gets some use for scripting convenience.

The MATLAB and JAVA layers have not been touched in years.
Use at your own risk.
The MATLAB and JAVA layers have not been touched in years; they are
no longer built, code remains in the **archive** directory.

TREs need to be coded in C (only).

Expand Down
24 changes: 24 additions & 0 deletions externals/nitro/Test/Test.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#pragma once

#include "gtest/gtest.h"

// use GTest macros to mimic existing unit-tests

#define TEST_ASSERT(X) EXPECT_TRUE(X)
#define TEST_ASSERT_NULL(X) TEST_ASSERT((X) == NULL)
#define TEST_ASSERT_TRUE(X) TEST_ASSERT((X) == true)

#define TEST_ASSERT_EQ(X1, X2) EXPECT_EQ(X1, X2)
#define TEST_ASSERT_NOT_EQ(X1, X2) EXPECT_NE(X1, X2)
#define TEST_ASSERT_EQ_INT(X1, X2) TEST_ASSERT_EQ(X1, X2)
#define TEST_ASSERT_EQ_STR(X1, X2) EXPECT_STREQ(X1, X2)
#define TEST_ASSERT_EQ_FLOAT(X1, X2) EXPECT_FLOAT_EQ(static_cast<float>(X1), static_cast<float>(X2))

#define TEST_ASSERT_GREATER(X1, X2) EXPECT_GT(X1, X2)


#define TEST_ASSERT_EQ_MSG(msg, X1, X2) SCOPED_TRACE(msg); TEST_ASSERT_EQ(X1, X2)

#define TEST_EXCEPTION(X) EXPECT_ANY_THROW((X))

#define TEST_MAIN(X)
143 changes: 143 additions & 0 deletions externals/nitro/Test/Test.vcxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{FDEA6187-F4C4-45BC-B793-C0AC0728B776}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<ItemGroup>
<ClInclude Include="nitf_Test.h" />
<ClInclude Include="nrt_Test.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="Test.h" />
<ClInclude Include="TestCase.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="nitf_test_create.cpp" />
<ClCompile Include="nitf_test_create_nitf.cpp" />
<ClCompile Include="nitf_test_field++.cpp" />
<ClCompile Include="nitf_test_field.cpp" />
<ClCompile Include="nitf_test_image_blocker.cpp" />
<ClCompile Include="nitf_test_image_io.cpp" />
<ClCompile Include="nitf_test_image_segment_blank_nm_compression.cpp" />
<ClCompile Include="nitf_test_image_segment_computer.cpp" />
<ClCompile Include="nitf_test_mem_source.cpp" />
<ClCompile Include="nitf_test_nitf_buffer_list.cpp" />
<ClCompile Include="nitf_test_tre_mods.cpp" />
<ClCompile Include="nitf_test_zero_field.cpp" />
<ClCompile Include="nrt_test_buffer_adapter.cpp" />
<ClCompile Include="nrt_test_core_values.cpp" />
<ClCompile Include="nrt_test_list.cpp" />
<ClCompile Include="nrt_test_nrt_byte_swap.cpp" />
<ClCompile Include="nrt_test_nrt_datetime.cpp" />
<ClCompile Include="nrt_test_tree.cpp" />
<ClCompile Include="nrt_test_utils.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\modules\c++\nitro-c++.vcxproj">
<Project>{8f357a19-799e-4971-850e-3f28485c130b}</Project>
</ProjectReference>
<ProjectReference Include="..\modules\c\nitf\ACCHZB.vcxproj">
<Project>{53f9f908-c678-4dee-9309-e71c1d03a45f}</Project>
</ProjectReference>
<ProjectReference Include="..\modules\c\nitf\ACCPOB.vcxproj">
<Project>{730b1e6e-2469-4f9e-b093-d0c6262453c9}</Project>
</ProjectReference>
<ProjectReference Include="..\modules\c\nitf\ACFTA.vcxproj">
<Project>{51d7b426-899e-428d-9f69-5ddac9e403fb}</Project>
</ProjectReference>
<ProjectReference Include="..\modules\c\nitf\AIMIDB.vcxproj">
<Project>{12aa0752-4ee3-4e0a-85af-0e5deadbf343}</Project>
</ProjectReference>
<ProjectReference Include="..\modules\c\nitf\CSCRNA.vcxproj">
<Project>{023de06d-3967-4406-b1b8-032118bb2552}</Project>
</ProjectReference>
<ProjectReference Include="..\modules\c\nitf\JITCID.vcxproj">
<Project>{d1d7fcd3-6130-4504-9da0-9d80506be55e}</Project>
</ProjectReference>
<ProjectReference Include="..\modules\c\nitf\RPFHDR.vcxproj">
<Project>{cf5b4f02-364d-4117-9fb9-6c9c7938e412}</Project>
</ProjectReference>
<ProjectReference Include="..\modules\c\nitro-c.vcxproj">
<Project>{f06550ad-cfc7-40b8-8727-6c82c69a8982}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemDefinitionGroup />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.1.8.1.3\build\native\Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.targets" Condition="Exists('..\packages\Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.1.8.1.3\build\native\Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.targets')" />
</ImportGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>X64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)include;%(AdditionalIncludeDirectories);$(SolutionDir)modules\c\nrt\include;$(SolutionDir)modules\c\nitf\include;$(SolutionDir)modules\c\jpeg\include;$(SolutionDir)modules\c\j2k\include;$(SolutionDir)modules\c\cgm\include;$(SolutionDir)modules\c;$(SolutionDir)modules\c++;$(SolutionDir)modules\c++\nitf\include;$(MSBuildThisFileDirectory)include;$(SolutionDir)externals\coda-oss\install-$(Configuration)-$(Platform).$(PlatformToolset)\include\import;$(SolutionDir)externals\coda-oss\install-$(Configuration)-$(Platform).$(PlatformToolset)\include</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<AdditionalLibraryDirectories>$(SolutionDir)externals\coda-oss\install-$(Configuration)-$(Platform).$(PlatformToolset)\lib</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PreprocessorDefinitions>X64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)include;%(AdditionalIncludeDirectories);$(SolutionDir)modules\c\nrt\include;$(SolutionDir)modules\c\nitf\include;$(SolutionDir)modules\c\jpeg\include;$(SolutionDir)modules\c\j2k\include;$(SolutionDir)modules\c\cgm\include;$(SolutionDir)modules\c;$(SolutionDir)modules\c++;$(SolutionDir)modules\c++\nitf\include;$(MSBuildThisFileDirectory)include;$(SolutionDir)externals\coda-oss\install-$(Configuration)-$(Platform).$(PlatformToolset)\include\import;$(SolutionDir)externals\coda-oss\install-$(Configuration)-$(Platform).$(PlatformToolset)\include</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<AdditionalLibraryDirectories>$(SolutionDir)externals\coda-oss\install-$(Configuration)-$(Platform).$(PlatformToolset)\lib</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.1.8.1.3\build\native\Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.1.8.1.3\build\native\Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.targets'))" />
</Target>
</Project>
2 changes: 2 additions & 0 deletions externals/nitro/Test/TestCase.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#pragma once
#include "Test.h"
7 changes: 7 additions & 0 deletions externals/nitro/Test/nitf_Test.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#pragma once

#if defined(GTEST_API_)
#define __TEST_H__ // #include "../nitf/unittests/Test.h"
#define __TEST_CASE_H__ // #include "../nitf/unittests/TestCase.h"
#endif
#include "Test.h"
6 changes: 6 additions & 0 deletions externals/nitro/Test/nitf_test_create.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "pch.h"

#include "nitf_Test.h"

#define TEST_CASE(X) TEST(nitf_test_create, X)
#include "nitf/unittests/test_create.c"
12 changes: 12 additions & 0 deletions externals/nitro/Test/nitf_test_create_nitf.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#include "pch.h"

#include "nitf_Test.h"

#define TEST_NAME nitf_test_create_nitf
#define TEST_CASE(X) TEST(TEST_NAME, X)

int argc = 1;
const char* argv[] = { "nitf_test_create_nitf" };
#define TEST_CASE_ARGS(X) TEST(TEST_NAME, X)

#include "nitf/unittests/test_create_nitf.c"
6 changes: 6 additions & 0 deletions externals/nitro/Test/nitf_test_field++.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "pch.h"

#include "nitf_Test.h"

#define TEST_CASE(X) TEST(nitf_test_field__, X)
#include "nitf/unittests/test_field++.cpp"
7 changes: 7 additions & 0 deletions externals/nitro/Test/nitf_test_field.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include "pch.h"

#include "nitf_Test.h"

#define TEST_CASE(X) TEST(nitf_test_field, X)
#include "nitf/unittests/test_field.c"

6 changes: 6 additions & 0 deletions externals/nitro/Test/nitf_test_image_blocker.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "pch.h"

#include "nitf_Test.h"

#define TEST_CASE(X) TEST(test_image_blocker, X)
#include "nitf/unittests/test_image_blocker.cpp"
11 changes: 11 additions & 0 deletions externals/nitro/Test/nitf_test_image_io.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include "pch.h"

#include <windows.h>
#include <combaseapi.h>
#undef interface

#include "nitf_Test.h"

#define TEST_CASE(X) TEST(nitf_test_image_io, X)

#include "nitf/unittests/test_image_io.c"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "pch.h"

#include "nitf_Test.h"

#define TEST_CASE(X) TEST(test_image_segment_blank_nm_compression, X)
#include "nitf/unittests/test_image_segment_blank_nm_compression.cpp"
6 changes: 6 additions & 0 deletions externals/nitro/Test/nitf_test_image_segment_computer.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "pch.h"

#include "nitf_Test.h"

#define TEST_CASE(X) TEST(test_image_segment_computer, X)
#include "nitf/unittests/test_image_segment_computer.cpp"
6 changes: 6 additions & 0 deletions externals/nitro/Test/nitf_test_mem_source.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "pch.h"

#include "nitf_Test.h"

#define TEST_CASE(X) TEST(nitf_test_mem_source, X)
#include "nitf/unittests/test_mem_source.c"
6 changes: 6 additions & 0 deletions externals/nitro/Test/nitf_test_nitf_buffer_list.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "pch.h"

#include "nitf_Test.h"

#define TEST_CASE(X) TEST(test_nitf_buffer_list, X)
#include "nitf/unittests/test_nitf_buffer_list.cpp"
Loading

0 comments on commit 3c07e72

Please sign in to comment.