Skip to content

Commit

Permalink
Squashed 'externals/coda-oss/' changes from 67d6362bc..6621823f7
Browse files Browse the repository at this point in the history
6621823f7 fix warning about unknown #pragma
049e0a6d8 restore coda_oss::make_unique for C++11
032ce4fe7 tweak unittest for API changes
14db4196e std::auto_ptr -> std::unique_ptr changes from "main"
b8af766fb XML.LITE changes from "main"
3f6d1c4f4 std::auto_ptr -> std::unique_ptr
a73ffac26 CLI changes from "main"
8a95dfbd3 std::unique_ptr changes from "main"
f0a706b66 "str" changes from "main"
05a9face4 "sys" changes from "main"
b25dff2a4 add HDF5.LITE from "main"
cb2ea1c1b ZIP unittests from "main"
9f8df22ff optz_fastest-possible from "main"
509e12eec misc. tweaks from "main"
59379fee4 updates to HDF5 and ZLIB from "main"
1ac97fe48 add HDF5 source code (not built) (#612)
fde6c864f Merge pull request #607 from mdaus/bugfix/change-order-of-config-header-install
c8a004401 Install the cmake-configured header after installing the xercesc source tree. Otherwise, the original config will persist in the install
dda2c9acd Merge pull request #606 from mdaus/fix-xerces-config
004a00f09 Bump zlib version for conan builds
207f4dbb9 Fix Xerces config issue and install its config.h
b84241767 Add support for debug optimizations.
0f6cda57d Use enhanced debug information with gcc/gdb.
5047dce1a Work around GCC avx support bug.
001ab1875 Rebuild the waf self-extractor with a fix for the FIPS error.
5a7f64fca Revert "Rebuild the waf self-extractor with a fix for the FIPS problem."
9f6f775f8 Rebuild the waf self-extractor with a fix for the FIPS problem.
963e8ff40 Revert "add HDF5 source code (#603)"
ec7bb2e52 add HDF5 source code (#603)
6f41c09d7 Release 2022-08-30 (#596)
f91668012 Added handler accessor to MinidomParser for inheriting modules (#594)
72d29e9c2 get unittests working when "nested" in other projects (#595)
f8f18fea5 Actually look at unit test results when using waf (#593)
cda679cee more overloads to take a string length (#592)
b95a32bc4 by default, Uri()s aren't validated (#591)
173930a6f fix a UTF-8 conversion bug (#590)
c5c221a83 CODA code inherits from xml.lite classes :-( (#589)
a4c6294c3 use EncodedStringView instead of _bstr_t (#588)
83c982f0c remove work-arounds to write non-UTF-8 XML (#586)
ebf6db176 <bit> is part of C++20
d3aa8aa5c std::u8string is in C++20, not C++17
03654933c changes to math.linear from coda (#587)
5a2f8e52f release 2022-08-02 (#585)
e5516aba2 tweak names to match utf8:: conventions (#584)
3083ec791 move most platform-specific code to EncodedStringView (#583)
36371410c EncodedString tweaks for XML processing (#582)
cf2016205 remove any vestiges of Expat and libXML (#580)
33538aa0f update for newer Intel compiler
ed65e4ccc Add two patch candidates to fix FIPS problems in waf.
a731ebf8e release 2022-06-29 (#579)
59387bd87 update "ReleaseNotes.md" for recent changes (#578)
e4f940854 remove "boost" and "serialize" (#577)
80b70537e update to zlib-1.2.12 (#576)
202084bac Remove some compiler warnings (#575)
c61232224 build most code with Visual Studio (#574)
6e4d952be some unit-tests need argc/argv (#573)
36e051d7b Add run1D method to GenerationThreadPool (#572)
0a08b8e4e build "coda-oss-lite" as a VS2022 project (#571)
6677cc38e simplify creation of encodes string (#570)
ba62c610c Add the 'universal_newlines=True' flag to python Popen calls.
984e4a96c Fix a bug in waf platform detection.
d2aca8d4b release 2022-05-03 (#569)
ff55fed59 can't replace all TEST_ASSERT macros with functions (#568)
89a636a6a fix copy/assignment in EncodedString (#567)
c3fe91d42 latest tweaks to build with C++17 (#566)
a59a51b57 be sure we use a 64-bit time_t (#565)
1f79fb3dd Poly2D::atY() bugfix (#564)
ac5307662 Testing to see if windows-2019 works with github actions (#563)
8d0726b37 Fix a bug in waf platform detection.
c662b5aac Update ReleaseNotes.md
ef4a3bbd9 Release 2022-02-22 (aka 2/22/22) (#562)
0a0e6cf14 use char16_t on Linux (#560)
fe65bfddf fix units for ICC, sys::filesystem (#559)
def979170 update to GSL 4.0.0 (#558)
fe365e5a4 fix XML validation for UTF-8 (#557)
502e5829b support conversion to std::wstring (#556)
e69422596 Delete codeql-analysis.yml
45bc6a964 Create codeql-analysis.yml
87d9a7ef5 remove CodeQL
eab5ecb89 Update build_unittest.yml
8ab12d47e Delete codeql-analysis.yml
9e542092b try running CodeQL as part of build-linux-cmake
de0c50651 Create codeql-analysis.yml
049608782 tweaks to build in "coda" (#554)
0ba24233b replace sys::U8string with coda_oss::u8string (#553)
bcee6551f add EncodedString class (#552)
c2eecd392 simplify implementation of EncodedStringView (#551)
c1320ef00 fix 'typename' for other compilers (#550)
ac3b93931 tweaks to make "main" build easier (#549)
78da741cf remove sys/Optional.h (#548)
f31730ac7 put our std work-arounds in one place (#547)
9b7bb571a Add an EncodedStringView class (#545)
c0e1da520 another batch of tweaks to cleanup compiler warnings, etc. (#546)
0f3bfd9d0 added missing "virtual", support unique_ptr (#544)
ca32f99c0 Add option to specify curl installation location. (#501)
2df9c1a81 allow std::filesystem::path to be used for validation (#543)
289143576 add SinCos for units::Angle (#542)
e430eddef Delete log4j as 1) it's old, 2) coda-oss doesn't use it, and 3) remove any questions about security vulnerability (#541)
bb11134fd xml.lite tweaks (#540)
955b33e21 Release 2021_12_13 (#539)
d73d74d5c xml.lite tweaks (#537)
3a90e25c6 use more C++11 functionality (#538)
9ca2a0e50 remove more compiler warnings (#536)
0ec9da1e9 be sure == and != are in-sync (#535)
9084be32c fix size_t compiler warnings (#534)
abd6469ec fix ICC errors (#533)
09cb36fff update version number before cutting a new release (#532)
c29e4d298 fix ICC warnings/errors from high-side (#531)
91f8f1c08 simplify our std:: implementations (#530)
7c633c7bb Further reduce use of std::auto_ptr (#529)
d85883749 Provide support for creating simple version numbers (#528)
b03582592 Merge pull request #527 from mdaus/fix-crypt-h-clash
ffed3d633 Disable encryption support in minizip build and remove crypt.h header
ee2b2bf8c Merge pull request #525 from mdaus/swig-fix
3c02ff289 Fix config-python prefix issue
6149053d4 Add new config-python module for SWIG compatibility workarounds
30acf5b9a mt::transform_async(), mem::SharedPtr, math::SinCos() (#526)
21efd6a6c Implement better workaround for lack of SWIG support for "final"
60837a62e Revert unneeded changes
0bc994dea Fix SWIG path issue for waf build
070f4e915 Update SWIG generated files
f8472b0c4 Fix SWIG path issues and warnings
e10707f75 Set minimum SWIG version to 4.0.1
b8cdba5c7 Fix waf SWIG build issue
2bd0ee39e Enable SWIG in Github waf build
f2b001146 Try fixing SWIG compile issue again
afafabcc2 Fix SWIG compile issue on Linux due to missing macro
7c8d4a81d Add SWIG to the CI flow
4023d721c Regenerate SWIG bindings
1d8c70109 Add some compile definitions needed by SWIG for CMake build
e5cc58545 Remove some functions which return unique_ptr from SWIG bindings (incompatible).
965a2913d Remove "final" specifier from structs bound in SWIG (incompatible)
f1bec5601 Merge branch 'master' of https://github.com/mdaus/coda-oss
c01c4d7de do in-line initialization (#524)
fb7230ea1 Update CMakeLists.txt
5dfb05689 tweaks for C++17 (#523)
1a7d3ab52 Merge pull request #515 from mdaus/security-and-conan-updates
d13885df6 make it easier to create a new Element with the right encoding (#522)
3fb09e73a Merge pull request #359 from mdaus/parseArgUpdate
0d546a8f1 Tweak some ArgumentParser tests for the ignoreUnknownArguments option
14bd1f26d Merge remote-tracking branch 'origin/master' into parseArgUpdate
cf398c0d3 tweak code for C++11/C++17 (#521)
2d0322b07 reduce use of std::auto_ptr (#520)
853320e90 reduce use of deprecated C++98 code (#519)
4752ba222 Replace some warning pragmas with macros
32685554f Merge remote-tracking branch 'origin/master' into security-and-conan-updates
f0350c0cf Merge pull request #518 from mdaus/bugfix/python3.9-related
fc01df0d8 fix typos in gcc macros
9d356f36c fix gcc impl
8124da763 remove unreachable code
d034b3a84 clobber warnings from numpy innards
9941a401e macros to disable warnings around system headers
8a725bb8f Merge pull request #516 from mdaus/mbraswell-enablecpp17-windows
2e7b8165a Fixed pragma stuff on gcc
9775bb02d Fixed pragma stuff on gcc
680d3cce4 Merge branch 'master' of https://github.com/mdaus/coda-oss
8ffd6ed79 forgot to add "units" to CMakeFiles.txt
06835676e Remove Auto_ptr flag and make disable warnings cross_platform compatible
d62efece5 Merge branch 'master' of https://github.com/mdaus/coda-oss into mbraswell-enablecpp17-windows
d04042ee9 Merge pull request #517 from mdaus/develop/compiler-warning-helpers
cf5cd16b3 Fix macro usage on gcc
a88bbcd20 Macros to narrowly target disabling warnings
c0d5cdf00 Formatting Changes
be019b44b Formatting Changes
2eb04dc9e Fixed compiler warnings and added option to compile cpp17 with waf on windows
5d9f27fae Refactor coda-oss conan recipe
ce6645714 Disable warning for MSVC2017 and earlier
ecfefbfbe Merge remote-tracking branch 'origin/master' into security-and-conan-updates
8b1479881 Merge pull request #514 from mdaus/develop/fix-unused-symbol-errors
1d9a4ec71 Add conan option to use std::regex instead of pcre
6dd5d4457 add required include
4c0ae7781 add required include
1873ceeb8 parameterize build (somewhat)
c9ef567a7 fix Release compile error
e6b47e94e fix compiler error
eff205ba2 helper macro to fix unusual targets
342098a32 Fix CMake build for modules without include files
5625706eb Enable cpp17 option for windows builds
98e12b138 Use consistent line endings for *.in template files
d01fea0b7 Configure coda_add_module to install more file extension types
30823f673 Delete stray file
ac7760ba2 Load dependency targets when loading coda-oss for conan build
14781cab8 Implement conan build for openjpeg and pcre2 dependencies
9d955efa5 Exclude unsupported XML backend wrappers from CMake build to remove warnings
1e8c9b264 Merge remote-tracking branch 'origin/master' into security-and-conan-updates
772d80495 Implement conan build for libjpeg dependency
98b653dea Implement conan build for xerces-c dependency
11323e8e9 Implement conan build for zlib dependency
d0e6bf2c4 Improve conan test_package
a03e1294e Fix uninitialized member variable warning in mt::AbstractTiedThreadPool
c7bb47b5f Remove member variable duplicated in derived class io::ToggleOutputStream
0838ac2ca Use consistent line endings for conan recipes and CMake files.
2768e5f07 Update libjpeg to v9d
d75f55bca Update zlib to 1.2.11
ca2f84cff Fix warning in GSL for MSVC 2015 and earlier
1babd19b5 Fix warning in thread tests for MSVC
2f1763249 Fix warning in except module for Visual Studio 2015 and earlier
a485bf6bb Fix BIGENDIAN redefinition warning
59543e42b Disable warning in dbi for MSVC 2017 and earlier
b4b212834 Fix warnings in numpyutils for MSVC 2017 and earlier
2b179b658 Fix integer overflow issue
898151ad7 Hook up simple "units" (#513)
4d6beeecc Merge pull request #511 from mdaus/develop/horizontal-improved-numerical-precision
c1878b228 Fix for numerical precision issues surrounding horizontal lines
7d1442c66 Merge pull request #510 from mbraswell/fix-testnumelements-build
58fc85f09 Whitespace change to trigger workflow
ab74026b9 Fix wscript to successfully build test_num_elements
323283cd7 Merge pull request #509 from mbraswell/develop-mbraswell-cpp17
16a550289 Added option to enable cpp17
b0625cf5a tweak debug stuff (#508)
845549487 fix RowCol casting (#507)
01fbb5f00 Get std::u8string working right with C++20 (#506)
df9413efa more "noexcept" for fewer code-analysis diagnostics (#505)
e6219f97f reduce compiler warnings/code-analysis diagnostics (#504)
4c9ea0ef1 tweaks for VS2019 16.10 (#503)
0d8ea070a reduce compiler warnings (#502)
625b8b59d reduce compiler warnings (#500)
3795758da get rid of more compiler warnings/code-analysis diagnostics (#499)
427f91be8 reduce compiler-warnings and code-analysis diagnostics (#498)
c82dd9e37 cleanup compiler and code-analysis diagnistics (#496)
b5105b54a reduce compiler warnings (#495)
e0099cc26 Develop/compiler optimizations (#494)
0eeb3f963 tweaks to python wrappers made in "nitro" (#492)
5f91f7060 fix printf() format string (#491)
55b855a86 Delete codeql-analysis.yml
603c192d3 Update codeql-analysis.yml
f306979e8 Update codeql-analysis.yml
4a1f78f8e Create codeql-analysis.yml
3c80a6568 add back coda_oss::filesystem::path (#490)
eaea659ed tweak how std:: features are exposed (#489)
0492f0d95 simplify code exposing std:: routines (#488)
e5f3d7770 remove code-analysis diagnostics (#485)
5be599e5a make HOME and USERPROFILE the same (#484)
62b22ae01 cleanup more compiler warnings (#483)
c32ec7dcc add unit-tests for env-var editing (#482)
311aea462 allow an environment-variable to be "edited" during expansion (#481)
bbcab1310 static_assert is C++11, don't use it when checking for C++11 (#480)
068562f58 fix glitches in expandEnviromentVariables() (#479)
30ed1d95e produce a new Path::expandEnviromentVariables() function (#478)
074a873b2 remove compiler warnings (#477)
e29f65479 latest C++17 tweaks (#476)
c4e681b0a tweak code when wchar_t is a built-in type (#474)
8449ac29a wchar_t might not be a built-in type on old systems (#473)
a62bdb3e6 add operator= to sys::Optional (#472)
8e310a776 use compiler-provided macros to determine features (#470)
88405c8ed "constexpr" can be hard to get right with older compilers; don't even try (#471)
b195ab3ef need at least VS2017 to use the real GSL (#469)
2978f9114 tweaks to build with older compilers (#468)
7235b898d The (old) version of SWIG we're using doesn't like certain C++11 features. (#464)
cccde7f12 only look in the Win1252->UTF-8 map as a last resort (#467)
3db09742c get rid of more compiler warnings (#465)
5e0d2e845 get rid of "char8_t" compiler warning (#463)
d710bc688 make getValue() easier to use (#462)
f5a928476 make getElement*() be consistent for both 0 and >1 (#461)
88be6dba3 consistently add C++14/17/20 library features (#459)
59c3a7e2e use coda_oss:: as a drop-in replacement for std:: (#458)
35de4524c use sys::Filesystem::path rather than std::string (#457)
cace66600 make sys::Filesystem::path better conform to std::filesystem::path (#456)
f395edc89 remove ambiguous overloads w/C++17 (#455)
eac4371f1 use newly added sys::Optional<> to manage "encoding" (#454)
243ef5e50 don't derive from std::iterator (#453)
a48b01141 Arguments should be "const&" to prevent C4866 (#452)
878bff901 provide std::span (#451)
81727c485 remove newly added a new pure virtual as that's a breaking change (#450)
93cf0f03e main -> master (#449)
5af37a736 be sure code compiles with C++17 (#448)
82b5aecfb build with C++17 (#407)
6ffb888d7 reduce compiler warnings (#439)
9137dda7d GSL (Guideline Support Library) from https://github.com/Microsoft/GSL (#423)
bc5552cd2 update to xerces-c-3.2.3 (#409)
6fe09e1db update to openjpeg-2.3.1 (#417)
6405c0ce5 reduce differences in #407 (#438)
2987bbf8d tweak how std::filesystem is enabled (#437)
8fd3c2f20 tweak how std::endian is enabled (#436)
138372c88 more straight-forward reduction of std::auto_ptr (#435)
f13c7cec8 straight-forward reduction of std::auto_ptr (#434)
d243b08e1 add mem::auto_ptr for transition to C++17 (#432)
54ed52158 allow clients to specify custom toType and toString (#431)
7f90aab25 remove trailing underscore from macro (#429)
999e49068 with C++11, several sys typedefs are the same on both Windows & *nix (#427)
6f075b1be add sys::Byte (#426)
92221bd0d allow except::Throwable to derive from std::exception (#421)
a8f52d0ad reduce compiler warnings (#424)
63ea20af6 #including <bit> w/C++17 generates warnings (#408)
10ef06031 reduce compiler warnings (#405)
cf233fdcf forgot Conf.cpp changes for sys::Endian (#403)
cc53b1853 fix several compiler warnings/code-analysis diagnostics (#404)
1db3751a3 implmeent sys::Endian from C++20 (#402)
f042cd6bb support std::filesystem if desired (#400)
4895a9f2d WIN32 is old, but existing code might still use it; _WIN32 is better (#398)
e2a62f8ec make it easier to use xml.lite (#396)
1059b7da1 allow for explicit use of a UTF-8 string (#395)
27de8b8a4 Optionally record how std::string is encoded when manipulating XML (#378)
e0018cea7 implement some <filesystem>-like routines until we can use C++17 (#388)
cafb2365b Merge pull request #363 from mdaus/feature/fix-compiler-warnings
6a78bec20 use the existing sys::ubyte rather than making our own pre-C++17 std::byte
14c9fc4ca fix a couple of G++ compiler warnings via static_cast<>
e596a6007 std::numeric_limits<T>::epsilon() can be "constexpr"
78b0f6bb2 another try at removing the compiler warning from tiff::split()
8e1de21e1 fixed typo; added a few nots about why we're not using strncpy()
fed3ba8cd retore previous tiff::split() code as the change got rid of the compiler warning but wasn't portable
98a589616 get rid of g++ strncpy() warning
798f84711 don't use memset(0) with C++ objects
7f697d078 casting result of system() to void doesn't get rid of compiler warning
d55a849c5 remove new g++ compiler warnings in WSL
d0aaa2988 Merge pull request #361 from mdaus/feature/fix-compiler-warnings
cc62e866b fix compiler warnings
d45c1f9a0 Updates based on peer review comments which include changing ostream to pointer, adding a couple of more tests, and updating all auto_ptr to unique_ptr in unit test.
fb12ba126 Update ArgumentParser to use a stream as an argument if the ignore unknown argument flag is set to true.
536d2b0ca Added ability to ignore unknown arguments in the ArgumentParser.
27288f49b Merge pull request #358 from mdaus/conan-options
fd5e1eecb Expose additional CMake options in conan recipe
c97216179 Remove unneeded CMake function

git-subtree-dir: externals/coda-oss
git-subtree-split: 6621823f7c968cc2396bb82e33a66eb9c0804427
  • Loading branch information
Dan Smith authored and Dan Smith committed Dec 19, 2022
1 parent 040eb7b commit 8af5b95
Show file tree
Hide file tree
Showing 1,401 changed files with 565,157 additions and 14,046 deletions.
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# prevent git from changing line endings for conan recipes and CMake files,
# since they are hashed to produce a conan recipe revision ID
conanfile.py text eol=lf
CMakeLists.txt text eol=lf
*.cmake text eol=lf
*.in text eol=lf
106 changes: 84 additions & 22 deletions .github/workflows/build_unittest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,62 +3,124 @@ name: build_unittest
on: [push]

jobs:
build-windows:
name: Windows
runs-on: [windows-latest]

build-cmake-windows:
strategy:
matrix:
os: [windows-2019]
python-version: ['3.7']
name: ${{ matrix.os }}-${{ matrix.python-version }}-CMake
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
uses: actions/setup-python@v2
with:
python-version: '3.7'
python-version: ${{ matrix.python-version }}
- name: Install python dependencies
run: |
pip install numpy
- name: configure
run: |
ls env:
mkdir target
cd target
cmake .. -DCMAKE_INSTALL_PREFIX=installWindows-Github -DPYTHON_VERSION="3.7"
mkdir target-Release
cd target-Release
cmake .. -DCMAKE_INSTALL_PREFIX=install${{ matrix.os }}CMake-Github -DPYTHON_VERSION=${{ matrix.python-version }} -DENABLE_SWIG=ON
cd ..
mkdir target-Debug
cd target-Debug
cmake .. -DCMAKE_INSTALL_PREFIX=install${{ matrix.os }}CMake-Github -DENABLE_PYTHON=OFF
- name: build
run: |
cd target
cd target-Release
cmake --build . --config Release -j
cd ..
cd target-Debug
cmake --build . --config Debug -j
- name: install
run: |
cd target
cd target-Release
cmake --build . --config Release --target install
cd ..
cd target-Debug
cmake --build . --config Debug --target install
- name: test
run: |
cd target
cd target-Release
ctest -C Release
cd ..
cd target-Debug
ctest -C Debug
build-linux:
name: Linux
runs-on: [ubuntu-latest]

build-linux-cmake:
strategy:
matrix:
os: [ubuntu-latest]
python-version: ['3.7']
name: ${{ matrix.os }}-${{ matrix.python-version }}-CMake
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
uses: actions/setup-python@v2
with:
python-version: '3.7'
python-version: ${{ matrix.python-version }}
- name: Install python dependencies
run: |
pip install numpy
- name: configure
run: |
env
which python
mkdir target
cd target
cmake .. -DCMAKE_INSTALL_PREFIX=installLinux-Github -DPYTHON_VERSION=3.7
cmake .. -DCMAKE_INSTALL_PREFIX=install${{ matrix.os }}CMake-Github -DPYTHON_VERSION=${{ matrix.python-version }} -DENABLE_SWIG=ON
- name: build
run: |
cd target
cmake --build . -j
# "-j" spawns too many processes causing GCC to crash
cmake --build . -j 12
- name: install
run: |
cd target
cmake --build . --target install
- name: test
run: |
cd target
ctest
ctest
build-waf:
strategy:
matrix:
os: [ubuntu-latest, windows-2019]
python-version: ['3.7']
debugging: ['--enable-debugging', '']
name: ${{ matrix.os }}-${{ matrix.python-version }}-waf
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: configure_with_swig
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
pip install numpy
mkdir install${{ matrix.os }}Waf-Github
python waf configure --prefix="$PWD/install${{ matrix.os }}Waf-Github" --enable-swig ${{ matrix.debugging }}
- name: configure_without_swig
if: ${{ matrix.os == 'windows-2019' }}
run: |
pip install numpy
mkdir install${{ matrix.os }}Waf-Github
python waf configure --prefix="$PWD/install${{ matrix.os }}Waf-Github" ${{ matrix.debugging }}
- name: build
run: |
python waf build
- name: install
run: |
python waf install
- name: test
run: |
python waf install --alltests
89 changes: 54 additions & 35 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,35 +1,54 @@
*.swp
*~
*.pyc
__pycache__/
# Build artifacts

install/
target/
test_package/build/

# Waf
.waf-*
waf-*
.waf3-*
waf3-*
.lock-waf*
build/waf*/

# Eclipse
.project
.cproject

# Drivers
modules/drivers/fftw/fftw-2.1.5/
modules/drivers/jpeg/jpeg-9/
modules/drivers/j2k/openjpeg/openjpeg-2.3.0_mod/
modules/drivers/pcre/pcre2-10.22/
modules/drivers/uuid/e2fsprogs-1.40-uuid/
modules/drivers/xml/xerces/xerces-c-3.1.1/
modules/drivers/zlib/zlib-1.2.7/

# VS
.vs/
project.sln
.depproj/
*.swp
*~
*.pyc
__pycache__/
# Build artifacts

install/
install-*/
target/

# Conan
modules/drivers/**/build
test_package/build/

# CMake
_deps/
CMakeCache.txt
CMakeFiles/
*_config.h
Makefile
modules/**/Makefile
out/

# Waf
.waf-*
waf-*
.waf3-*
waf3-*
.lock-waf*
build/waf*/

# Eclipse
.project
.cproject

# Drivers
modules/drivers/fftw/fftw-2.1.*/
modules/drivers/jpeg/jpeg-9/
modules/drivers/jpeg/jpeg-9d/
modules/drivers/j2k/openjpeg/openjpeg-2.3.*_mod/
modules/drivers/pcre/pcre2-10.*/
modules/drivers/uuid/e2fsprogs-1.*-uuid/
modules/drivers/xml/xerces/xerces-c-*/
modules/drivers/zlib/zlib-1.2.*/

# VS
.vs/
project.sln
.depproj/
*.tlog
**/x64/
*.vcxproj.user

CMakeSettings.json
14 changes: 11 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,19 @@

cmake_minimum_required(VERSION 3.14)

set(TARGET_LANGUAGE c++)
set(CMAKE_CXX_STANDARD 11)
set(CXX_STANDARD_REQUIRED true)

project(coda-oss)

set(CMAKE_CXX_STANDARD 11)
if (EXISTS "${CMAKE_BINARY_DIR}/conanbuildinfo.cmake")
# build and package with conan
include("${CMAKE_BINARY_DIR}/conanbuildinfo.cmake")
conan_basic_setup()

include("${CMAKE_BINARY_DIR}/conan_paths.cmake")
endif()

if (${CMAKE_PROJECT_NAME} STREQUAL coda-oss)
# this is the top level project
Expand All @@ -16,8 +26,6 @@ if (${CMAKE_PROJECT_NAME} STREQUAL coda-oss)
# set warning level to /W3
string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REGEX REPLACE "/W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
add_compile_options(/W3 /wd4290 /wd4512)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
elseif (UNIX)
add_compile_options(
-Wno-deprecated
Expand Down
72 changes: 72 additions & 0 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
```
_________________________
| ____ _||_ ___ __ |
| /___ \/_||_\| __\/ \ |
| // \// || \|| \\ _ \ |
| || [===||===] ||(_)| |
| || _|| || ||| ||__ | |
| \\ _/ |\_||_/||__/|| || |
| \___/ \_||_/|___/|| || |
|__________||_____________|
```
# coda-oss Release Notes

## [Release 2022-12-14](https://github.com/mdaus/coda-oss/releases/tag/2022-12-14)
* removed remaining vestigates of `std::auto_ptr`, provide `mem::AutoPtr` for the tiny handful of
places (e.g., SWIG bindings) that still need copying.
* `xml::lite::Element` overloads to make creting new XML documents easier; see unittests for examples.
* try even harder to find unittest files in various scenarios.
* build *hdf5.lite* with **waf**.
* New `--optz=fastest-possible` (**waf** only) which adds
[`-march=native`](https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/x86-Options.html#x86-Options)
to *fastest* for **waf** builds. There is a new *faster* option (the default) which is currently
the same as *fastest* (i.e., no `-march=native`).

## [Release 2022-11-04](https://github.com/mdaus/coda-oss/releases/tag/2022-11-04)
* "Cut" from [main](https://github.com/mdaus/coda-oss/tree/main), not *master*.
* The [HDFGroup](https://hdfgroup.org/)s [HDF5 library](https://github.com/HDFGroup/hdf5) is built
and installed; a simple (and very incomplete!) wrapper is provided, this is at the "hello world!" stage.
* A few **cli** routines have been tweaked to make unit-testing easier.
* Utilitiy routines for finding various files when unit-testing.
* Removed C++14 work-arounds needed in C++11. Legacy C++ exception specificatons removed.
* Rebuild `waf` for FIPS error; added more debug options.

## [Release 2022-08-30](https://github.com/mdaus/coda-oss/releases/tag/2022-08-30)
* XML is now always written as UTF-8; the code will still try to read Windows-1252.
* `Uri`s are no longer validated by default.
* Minor tweaks from other projects.
* Final C++11 release 🤞🏻; future releases will be C++14 from [main](https://github.com/mdaus/coda-oss/tree/main).

## [Release 2022-08-02](https://github.com/mdaus/coda-oss/releases/tag/2022-08-02)
* remove *Expat* and *libXML* modules and support in **xml.lite**; only *Xerces* was actively used.
* fix `waf` to work-around FIPS warning because of insecure *md5* hashing.
* tweak `str::EncodedStringView` and `str::EncodedString` for
[future XML changes](https://github.com/mdaus/coda-oss/tree/feature/always-write-xml-as-utf8).

## [Release 2022-06-29](https://github.com/mdaus/coda-oss/releases/tag/2022-06-29)
* remove **modules/drivers/boost** as it was empty (and unused);
**modules/c++/serialize** depended on boost, so it has also been removed.
* Update to [zlib 1.2.12](https://www.zlib.net/zlib-1.2.12.tar.gz),
["Due to the bug fixes, any installations of 1.2.11 should be replaced with 1.2.12."](https://www.zlib.net/)
* Build most code in Visual Studio 2022
* Removed more compiler warnings
* Begin work on `CODA_OSS_API` (needed for building a shared-library/DLL)
* Add `run1D()` method to `mt::GenerationThreadPool`

## [Release 2022-05-03](https://github.com/mdaus/coda-oss/releases/tag/2022-05-03)
* Fixed a bug in `Poly2D::atY()`; improved `flipXY()` behavior.
* Implement [std::filesystem::file_size()](https://en.cppreference.com/w/cpp/filesystem/file_size).
* use `inline` functions for `TEST_` macros
* force use of [64-bit `time_t`](https://en.wikipedia.org/wiki/Year_2038_problem)
* more routines now support a `std::span` overload; e.g., `io::InputStream::read()`.

## [Release 2022-02-22](https://github.com/mdaus/coda-oss/releases/tag/2022-02-22)
* new `EnocdedString` and `EncodedStringView` to manage strings in different encodings
* XML containing UTF-8 characters can now be validated
* Update to [GSL 4.0.0](https://github.com/microsoft/GSL/releases/tag/v4.0.0)
* our implementation of `std` stuff is all in the `coda_oss` namespace
* old, unused **log4j.jar** deleted to remove any questions about the security vulnerability

## [Release 2021-12-13](https://github.com/mdaus/coda-oss/releases/tag/2021-12-13)
* Try hard to parse XML encoded in various ways
* Simplify XML element creation for common idioms
43 changes: 43 additions & 0 deletions UnitTest/CppUnitTestAssert.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#include "pch.h"
#include "TestCase.h"

#include "str/EncodedStringView.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

// EQUALS_MESSAGE() wants ToString() specializations (or overloads) for our types, which is a nusiance.
// This hooks up our existing str::toString() into the VC++ unit-test infrastructure

// C++ hack to call private methods
// https://stackoverflow.com/a/71578383/8877

using FailOnCondition_t = void(bool condition, const unsigned short* message, const __LineInfo* pLineInfo); // declare method's type
using GetAssertMessage_t = std::wstring(bool equality, const std::wstring& expected, const std::wstring& actual, const wchar_t *message); // declare method's type
template <FailOnCondition_t fFailOnCondition, GetAssertMessage_t fGetAssertMessage>
struct caller final // helper structure to inject call() code
{
friend void FailOnCondition(bool condition, const unsigned short* message, const __LineInfo* pLineInfo)
{
fFailOnCondition(condition, message, pLineInfo);
}

friend std::wstring GetAssertMessage(bool equality, const std::wstring& expected, const std::wstring& actual, const wchar_t *message)
{
return fGetAssertMessage(equality, expected, actual, message);
}
};
template struct caller<&Assert::FailOnCondition, &Assert::GetAssertMessage>; // even instantiation of the helper

void FailOnCondition(bool condition, const unsigned short* message, const __LineInfo* pLineInfo); // declare caller
void test::Assert::FailOnCondition(bool condition, const unsigned short* message, const __LineInfo* pLineInfo)
{
::FailOnCondition(condition, message, pLineInfo); // and call!
}

std::wstring GetAssertMessage(bool equality, const std::wstring& expected, const std::wstring& actual, const wchar_t *message); // declare caller
std::wstring test::Assert::GetAssertMessage(bool equality, const std::string& expected, const std::string& actual, const wchar_t *message)
{
const str::EncodedStringView vExpected(expected);
const str::EncodedStringView vActual(actual);
return ::GetAssertMessage(equality, vExpected.wstring(), vActual.wstring(), message); // and call!
}
Loading

0 comments on commit 8af5b95

Please sign in to comment.