Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transition to C++11 and CI jobs covering more cases #601

Merged
merged 31 commits into from
Dec 19, 2018
Merged

Conversation

piponazo
Copy link
Collaborator

In this first PR we finally do the migration to C++11.

Basically this PR is a continuation of #257 which was not merged in April 2018 because we took the decision of not switching to C++11 on the Exiv2 0.27 version.

I could not apply directly the commits that @D4N wrote in that PR, however all the kudos related to that change should be forwarded to him 😉 .

This PR solve some of the items discussed in #214 but not all of them. After this PR is merged, we can continue implementing some of the items that @D4N carefully wrote in that issue.

These are the changes implemented in the PR:

  • Drop auto_ptr and replace it with unique_ptr
  • Updates in Travis:
    • Switch from Ubuntu 14.04 to 16.04
    • Add new elements to the matrix. Now we compile for Debug and Release.
    • Two OSX jobs (with old and recent XCode versions)
    • Simplify definition of CMake variables.
    • Simplify conan management
    • Give names to each CI job to make easier its identification.
  • Updates in Appveyor:
    • Drop old compiler (non c++11 compatible)
    • Expan the build matrix, so that we compile for all the combinations of Static/Shared,
      Release/Debug, X86/X64.
    • Simplify conan management
  • CMake:
    • minimum required version updated to 3.5, so that we can use the new FindGTest IMPORTED targets, that are solving some problems I found during the addition of new jobs to the CI.
    • Remove many calls to check_include_file that were not needed. This speeds up considerably the CMake configuration step.
    • Project version updated to 0.27.99, to somehow indicate that the next version will be 0.28.
  • Conan: Gtest updated to 1.8.1 (Fixes Update to gtest 1.8.1 #568)

Since the PR is quite large, I would recommend you to review it commit by commit. Each commit is focused in independent topics.

Note: I will squash some of the commits related with travis and appveyor. Right now there are many commits that I pushed while testing the proper execution of the CI jobs.

- give names to jobs.
- Use git settings.
- Update Ubuntu version to xenial.
- New travis jobs.
- Simplify conan configuration.
- create default conan profile.
- gtest shared & libstdc++11 always
- New OSX job.
- Simplify Travis configuration.
- simplify cmake options
- Release and Debug builds
@piponazo piponazo changed the title Cpp11 0.28 Transition to C++11 and CI jobs covering more cases Dec 19, 2018
@piponazo
Copy link
Collaborator Author

Note that the Fedora job in gitlab failed due to some network issue, but the rest of the jobs passed.

@D4N
Copy link
Member

D4N commented Dec 19, 2018

I have restarted the Fedora job on Gitlab.

@codecov
Copy link

codecov bot commented Dec 19, 2018

Codecov Report

Merging #601 into master will decrease coverage by 0.16%.
The diff coverage is 69.1%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #601      +/-   ##
==========================================
- Coverage   62.78%   62.61%   -0.17%     
==========================================
  Files         154      154              
  Lines       20704    21094     +390     
==========================================
+ Hits        12998    13209     +211     
- Misses       7706     7885     +179
Impacted Files Coverage Δ
include/exiv2/metadatum.hpp 100% <ø> (ø) ⬆️
include/exiv2/types.hpp 96.42% <ø> (+0.27%) ⬆️
include/exiv2/psdimage.hpp 100% <ø> (ø) ⬆️
include/exiv2/webpimage.hpp 100% <ø> (ø) ⬆️
include/exiv2/properties.hpp 100% <ø> (ø) ⬆️
include/exiv2/matroskavideo.hpp 0% <ø> (ø) ⬆️
include/exiv2/cr2image.hpp 0% <ø> (ø) ⬆️
include/exiv2/xmp_exiv2.hpp 90.9% <ø> (-9.1%) ⬇️
include/exiv2/exif.hpp 100% <ø> (ø) ⬆️
src/version.cpp 89.65% <ø> (-1.15%) ⬇️
... and 171 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 980b1ab...07e8f6e. Read the comment docs.

Copy link
Member

@D4N D4N left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for all the work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants