Upgrade C++ standard to c++17 (#2052)
* Enable C++17 and use new inline specifier for const variable members * Silence deprecation warning on MSVC * Disable samples by default * improvements after review
This commit is contained in:
parent
629442df9d
commit
b0318c36be
20
.github/workflows/on_PR_linux_fuzz.yml
vendored
20
.github/workflows/on_PR_linux_fuzz.yml
vendored
@ -16,12 +16,24 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo ./ci/install_dependencies.sh
|
||||
run: |
|
||||
sudo ./ci/install_dependencies.sh
|
||||
sudo apt-get install ninja-build
|
||||
|
||||
- name: build and compile
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
cmake -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DCMAKE_CXX_COMPILER=$(which clang++) -DEXIV2_BUILD_FUZZ_TESTS=ON -DEXIV2_TEAM_USE_SANITIZERS=ON ..
|
||||
make -j $(nproc)
|
||||
mkdir build && cd build && \
|
||||
cmake -GNinja -DEXIV2_ENABLE_PNG=ON \
|
||||
-DEXIV2_BUILD_SAMPLES=ON \
|
||||
-DEXIV2_ENABLE_WEBREADY=ON \
|
||||
-DEXIV2_ENABLE_CURL=ON \
|
||||
-DEXIV2_ENABLE_BMFF=ON \
|
||||
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
|
||||
-DCMAKE_CXX_COMPILER=$(which clang++) \
|
||||
-DEXIV2_BUILD_FUZZ_TESTS=ON \
|
||||
-DEXIV2_TEAM_USE_SANITIZERS=ON \
|
||||
.. && \
|
||||
cmake --build .
|
||||
|
||||
- name: Fuzz
|
||||
run: |
|
||||
|
||||
15
.github/workflows/on_PR_linux_matrix.yml
vendored
15
.github/workflows/on_PR_linux_matrix.yml
vendored
@ -36,8 +36,19 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cd build
|
||||
cmake -GNinja -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DCMAKE_INSTALL_PREFIX=install ..
|
||||
cd build && \
|
||||
cmake -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
||||
-DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} \
|
||||
-DEXIV2_BUILD_SAMPLES=ON \
|
||||
-DEXIV2_ENABLE_PNG=ON \
|
||||
-DEXIV2_ENABLE_WEBREADY=ON \
|
||||
-DEXIV2_ENABLE_CURL=ON \
|
||||
-DEXIV2_BUILD_UNIT_TESTS=ON \
|
||||
-DEXIV2_ENABLE_BMFF=ON \
|
||||
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=install \
|
||||
.. && \
|
||||
cmake --build .
|
||||
|
||||
- name: Install
|
||||
|
||||
34
.github/workflows/on_PR_linux_special_buils.yml
vendored
34
.github/workflows/on_PR_linux_special_buils.yml
vendored
@ -114,8 +114,21 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cd build
|
||||
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DBUILD_WITH_COVERAGE=OFF -DEXIV2_TEAM_USE_SANITIZERS=ON -DCMAKE_INSTALL_PREFIX=install ..
|
||||
cd build && \
|
||||
cmake -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DEXIV2_BUILD_SAMPLES=ON \
|
||||
-DEXIV2_ENABLE_PNG=ON \
|
||||
-DEXIV2_ENABLE_WEBREADY=ON \
|
||||
-DEXIV2_ENABLE_CURL=ON \
|
||||
-DEXIV2_BUILD_UNIT_TESTS=ON \
|
||||
-DEXIV2_ENABLE_BMFF=ON \
|
||||
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
|
||||
-DBUILD_WITH_COVERAGE=OFF \
|
||||
-DEXIV2_TEAM_USE_SANITIZERS=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=install \
|
||||
.. && \
|
||||
cmake --build .
|
||||
|
||||
- name: Tests
|
||||
@ -150,8 +163,21 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DBUILD_WITH_COVERAGE=ON -DEXIV2_BUILD_DOC=ON -DEXIV2_ENABLE_NLS=ON -DCMAKE_CXX_FLAGS="-DEXIV2_DEBUG_MESSAGES" ..
|
||||
cd build && \
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DEXIV2_BUILD_SAMPLES=ON \
|
||||
-DEXIV2_ENABLE_PNG=ON \
|
||||
-DEXIV2_ENABLE_WEBREADY=ON \
|
||||
-DEXIV2_ENABLE_CURL=ON \
|
||||
-DEXIV2_BUILD_UNIT_TESTS=ON \
|
||||
-DEXIV2_ENABLE_BMFF=ON \
|
||||
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
|
||||
-DBUILD_WITH_COVERAGE=ON \
|
||||
-DEXIV2_BUILD_DOC=ON \
|
||||
-DEXIV2_ENABLE_NLS=ON \
|
||||
-DCMAKE_CXX_FLAGS="-DEXIV2_DEBUG_MESSAGES" \
|
||||
.. && \
|
||||
make -j
|
||||
|
||||
- name: Generate documentation
|
||||
|
||||
16
.github/workflows/on_PR_mac_matrix.yml
vendored
16
.github/workflows/on_PR_mac_matrix.yml
vendored
@ -30,8 +30,20 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
cmake -GNinja -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DCMAKE_INSTALL_PREFIX=install -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" ..
|
||||
mkdir build && cd build && \
|
||||
cmake -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
||||
-DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} \
|
||||
-DEXIV2_BUILD_SAMPLES=ON \
|
||||
-DEXIV2_ENABLE_PNG=ON \
|
||||
-DEXIV2_ENABLE_WEBREADY=ON \
|
||||
-DEXIV2_ENABLE_CURL=ON \
|
||||
-DEXIV2_BUILD_UNIT_TESTS=ON \
|
||||
-DEXIV2_ENABLE_BMFF=ON \
|
||||
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=install \
|
||||
-DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" \
|
||||
.. && \
|
||||
cmake --build .
|
||||
|
||||
- name: Install
|
||||
|
||||
1
.github/workflows/on_PR_windows_matrix.yml
vendored
1
.github/workflows/on_PR_windows_matrix.yml
vendored
@ -134,6 +134,7 @@ jobs:
|
||||
-DCMAKE_CXX_FLAGS=-Wno-deprecated \
|
||||
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
||||
-DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} \
|
||||
-DEXIV2_BUILD_SAMPLES=ON \
|
||||
-DEXIV2_ENABLE_NLS=ON \
|
||||
-DEXIV2_ENABLE_WIN_UNICODE=ON \
|
||||
-DEXIV2_ENABLE_WEBREADY=ON \
|
||||
|
||||
48
.github/workflows/on_push_BasicWinLinMac.yml
vendored
48
.github/workflows/on_push_BasicWinLinMac.yml
vendored
@ -44,9 +44,20 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cd build
|
||||
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DEXIV2_ENABLE_NLS=OFF -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_WIN_UNICODE=OFF -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DCMAKE_INSTALL_PREFIX=install ..
|
||||
cmake --build .
|
||||
cmake -GNinja `
|
||||
-DCMAKE_BUILD_TYPE=Release `
|
||||
-DBUILD_SHARED_LIBS=ON `
|
||||
-DEXIV2_BUILD_SAMPLES=ON `
|
||||
-DEXIV2_ENABLE_NLS=OFF `
|
||||
-DEXIV2_ENABLE_PNG=ON `
|
||||
-DEXIV2_ENABLE_WEBREADY=ON `
|
||||
-DEXIV2_ENABLE_BMFF=ON `
|
||||
-DEXIV2_BUILD_UNIT_TESTS=ON `
|
||||
-DEXIV2_ENABLE_WIN_UNICODE=OFF `
|
||||
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON `
|
||||
-DCMAKE_INSTALL_PREFIX=install .. `
|
||||
-S . -B build && `
|
||||
cmake --build build
|
||||
|
||||
|
||||
- name: Test
|
||||
@ -76,8 +87,19 @@ jobs:
|
||||
|
||||
- name: build and compile
|
||||
run: |
|
||||
cd build
|
||||
cmake -GNinja -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..
|
||||
cd build && \
|
||||
cmake -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DEXIV2_BUILD_SAMPLES=ON \
|
||||
-DEXIV2_ENABLE_PNG=ON \
|
||||
-DEXIV2_ENABLE_WEBREADY=ON \
|
||||
-DEXIV2_ENABLE_CURL=ON \
|
||||
-DEXIV2_BUILD_UNIT_TESTS=ON \
|
||||
-DEXIV2_ENABLE_BMFF=ON \
|
||||
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=install \
|
||||
.. && \
|
||||
cmake --build .
|
||||
|
||||
- name: Test
|
||||
@ -106,8 +128,20 @@ jobs:
|
||||
|
||||
- name: build and compile
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
cmake -GNinja -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" ..
|
||||
mkdir build && cd build && \
|
||||
cmake -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DEXIV2_BUILD_SAMPLES=ON \
|
||||
-DEXIV2_ENABLE_PNG=ON \
|
||||
-DEXIV2_ENABLE_WEBREADY=ON \
|
||||
-DEXIV2_ENABLE_CURL=ON \
|
||||
-DEXIV2_BUILD_UNIT_TESTS=ON \
|
||||
-DEXIV2_ENABLE_BMFF=ON \
|
||||
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=install \
|
||||
-DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" \
|
||||
.. && \
|
||||
cmake --build .
|
||||
|
||||
- name: Test
|
||||
|
||||
15
.github/workflows/on_push_ExtraJobsForMain.yml
vendored
15
.github/workflows/on_push_ExtraJobsForMain.yml
vendored
@ -33,8 +33,19 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DBUILD_WITH_COVERAGE=ON -DCMAKE_INSTALL_PREFIX=install ..
|
||||
cd build && \
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DEXIV2_BUILD_SAMPLES=ON \
|
||||
-DEXIV2_ENABLE_PNG=ON \
|
||||
-DEXIV2_ENABLE_WEBREADY=ON \
|
||||
-DEXIV2_ENABLE_CURL=ON \
|
||||
-DEXIV2_BUILD_UNIT_TESTS=ON \
|
||||
-DEXIV2_ENABLE_BMFF=ON \
|
||||
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
|
||||
-DBUILD_WITH_COVERAGE=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=install \
|
||||
.. && \
|
||||
make -j
|
||||
|
||||
- name: Tests + Upload coverage
|
||||
|
||||
@ -32,7 +32,7 @@ option( EXIV2_ENABLE_WEBREADY "Build webready support into library"
|
||||
option( EXIV2_ENABLE_CURL "USE Libcurl for HttpIo (WEBREADY)" OFF )
|
||||
option( EXIV2_ENABLE_BMFF "Build with BMFF support" ON )
|
||||
|
||||
option( EXIV2_BUILD_SAMPLES "Build sample applications" ON )
|
||||
option( EXIV2_BUILD_SAMPLES "Build sample applications" OFF )
|
||||
option( EXIV2_BUILD_EXIV2_COMMAND "Build exiv2 command-line executable" ON )
|
||||
option( EXIV2_BUILD_UNIT_TESTS "Build unit tests" OFF )
|
||||
option( EXIV2_BUILD_FUZZ_TESTS "Build fuzz tests (libFuzzer)" OFF )
|
||||
|
||||
@ -1,13 +1,9 @@
|
||||
# These flags applies to exiv2lib, the applications, and to the xmp code
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
if (CYGWIN)
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
else()
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
endif()
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
|
||||
if ( MINGW OR UNIX OR MSYS ) # MINGW, Linux, APPLE, CYGWIN
|
||||
if (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
|
||||
|
||||
@ -49,11 +49,11 @@ namespace Exiv2 {
|
||||
*/
|
||||
struct EXIV2API Photoshop {
|
||||
// Todo: Public for now
|
||||
static const char* const ps3Id_; //!< %Photoshop marker
|
||||
static const std::array<const char*, 4> irbId_; //!< %Photoshop IRB markers
|
||||
static const char* const bimId_; //!< %Photoshop IRB marker (deprecated)
|
||||
static const uint16_t iptc_; //!< %Photoshop IPTC marker
|
||||
static const uint16_t preview_; //!< %Photoshop preview marker
|
||||
static constexpr std::array<const char*, 4> irbId_{"8BIM", "AgHg", "DCSR", "PHUT"}; //!< %Photoshop IRB markers
|
||||
inline static const char* ps3Id_ = "Photoshop 3.0\0"; //!< %Photoshop marker
|
||||
inline static const char* bimId_ = "8BIM"; //!< %Photoshop IRB marker (deprecated)
|
||||
inline static const uint16_t iptc_ = 0x0404; //!< %Photoshop IPTC marker
|
||||
inline static const uint16_t preview_ = 0x040c; //!< %Photoshop preview marker
|
||||
|
||||
/*!
|
||||
@brief Checks an IRB
|
||||
|
||||
@ -25,6 +25,10 @@ THE SOFTWARE.
|
||||
#define JzonAPI __declspec(dllexport)
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
|
||||
#endif
|
||||
|
||||
#include "Jzon.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
@ -88,11 +88,6 @@ namespace Exiv2 {
|
||||
constexpr const char* JpegBase::xmpId_ = "http://ns.adobe.com/xap/1.0/\0";
|
||||
constexpr const char* JpegBase::iccId_ = "ICC_PROFILE\0";
|
||||
|
||||
constexpr const char* Photoshop::ps3Id_ = "Photoshop 3.0\0";
|
||||
constexpr std::array<const char*, 4> Photoshop::irbId_{"8BIM", "AgHg", "DCSR", "PHUT"};
|
||||
constexpr const char* Photoshop::bimId_ = "8BIM"; // deprecated
|
||||
constexpr uint16_t Photoshop::iptc_ = 0x0404;
|
||||
constexpr uint16_t Photoshop::preview_ = 0x040c;
|
||||
|
||||
static inline bool inRange(int lo,int value, int hi)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user